跳到正文
dsh-market 浏览插件 GitHub EN

Islulua/dsh-code-navigator#code-navigator

为 DeepSeek Harness 提供持久化的 C/C++、Python 和 TypeScript 定义跳转及独立工作区界面。

Star 数 ★ 0 分类 工具与能力 收录于 2026-09-04 npm dsh-code-navigator

安装

在 DeepSeek Harness 里通过 dsh-market 安装

dsh plugin --profile web add dshmarket

或使用命令行

dsh plugin --profile web add dsh-code-navigator

装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络。请先审阅源码,并尽量锁定 commit(github:owner/repo#sha)。

截图

README

English

dsh-code-navigator 是一个独立的 DSH 代码导航插件。它为每个工作区保持语言服务器进程和已打开文档的生命周期,减少每次跳转时重复启动 LSP 的延迟,支持 DSH 0.1.2-alpha.3 及同一 0.1.2 版本线的后续版本。

插件提供 C/C++ clangd、Python Pyright、JavaScript/TypeScript Language Server。Pyright、TypeScript Language Server 和 TypeScript 随 npm 包安装;clangd 是 LLVM 原生程序,由操作系统提供,也可以通过配置指定路径。

界面截图

独立工作台:目录树、标签页、面包屑、编辑器与 LSP 状态

独立工作台

点击面包屑可展开相应目录

面包屑目录选择器

前进与后退导航按钮

导航历史按钮

安装 clangd 以启用 C/C++ 跳转

clangd 对插件界面是可选依赖,但 C/C++ 索引和定义跳转必须使用它。建议先检查:

clangd --version

没有安装时可按系统安装:

# macOS(Homebrew)
brew install llvm

# Debian / Ubuntu
sudo apt-get install clangd

Windows 可以安装 LLVM 官方发行版并把 clangd.exe 加入 PATH。如果 clangd 不在 PATH,请通过 clangdCommand 配置绝对路径。其他系统和最新下载方式见 clangd 官方安装文档。

Pyright、TypeScript Language Server 和 TypeScript 已经随插件安装,不需要用户再全局安装。

主要功能

  • Cmd/Ctrl 点击符号跳转到定义,按住修饰键时显示下划线。
  • 前进和后退导航历史。
  • 自动发现并提前加载 compile_commands.json。
  • 工作区目录树、可编辑文件标签页、路径面包屑和标签页右键关闭菜单。
  • Cmd/Ctrl+P 按文件名搜索当前工作区。
  • 持久语言服务器和状态显示。
  • BetterSidebar 可选;不存在时使用插件自带工作台。

自动依赖探测与降级

插件激活时自动探测三种语言服务器并缓存探测结果,不会为了探测而启动服务器进程。

能力 默认来源 缺失时行为
C/C++ clangd 系统 LLVM/clangd 不启动 C/C++ 预热和索引;文件浏览、编辑和高亮继续可用
Python Pyright 随插件安装 只关闭 Python 跳转并提示重新安装插件
TypeScript Language Server 随插件安装 只关闭 JS/TS 跳转并提示重新安装插件
BetterSidebar 可选插件 自动加载独立代码工作台

缺少 clangd 不会让插件启动失败,也不会让界面一直处于 Pending。打开 C/C++ 文件时状态栏会显示 clangd 不可用;安装 clangd 并重启 DSH 后会自动启用 C/C++ 索引。

安装

从 npm 安装到 Web profile:

dsh plugin --profile web add dsh-code-navigator
dsh --profile web --dump-config
dsh web

使用本地压缩包时,把包名替换为压缩包路径。

配置

默认配置无需修改。需要指定 clangd 或限制扫描规模时,可在 profile 的 cordis.patch.yml 中配置:

- id: code-navigator
  name: dsh-code-navigator
  config:
    clangdCommand: /opt/homebrew/opt/llvm/bin/clangd
    clangdArgs: [--background-index, --clang-tidy]
    projectSearchDepth: 4
    projectSearchDirectoryLimit: 500
    quickOpenFileLimit: 50000
    maxDocumentBytes: 4000000

pyrightCommand 和 typescriptLanguageServerCommand 用于覆盖插件内置服务。保持为空即可使用随包版本。

与 BetterSidebar 共存

宿主插件只负责项目识别、依赖探测、持久 LSP 进程、文档生命周期和跳转请求,不注册 ctx.lsp,也不拥有 Sidebar。

存在 BetterSidebar 时,浏览器适配器通过通用编辑器生命周期和顶栏扩展点加入跳转、状态和历史按钮;不存在时加载独立工作台。两种界面不会同时创建代码编辑区域,因此可以与其他插件共存。

开发与发布检查

pnpm install
pnpm --filter dsh-code-navigator check:release
pnpm --filter dsh-code-navigator pack

check:release 执行严格类型检查、单元测试、干净生产构建和 npm 包结构检查。prepack 会重新构建 lib/,避免发布陈旧产物。

稳定版会以 npm 的 latest 标签发布。要被 Community Market 发现,需要发布这个精确的稳定版本、公开 repository 中声明的 GitHub 仓库,并验证与当前 DSH Desktop 内置 DSH/Cordis runtime 的兼容性。预发布版本仅用于本地压缩包或 npm 预发布测试。

安全与资源限制

文件和项目请求通过当前 DSH 文件系统服务解析,规范化路径越出工作区时会被拒绝。请求体、源码文件、项目配置扫描和快速文件索引都有上限。语言服务器通过 DSH subprocess 服务运行,并在插件卸载时终止。

内容来自项目 README(GitHub)↗

评论

评论存放在 GitHub Discussions。用 GitHub 账号登录后可发表评论或点表情。