# @1c-syntax/codemirror-lang-bsl 中文文档

规范地址：https://npmcn.com/package/%401c-syntax/codemirror-lang-bsl/

版本：0\.3\.2
npm 元数据更新时间：2026-07-17T19:16:08.814Z
中文译文更新时间：2026-11-06T05:19:07.714Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%401c-syntax/codemirror-lang-bsl
原文对照：https://npmcn.com/package/%401c-syntax/codemirror-lang-bsl/?lang=original
项目主页：https://github.com/1c-syntax/codemirror-lang-bsl
源码仓库：https://github.com/1c-syntax/codemirror-lang-bsl

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：118 kB，8 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：4 个
- 首次发布：2026-05-28T12:55:03.859Z
- 最新版本发布：2026-07-17T19:16:08.494Z
- 近 30 天下载量：4882（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：5（近 12 个月 5 个）

## 中文简介

1C: CodeMiror 6 的 Enterprise / OneScript (BSL) 语言支持

## 安装

```sh
npm install @1c-syntax/codemirror-lang-bsl
```

也可以使用：`pnpm add @1c-syntax/codemirror-lang-bsl`、`yarn add @1c-syntax/codemirror-lang-bsl`、`bun add @1c-syntax/codemirror-lang-bsl`

## README

# @ 1c- syntax/ codemirror- lang- bsl 语法

