dsh-envelope-highlight
开发工具 活跃维护

dsh-envelope-highlight

flashyiyi/dsh-envelope-highlight

可在PTC/Code Mode的run_code结果卡片中,还原读写工具信封代码的语法高亮,无需额外配置即可清晰呈现代码结构,方便快速查阅代码内容。

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
TypeScript
主要语言
None
开源协议
15 KB
仓库大小
26 天前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:flashyiyi/dsh-envelope-highlight
git clone https://github.com/flashyiyi/dsh-envelope-highlight.git
git clone git@github.com:flashyiyi/dsh-envelope-highlight.git
README.md master

dsh-envelope-highlight

Restore syntax highlighting of read-tool results inside run_code (PTC / Code Mode).

Problem

In native mode, the read tool's result renders as a line-numbered,
syntax-highlighted code view (ReadBlock + shiki). In PTC / Code Mode,
the model calls tools through run_code programs, and read results arrive in
two shapes — both rendered as plain text by the official UI:

  1. Structured object { path, lines, totalLines } — returned from the
    program, it lands in the run_code card's OUT area as raw JSON;
  2. Envelope text (<path>…</path>\n<type>file</type>\n<content>…\n</content>,
    tool-fs's formatReadOutput) — the read sub-call (code-dispatch) content.

The syntax highlighting is lost in both cases.

Solution

This plugin registers two keyed tool.call.toolview views:

  • run_code (not registered by the shipped UI — zero replacement risk):
    read envelopes and read-result JSON in the OUT area are parsed and rendered
    as ReadBlock — file line numbers in the gutter, shiki syntax
    highlighting, the same visual language as the native read card.
  • read (priority: -1, shadowing the official row): code-dispatch
    sub-calls (whose resultView is always null) get their envelope content
    rendered as ReadBlock; native read calls are reproduced exactly like the
    official ReadRow.

Non-read output stays exactly as before.

Install

dsh plugin --profile <profile> add dsh-envelope-highlight

Build (from source)

# requires a dsh source checkout (DSH_CHECKOUT) with tsc/tsdown
npm run build        # host (tsc) + client (tsdown) → lib/
npm pack

Scope

  • run_code chat-row result card: read envelopes + read-result JSON →
    highlighted ReadBlock
  • read sub-call rows under the run_code tree (code-dispatch) →
    highlighted ReadBlock; native read rows unchanged
  • ❌ Details panel (conversation.details.tool) — not covered yet

License

MIT