drscrewdriver/dsh-canvas-tsx-sidebar ↗★ 0

dsh-canvas-tsx-sidebar

DSH web plugin (dsh-better-sidebar consumer): render Qoder Canvas `*.canvas.tsx` reports as a structured page in the right sidebar. Static parse only — no code execution. 适合需要静态解析并直观预览 `*.canvas.tsx` 报告而无需执行代码的用户。

패키지
dsh-canvas-tsx-sidebar
호환성
미검증
Cordis peer 범위
^4.0.2
버전
0.1.0
최근 업데이트
2026. 9. 16.

설치

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:drscrewdriver/dsh-canvas-tsx-sidebar

使用

两个入口:

入口触发方式行为
文件查看器(接管)在文件树里点开任意 .tsx.canvas.tsx → 结构化页面 + 预览/代码 切换;其他 .tsx → 源码视图
页签右侧栏 + 菜单 → Canvas 报告手动输入路径查看,不必先在编辑器里打开文件

文件查看器可在 Side 卡设置里关闭,关闭后该类型回落内置的代码查看器。

打开某一个文件就渲染那一个文件 —— 插件不扫描工作区。

为什么文件查看器必须认领整个 .tsx

exts: ['tsx'] 是唯一可行的认领方式,代价是它也会认领非 canvas 的 .tsx。证据全部来自 better-sidebar 源码与生态实测:

#约束证据
L1extOf() 只取最后一段扩展名 → extOf('a.canvas.tsx') === 'tsx'src/client/paths.ts:80-85
L2exts: ['tsx'] 会认领工作区全部 .tsx,且 priority 0 压掉内置 code(-100)的 CodeMirrorservice.ts:847-875
L3detect 只在 head 字节可用时调用,而 head 仅来自二进制 fs.read —— 文本 .tsx 永远走不到该分支service.ts:860
L4descriptor 认领后 component 必须渲染,无委托/回退 APIEditorHost.tsx:349,486
L5生态插件 dsh-code-nav 的 LANG_EXT 已含 tsx 并以 priority: 10 认领dsh-code-nav/src/lang-registry.js

→ .canvas.tsx 的判定只能在自有组件内完成。因此:查看器认领全部 .tsx(canvas 走页面, 其余走源码),页签作为不经过文件认领的第二入口保留。