[![npm](https://img.shields.io/npm/v/@1c-syntax/codemirror-lang-bsl.svg)](https://www.npmjs.com/package/@1c-syntax/codemirror-lang-bsl) [![CI](https://github.com/1c-syntax/codemirror-lang-bsl/actions/workflows/ci.yml/badge.svg)](https://github.com/1c-syntax/codemirror-lang-bsl/actions/workflows/ci.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://npmcn.com/package/%401c-syntax/codemirror-lang-bsl/LICENSE)

[代码 6](https://codemirror.net/) 语言支持软件包 **1C:企业(BSL)** 财务报告和审定财务报表 **一个脚本** 俄语和英语关键词语法, 预处理器指令、汇编说明、多行字符串字元, 和嵌入式查询语言(SDBL)在字符串文字中.

## 现场演示

**[https://1c-syntax.github.io/codemirror-lang-bsl/ (中文(简体) )](https://1c-syntax.github.io/codemirror-lang-bsl/)** ——两个相接 CodeMiror 6编辑器:一个带有BSL模块样本(程序有注释, 控制流量、 async 函数、 区域), 具有查询函数的函数 字符串正文由嵌入式的SDBL语法突出出. 添加 `?theme=light` 改为 用于光线主题的 URL.

API 引用( 来源于 JSDoc with TypeDoc): **[https://1c-syntax.github.io/codemirror-lang-bsl/api/ (中文(简体) )](https://1c-syntax.github.io/codemirror-lang-bsl/api/)**。 。 。 .

语法在 [勒泽](https://lezer.codemirror.net/),参考文献 页:1 [`1c-syntax/bsl-parser`](https://github.com/1c-syntax/bsl-parser) ANTLR 4号卫星 结构和结构的语法 [`1c-syntax/vsc-language-1c-bsl`](https://github.com/1c-syntax/vsc-language-1c-bsl) 用于符号样式映射的文本Mate语法.

## 安装

```bash
npm install @1c-syntax/codemirror-lang-bsl
```

## 使用量

```ts
import {EditorView, basicSetup} from "codemirror"
import {bsl} from "@1c-syntax/codemirror-lang-bsl"

new EditorView({
  doc: 'Процедура Привет() Экспорт\n    Сообщить("Привет, мир!");\nКонецПроцедуры',
  extensions: [basicSetup, bsl()],
  parent: document.body
})
```

## 盖上什么

-   模块层面:可变申报`Перем`编号 :`Var`程序/职能 声明 `Экспорт`,默认参数和 `Знач`编号 :`Val`编辑 修改 `АСИНХ`
-   控制流量 : `Если`编号 :`ИначеЕсли`编号 :`Иначе`编号 :`КонецЕсли`, (中文(简体) ), `Пока`编号 :`КонецЦикла`, (中文(简体) ), `Для … По … Цикл`编号 :`КонецЦикла`, (中文(简体) ), `Для Каждого … Из`编号 :`КонецЦикла`, (中文(简体) ), `Попытка`编号 :`Исключение`编号 :`КонецПопытки`
-   发言: `Возврат`编号 :`Продолжить`编号 :`Прервать`编号 :`Перейти`,标签 `~Метка:`, (中文(简体) ), `Ждать` 作为独立的声明和表达, `ВызватьИсключение`, (中文(简体) ), `Выполнить`, (中文(简体) ), `ДобавитьОбработчик`编号 :`УдалитьОбработчик`
-   表达式:数字字元,字符串字元(单行和多行) 与 `|` 续),日期文字 `'YYYYMMDDHHMMSS'`, (中文(简体) ), 布尔 `Истина`编号 :`Ложь`, (中文(简体) ), `Неопределено`, (中文(简体) ), `Null`, (中文(简体) ), `Новый`,毒性 `?(…)`
-   运算符:算术、比较、逻辑(`И`编号 :`Или`编号 :`Не`(中文(简体) )
-   说明: `&НаКлиенте`, (中文(简体) ), `&НаСервере`, (中文(简体) ), `&НаКлиентеНаСервереБезКонтекста`,, , , , , , , , 包括注释参数
-   预处理器 : `#Если`编号 :`#ИначеЕсли`编号 :`#Иначе`编号 :`#КонецЕсли`, (中文(简体) ), `#Область`编号 :`#КонецОбласти`, (中文(简体) ), `#Использовать`, (中文(简体) ), `#native`
-   评论: `//` (单行), `///` (BSLDEscription doc-committees) (英语:BSLDEscription)
-   **安全数据库** (BSL查询语言) **嵌入在查询字符串中** —— 说 一个单独的列泽语法,涵盖100+个关键词(声明/操作符 /) 函数 / 类型/ 元数据对象/ 虚拟表格类别) 已挂载 作为覆盖到任何开始的字符串文字 `ВЫБРАТЬ`编号 :`SELECT`编号 : `УНИЧТОЖИТЬ`编号 :`DROP`。俄语和英语关键词变体都是 认识和风格都一样.

## 上游参考文献

语法和样式映射来源于以下 1c 语法 项目。 当更新此软件包时, diff 与记录的 捕捉语法在上游变化.

| 项目 | 用于 | 已绑定的 | 标记 |
| --- | --- | --- | --- |
| [`1c-syntax/bsl-parser`](https://github.com/1c-syntax/bsl-parser) | Lexer/parser结构(BSL + SDBL ANTR4语法) | `a30f8169885836226208041fbc41001bd64d710e` | `v0.34.1` |
| [`1c-syntax/vsc-language-1c-bsl`](https://github.com/1c-syntax/vsc-language-1c-bsl) | TextMate 范围参考文献 (`1c.tmLanguage.json`, (中文(简体) ), `1c-query.tmLanguage.json`(中文(简体) ) | `30e6c7994a2ee745c92fa0238fa2e81c78d4781d` | `v1.33.1` |
| [`1c-syntax/bsl-language-server`](https://github.com/1c-syntax/bsl-language-server) | 语义-token → LSP 符号类型映射(`SemanticTokensProvider`, (中文(简体) ), `*SemanticTokensSupplier`)——被困于活跃分子 `develop` 分支, 不是最新发布的 | `be49fcbf45d082a1db15504b51a551f6a55183c0` (单位:千美元)`develop`(中文(简体) ) | 最新发布时间 : `v0.29.0` |

上游变化后重新同步: 上方表格,重放上游 diff 相对 `src/bsl.grammar` 财务报告和审定财务报表 `src/index.ts` (样式Tags),并添加回归测试 `test/cases.txt`。 。 。 .

## 限制

少数故意的简化,主要是保留LR语法 无歧义:

-   **上下文敏感的预处理器标识符 .** `#Если`编号 :`#Иначе`编号 : `#КонецЕсли`编号 :`#Тогда`编号 :`#И`编号 :`#Или`编号 :`#Не` 重用相应的 BSL 关键字 术语——样式Tags通过父选择者对其进行歧视. 其余部分 预处理器唯一的单词( q)`Область`, (中文(简体) ), `КонецОбласти`, (中文(简体) ), `Использовать`, (中文(简体) ), `native`, (中文(简体) ), `Удаление`编号 :`КонецУдаления`, (中文(简体) ), `Вставка`编号 :`КонецВставки`已经 专门化全球; 如果您在外部使用一个普通标识符 `#` 上下文,将标记为预处理器符号。 BSL 公约 在实践中不与这些名字相冲突.
-   **调用参数中的逗号** (单位:千美元)`Метод(a,,b)` 或者说 `Метод(,a)`)为 不支持 – 建模 `,` 作为独立项目与内部冲突 `f(g(...))` 在 LR(1) 中解析,没有自定义的外部标识器。 全体 参数必须是非空表达式。 感染者约为1%至2% 现实世界 BSL.
-   **多行字符串不能包含嵌入式预处理器指令.** 美国人的 `multilineString : STRINGSTART (STRINGPART | BAR | preprocessor)* STRINGTAIL` 接受 `#Если` 内置 a `|`\- 接续字符串; 我们匹配 整个字面作为一个符号。 实践中非常罕见.

对照 ~100 现实世界配置文件验证 (单位:千美元)`1c-syntax/bsl-language-server` 财务报告和审定财务报表 `1c-syntax/vsc-language-1c-bsl` 固定装置: **85% 干净, 0 个硬故障**,其余的~15%为 故意解析错误测试案例、源级打字,或击中一个 以上三个限制.

超出范围( 推迟到其他工具):

-   智能/ 完成/ 徘徊—— 属于 [`bsl-language-server`](https://github.com/1c-syntax/bsl-language-server)。 。 。 .
-   复出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相出相相出相出相出相出相出相.

## 构建测试( T)

```bash
npm install
npm run build   # runs lezer-generator + rollup + tsc
npm test        # mocha against test/cases.txt fixtures
```

{\\fn黑体\\fs20\\shad2\\2aH82\\3aH20\\4aH33\\fscx95\\3cH592001\\be1}收押船是公共邮轮 `.npmrc` 在默认的网络上作贡献 到一个私有镜像(例如公司造型) 仍然从 `https://registry.npmjs.org/`。需要单独出版 `npm login` 违反公共登记.

## 演示

主机版本在 [https://1c-syntax.github.io/codemirror-lang-bsl/ (中文(简体) )](https://1c-syntax.github.io/codemirror-lang-bsl/) 实值 自动部署 `.github/workflows/pages.yml` 在每次推动 `main`。要在当地建立演示:

```bash
npm install
npm run lint          # ESLint (flat config) on src/, examples/, test/
npm run build         # main library → dist/
npm test              # mocha against test/cases.txt and overlay tests
npm run build:demo    # static demo → docs/{index.html,bundle.js}
npm run build:docs    # TypeDoc API reference → docs/api/
npm run build:site    # demo + docs (CI uses this for gh-pages)
# serve docs/ via any HTTP server, e.g.
python3 -m http.server -d docs 8080
```

`examples/demo.ts` 来源; `examples/index.html` 是 HTML 外壳 滚动配置副本 `docs/index.html` 和捆绑在一起 `bundle.js`。 。 。 .

## 出版发行

通过发布带有表单标签的 GitHub 发布来剪切释放 `v<version>` (比对) `package.json#version`) (中文(简体) ). 这个 `.github/workflows/publish.yml` 工作流程构建、测试和运行 `npm publish --provenance --access public` 对npmjs.org。 认证 通过 [npm 受托出版](https://docs.npmjs.com/trusted-publishers) - 没有长寿 `NPM_TOKEN` 需要保密; npm 交换工作流程 OIDC 用于在出版时的短命证书.

### 设置( 一次性)

1.  [https://www.npmjs.com/package/@1c-syntax/codemirror-lang-bsl/ access (中文(简体) )](https://www.npmjs.com/package/@1c-syntax/codemirror-lang-bsl/access) → _受托出版商_ → _添加_
2.  提供者 : **GitHub 动作**
3.  仓库拥有者 : `1c-syntax`,仓库 : `codemirror-lang-bsl`
4.  工作流程文件名称 : `publish.yml`
5.  环境: `npm`

就是这样——没有秘密,没有象征. 工作流程的 `id-token: write` 权限加 `--provenance` 足够; npm 验证 OIDC 令牌 对已配置的可信任出版商,并接受上传.

### 切开释放

1.  弹出 `package.json#version`,承诺,推.
2.  [https://github.com/1c-syntax/codemirror-lang-bsl/releases/ new (中文(简体) )](https://github.com/1c-syntax/codemirror-lang-bsl/releases/new) → 标签 `v<version>` (比对) `package.json#version`页:1 _发布_。 。 。 .
3.  这个 `Publish to npm` 工作流程拾取 `release.published` 事件, 验证标签 vs 版本、构建、测试和运行 `npm publish`。 。 。 .

### 切割前干燥

`workflow_dispatch` 打开 `Publish to npm` 接受一个 `dry_run` 输入。 运行它 在不实际发表的情况下验证认证、构建和沥青球内容.

## 许可证

麻省理工学院——见 [自由主义](https://npmcn.com/package/%401c-syntax/codemirror-lang-bsl/LICENSE)。 。 。 .

## 常见问题

### @1c-syntax/codemirror-lang-bsl 是什么？

1C: CodeMiror 6 的 Enterprise / OneScript \(BSL\) 语言支持

### 如何安装 @1c-syntax/codemirror-lang-bsl？

在项目目录运行 npm install @1c-syntax/codemirror-lang-bsl，或使用 pnpm add / yarn add / bun add。

### @1c-syntax/codemirror-lang-bsl 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @1c-syntax/codemirror-lang-bsl 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @1c-syntax/codemirror-lang-bsl 可以商用吗？

@1c-syntax/codemirror-lang-bsl 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @1c-syntax/codemirror-lang-bsl 的下载量有多少？

根据 npm 官方下载统计，@1c-syntax/codemirror-lang-bsl 在 2026/10/05 – 2026/11/03 这 30 天内被下载 4,882 次，日均约 163 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @1c-syntax/codemirror-lang-bsl 还在维护吗？

最新版本 0\.3\.2 发布于 2026/07/18（3 个月前）；至今共发布 5 个版本，其中过去 12 个月发布了 5 个；首次发布于 2026/05/28。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

