关于 herdr-file-viewer
herdr-file-viewer 是用于在 Herdr 的 Files 查看器中打开指定文件或源码位置的技能。它解析相对仓库的路径和行范围,并处理仓库根目录及不同平台的启动限制。
主要功能
- 01打开文件、行和范围
- 02定位函数定义
- 03确认仓库根目录
- 04处理 Linux、macOS、WSL 和 Windows 路径
- 05保留现有查看器状态
适用场景
- 01展示诊断所依据的源码行
- 02打开函数定义以供检查
- 03在仓库中定位已修改的文件
- 04说明请求位置无法解析的原因
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ smarzban/ herdr-file-viewer --skill herdr-file-viewer安装后在 Claude Code 中输入/herdr-file-viewer确认已加载。
详细介绍
Herdr 文件查看器
当用户要求在 Herdr 文件查看器(也称为“Files”)中打开、显示或展示文件、源代码行、范围或函数时,请使用此技能。当你已找到可能的改动位置,并想向用户展示它时,也请使用此技能。
确定位置
启动查看器前,先将请求解析为相对于仓库的目标:
- 文件:
src/app.rs - 单个源代码行:
src/app.rs:42 - 包含首尾的源代码范围:
src/app.rs:42-58
对于函数或辅助函数,请找到其定义并使用定义所在行,而不是调用位置。如果存在实质上不同的匹配项,且上下文无法确定是哪一个,请简短提问,不要猜测。对于疑似错误所在的行,要区分实际观察到的故障位置和假设;不要把猜测的位置说成确定结果。
在 Herdr 中打开(Linux、macOS 或 WSL)
启动一个新的 Files 面板:
herdr plugin pane open --plugin herdr-file-viewer --entrypoint file-viewer --placement split --direction right --focus --env "HERDR_FILE_VIEWER_OPEN=src/app.rs:42"
将示例目标替换为已解析的文件、行或范围。查看器会加载文件并滚动到请求的位置。范围会短暂高亮显示。
不要添加 --cwd,也不要注入 HERDR_PLUGIN_CONTEXT_JSON。herdr 会根据 --cwd 解析相对面板命令,因此除非在已构建的插件检出目录中,否则启动会失败;而在该目录中,它会悄悄运行该检出目录里的二进制文件,而不是已安装的版本。注入的上下文值会由 herdr 重新生成并丢弃。
查看的根目录取自当前聚焦的 herdr 面板的工作目录(解析为该仓库工作树的顶层),因此在你自己的进程中执行 cd 不会改变它——你的工具调用在该面板的 shell 之外运行,而查看器会以该面板所在位置作为根目录。如果它可能不在目标仓库中,请使用第二个 --env 显式指定根目录,并提供仓库或工作树的绝对路径(其中的任何目录都会解析到顶层):
# `$repo` is the target repository's absolute path, shell-escaped when assigned.
herdr plugin pane open --plugin herdr-file-viewer --entrypoint file-viewer \
--placement split --direction right --focus \
--env "HERDR_FILE_VIEWER_ROOT=$repo" \
--env "HERDR_FILE_VIEWER_OPEN=src/app.rs:42"
如果 HERDR_FILE_VIEWER_ROOT 是相对路径或不存在,该值会被忽略,查看器仍会像往常一样以当前聚焦的面板为根目录。请通过渲染出的树确认目标仓库正确(根目录行,以及树边框中的分支)。如果显示的是错误的仓库,请关闭刚打开的面板,并使用正确的 HERDR_FILE_VIEWER_ROOT 重新启动。
将目标视为数据,绝不要将其视为 shell 源代码。优先使用结构化的 argv 或进程 API,将 HERDR_FILE_VIEWER_OPEN=<target>(以及 HERDR_FILE_VIEWER_ROOT=<dir>)分别作为单个参数传递。在 shell 中,不要将原始路径插入命令文本:赋值时对其进行 shell 转义,然后仅在双引号内展开变量。
不要通过脚本模拟按键操作 TUI。不要关闭、聚焦或尝试重新定位并非刚打开的 Files 面板:启动时指定的打开目标仅在新查看器启动时生效,而已有面板可能包含用户的注释或导航状态。
Windows 原生预览
Windows 启动器可以打开 Files,但不接受打开目标;而在 Windows 原生环境中,herdr plugin pane open 无法启动清单入口点。对于需要定位到具体位置的请求,请使用 WSL 执行上述命令。如果二进制文件已在 PATH 中,请在专门用于查看器的终端中运行
herdr-file-viewer.exe --open "<target>"。不要声称通用的 Windows Files 操作已打开请求的位置。
在 Herdr 之外,如果二进制文件已在 PATH 中,请直接运行:
herdr-file-viewer --open src/app.rs:42
对话行为
当用户直接要求查看某个位置时,解析目标后立即打开。当你在说明诊断结果或改动时找到可能的位置,请简短询问,例如:“要我带你看看在哪里更改这个设置吗?”用户确认后再打开。
启动后,说明你打开的确切目标。如果无法将目标解析为查看器根目录下的实际文件,请解释原因,不要打开任意路径或根目录之外的路径。