dsh-code-nav
DSH web plugin (dsh-better-sidebar companion): code preview with per-language syntax highlighting, symbol outline navigation and in-file search
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 26, 2026
- Updated
- Aug 26, 2026
Introduction
dsh-code-nav
🌏 English · 中文
DSH(DeepSeek Harness)Web 插件 —— dsh-better-sidebar 代码预览导航扩展。
在侧边栏打开代码文件时,自动按文件类型识别语言并接管预览,提供:
- 🎨 按类型语法高亮 —— 扩展名 → 语言识别,轻量自研分词器(注释 / 字符串 / 关键字 / 类型 / 数字 / 函数),深浅色主题自动跟随
- 🧭 符号大纲切换 —— 解析 class / interface / struct / enum / impl、方法 / 函数、变量 / 字段 / 常量;按「全部 / 类 / 方法 / 变量」筛选,下拉符号列表一键跳转定位(行闪烁)
- 🔍 文件内查找 —— 高亮全部匹配、当前匹配强调、
n/m计数、↑/↓ 或Enter/Shift+Enter上下跳转、区分大小写开关
前置
- DSH
dsh web可正常运行 - 已安装 dsh-better-sidebar(含聚合包
@linxin666/dsh-web-ui-all带入的场景)
安装
dsh plugin --profile web add <dsh-code-nav-0.1.0.tgz>
装完重启 dsh web(新增 bundle 需 host 侧重载),再硬刷新浏览器(Cmd/Ctrl+Shift+R)。
提示:better-sidebar 设置页「侧边卡片」中可看到本插件的预览器开关(代码预览导航 / Code Preview Navigator),关闭即回退到内置 CodeMirror 编辑器。
支持的语言
| 家族 | 扩展名 |
|---|---|
| JavaScript / TypeScript | .js .mjs .cjs .ts .jsx .tsx |
| Python | .py |
| Java / C# | .java .cs |
| C / C++ | .c .h .cpp .cc .cxx .hpp .hh .hxx |
| Go / Rust | .go .rs |
| PHP / Ruby | .php .rb |
| Swift / Kotlin | .swift .kt .kts |
| Lua / Shell | .lua .sh .bash .zsh |
| Vue / Svelte | .vue(取 <script> 块解析,行号偏移正确).svelte |
| SQL | .sql(表 / 视图 / 函数等结构对象) |
非代码文件(markdown / html / 图片 / pdf 等)仍由 better-sidebar 内置查看器处理,不受影响。
开发
node test/code-nav.test.mjs # 纯逻辑单测(25 例:分词 + 各语言大纲 + 查找)
node scripts/build.mjs # 把 src/*.js 内联进 lib/client.js(无第三方 bundler)
node --check lib/client.js # 语法校验
src/lang-registry.js—— 扩展名映射 + 语言元数据(关键字 / 注释语法 / 字符串引号)src/tokenize.js—— 跨行状态机分词器(块注释、Python 三引号、C# 逐字字符串、转义)src/outline.js—— 括号深度 / 缩进驱动的大纲解析(Allman 大括号换行风格已支持)src/search.js—— 文件内查找与 token×匹配区间合并渲染scripts/client.template.js—— React 预览组件模板(构建时注入纯模块)
已知限制
- 高亮与大纲为轻量正则解析,非编译器级精度(复杂泛型、宏、模板元编程等场景可能漏检/误检)
- 接管代码预览为只读;需要编辑时可在 better-sidebar 设置中关闭本插件回退内置编辑器
- 单文件内容上限 500KB(与宿主截断一致,超出显示提示)
- Vue / Svelte 高亮按
<script>内 JS/TS 处理,模板部分不高亮
License
MIT