DeepSeek Harness Hub
← 返回列表

多格式代码格式化ZhijiangTang/dsh-fmt

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

格式化校验 JSON、YAML、TOML 与 SQL 并定位错误行列

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/16 · 已提供中文文档

DSH 插件:带错误行/列位置的 JSON/YAML/TOML/SQL 格式化工具

综合分
27.6
GitHub 分
27.6
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add ZhijiangTang/dsh-fmt
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-llm@deepseek-ai/dsh-tools
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-fmt

DSH 插件:格式化 / 校验文本,支持 JSON / YAML / TOML / SQL 四种格式。纯 ESM、无构建、无原生依赖。

安装

dsh plugin --profile  add file:./plugins/dsh-fmt

(发布到 npm 后:dsh plugin --profile  add dsh-fmt)

工具

- format_text —— 输入文本与目标格式,返回规范值 { format, ok, output, error? }。

参数

| 参数 | 类型 | 必填 | 默认 | 说明 |
| --- | --- | --- | --- | --- |
| text | string | 是 | - | 要格式化 / 校验的文本 |
| format | enum | 是 | - | json / yaml / toml / sql |
| indent | number | 否 | 2 | 缩进宽度(JSON/YAML 美化;SQL 的 tab 宽度) |
| sqlDialect | enum | 否 | standard | standard / postgresql / mysql / sqlite,仅 SQL 使用 |
| keywordCase | enum | 否 | upper | upper / lower / preserve,仅 SQL 使用 |

返回值

规范 JSON 值:

{
"format": "json",       // 本次使用的格式
"ok": true,             // 解析/格式化是否成功
"output": "…",          // 格式化结果(ok=true)
"error": {              // 仅 ok=false 时存在
"message": "…",
"line": 1,            // 可选
"column": 2           // 可选
}
}

解析失败不算工具失败:错误以 ok:false + error(尽力带 line/column 位置)返回,而不是抛出工具异常。

各格式示例

JSON

输入 {"b":1,"a":[1,2]},format=json,indent=2:

{
"b": 1,
"a": [
1,
2
]
}

非法输入 {bad 返回 ok:false,error.message 含 Node 报错原文,line/column 从报错中的 position … (line L column C) 正则提取。

YAML

输入:

a:
b: 1
c: [x, y]

format=yaml 先 parse 校验,再 stringify 美化(流式数组会展开为块式)。解析失败捕获 YAMLParseError,取 linePos[0] 作为位置。

TOML

输入:

title="demo"
[owner]
name="t"

format=toml 先 parse 校验再 stringify 规范化;解析失败取 TomlError 的 line / column。

SQL

输入 select a,b from t where x=1 order by b,format=sql、keywordCase=upper:

SELECT
a,
b
FROM
t
WHERE
x = 1
ORDER BY
b

sqlDialect 映射到 sql-formatter 的 language:standard→sql、postgresql→postgresql、mysql→mysql、sqlite→sqlite。

SQL 不做语法校验的说明

format_text 的 SQL 分支本身不做主动语法校验:不先解析再格式化,直接把文本交给 sql-formatter 的 format(),多数可读 SQL 都能得到规范化输出。但 sql-formatter 底层是一个完整的 SQL 解析器,遇到根本无法解析的片段会抛错——此时同样遵循「解析失败不算工具失败」的约定,返回 ok:false + error.message,而不会让工具调用失败。

License

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群