DeepSeek Harness Hub
← 返回列表

BSL 代码编辑器Mempemp/DSH-CodeEditor_BSL

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
需源码安装

在聊天标签页中浏览 1С 元数据并编辑 BSL 代码

暂不能直接安装(需源码编译或环境不满足):仓库缺少 package.json,无法用 dsh 插件安装命令安装。 · 最近上游提交 2026/9/15 · 已提供中文文档

交互式BSL代码编辑器

综合分
30.7
GitHub 分
30.7
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add Mempemp/DSH-CodeEditor_BSL
仓库缺少 package.json,无法用 dsh 插件安装命令安装,改用 GitHub 源安装
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查需源码安装

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

npm 包DSH-CodeEditor_BSL(未发布到 npm,仅可源码安装)
Node 引擎未声明 engines.node
dsh CLI 依赖未声明 dsh 版本约束
入口文件缺少入口声明

仓库缺少 package.json,无法用 dsh 插件安装命令安装

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/19 10:26:46

用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-bsl-editor

DeepSeek Harness 中的 1С(BSL)代码编辑器。

1С 配置导出在 DSH 聊天标签页中打开:元数据树、带 BSL 语法高亮的 Monaco 编辑器、文件标签页、已修改文件筛选、跳转到定义以及将代码发送到聊天。

功能

🌲 1С 元数据树
左侧面板可在文件树和 1С:Предприятие 元数据树之间切换,带有类型图标——子系统、目录、文档、寄存器、公共模块…… → 对象 → 属性 / 表格部分 / 表单 / 命令 / 模板 / 模块。点击模块即可在编辑器中打开。支持按对象名称搜索。

支持三种导出格式:EDT(.mdo)、Конфигуратор 的 XML 导出(ConfigDumpInfo.xml)以及按对象的 XML 导出。格式会自动识别。树是惰性的:节点在展开时才解析。

🗂 文件标签页
每个打开的文件都是编辑器顶部栏中的一个标签页:文件名、未保存修改指示器、通过叉号或鼠标中键关闭。切换标签页时会保留编辑文本、光标位置和滚动位置;重新打开编辑器时会恢复标签页状态。右侧是“从磁盘重新读取”和“保存”按钮;Ctrl+S 保存文件。

🔎 已修改文件
树上方有“所有文件” / “已修改”切换开关:在“已修改”模式下显示带有 git 状态(M / A / D / +)的扁平文件列表。悬停会显示完整路径;点击会在标签页中打开文件。尚未加入 git 的文件会与已修改文件一同显示,并标记为 +。

“已修改”模式在元数据树中同样有效:只保留包含已修改文件的分组和对象。此模式下的搜索仅限于已修改文件。

状态也会显示在树中的文件旁;已修改的行会在编辑器中用标记标出。

🌆 Monokai 主题
编辑器使用 Monokai 调色板:背景 #272822,关键字为粉色,函数和类为绿色,字符串为黄色,数字为紫色。

🎨 BSL 语法高亮
语法高亮基于官方 1С TextMate 语法(1c-syntax),通过 monaco-textmate + onigasm 实现。语法、Monaco 和 worker 由插件从 resources/vendor 提供;外部 CDN 源作为备用方案保留。高亮涵盖关键字、字符串、注释、&Аннотации、#Область。

⚡ 按 F12 跳转到定义
定义通过元数据模型查找——无需 language server:
- ОбщийМодуль.Метод() / Справочники.Товары.Метод() → 模块和位置;
- 不带点的方名 → 在当前模块中搜索;
- 再次按 F12 会遍历多个候选项。

F12 由插件处理;Monaco 原生的 Ctrl+Click 不会被拦截,未命中时不会显示“No definition found”提示。

上下文菜单中的“Peek Definition”仅在启用 LSP 时可用。

💬 将代码发送到聊天
在编辑器中选中片段 → 右键 → “添加到讨论” → 代码进入 DSH 编辑器。

🔵 编辑器中的变更差异
工作副本的变更直接在打开的文件中可见:新增行以绿色背景显示,删除行以红色块显示在行间并带有其文本。尚未纳入 git 的文件会显示为完全新增,在导航面板中带有“新文件”标记。右上角的面板(↑ / ↓ / 计数器)和快捷键 Alt+↑ / Alt+↓ 可在变更之间移动。计数器统计变更块数量,并在滚动时跟随位置。打开带有变更的文件时,会定位到第一个变更处。

💬 从聊天中打开文件
点击聊天消息中指向 .bsl / .xml 的链接,会在插件编辑器中打开该文件:树会展开到该文件并高亮显示,Editor 选项卡变为活动状态。指向其他格式文件和 workspace 之外路径的链接会继续由其他插件或系统应用程序处理。可通过“拦截从聊天中打开文件”设置禁用。

🔄 自动更新已打开的文件
如果已打开的文件在编辑器之外被修改(代理、外部编辑器),在切换到该选项卡或返回 DSH 窗口时,该选项卡会更新——同时保留滚动位置和光标。如果存在未保存的修改,会出现“文件已在磁盘上更改”提示条,并带有“从磁盘重新加载”按钮:不会自动替换修改。

🔌 LSP
通过 WebSocket 支持 bsl-language-server(诊断、自动补全、hover、格式化)。默认关闭;在 Settings DSH → “1С-редактор”中启用。插件不会下载 bsl-language-server——需要已安装的二进制文件。在大型配置上,服务器在构建配置模型时可能会卡住。

⚙️ 设置
DSH 设置中的 “1С-редактор” 部分:

| 设置 | 默认值 | 含义 |
|---|---|---|
| LSP | 关闭 | bsl-language-server |
| 拦截从聊天中打开文件 | 开启 | 点击指向 .bsl / .xml 的链接会在插件编辑器中打开 |
| 服务器端口 | 8025 | bsl-language-server 的 WebSocket 端口 |
| bsl-language-server.exe 路径 | (空) | 二进制文件的显式路径 |

安装

从发布页面下载 dsh-bsl-editor-0.4.0.tgz(或自行构建:cd dsh-bsl-editor && npm pack)并安装:

dsh plugin --profile web add dsh-bsl-editor-0.4.0.tgz

或通过发布归档的直接链接:

dsh plugin --profile web add https://github.com/Mempemp/DSH-CodeEditor_BSL/releases/download/v0.4.0/dsh-bsl-editor-0.4.0.tgz

然后重启 dsh web 并刷新浏览器选项卡。

如果 pnpm 报告存储错误(ERR_PNPM_UNEXPECTED_STORE)——请在安装命令中添加 --store-dir=""。
默认二进制文件路径:%LOCALAPPDATA%\Programs\bsl-language-server\bsl-language-server\bsl-language-server.exe。其他路径可在设置中指定。

要求

- DeepSeek Harness (dsh web)
- Node.js ≥ 20

支持的导出格式

| 格式 | 特征 | 备注 |
|---|---|---|
| EDT | Configuration/Configuration.mdo | 来自 .mdo 文件的对象(属性、表格部分、表单、命令、模板) |
| XML 导出(配置器) | ConfigDumpInfo.xml + Configuration.xml | 来自元数据列表的树 |
| 按对象 XML 导出 | 根目录 Configuration.xml + 类型文件夹(Catalogs/、Documents/、……) | 从文件系统恢复分区:表单 / 命令 / 模板 / 模块 / 预定义 |

模块对应关系:CommonModules//Ext/Module.bsl、Catalogs//Ext/ObjectModule.bsl、Forms//Ext/Form/Module.bsl、根目录 Ext/ManagedApplicationModule.bsl 等。

仓库结构

- lib/index.js — host 部分(ESM):路由 /bsl/*(tree、read、search、git、meta、find-symbol),启动 bsl-language-server。
- lib/metadata.js — 1С 元数据模型:格式识别、三种格式的解析器、静态符号解析。
- lib/client.js — 客户端部分:conversation-view 中的“编辑器”标签页(文件标签页、树、Monaco、更改过滤器)。
- resources/ — 元数据节点图标、1С TextMate 语法。
- tests/ — HTTP 和 LSP 冒烟测试。

致谢

元数据树结构和节点图标改编自
zerobig/vscode-1c-metadata-viewer
(MIT License,© Ilya Bushin)。

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

💬 加入 DPharness 群聊

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

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