BSL Toolkit
unlistedby nsnasyjrov
Syntax highlighting and contextual completion for 1C:Enterprise BSL code blocks.
BSL Toolkit for Obsidian
Подсветка BSL/1С, лёгкий автокомплит и удобное редактирование fenced code blocks прямо в Obsidian.
BSL Toolkit превращает Markdown-заметки с кодом 1С в компактную среду разработки. Плагин работает в Live Preview, Source Mode и Reading View, не затрагивая обычный Markdown вокруг блока.
&НаСервере
Функция ПолучитьКонтрагентов()
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ * ИЗ Справочник.Контрагенты";
Возврат Запрос.Выполнить().Выбрать();
КонецФункции
Возможности
- Семантическая подсветка BSL на базе
@1c-syntax/codemirror-lang-bsl. - Аннотации, препроцессор, ключевые слова, строки, числа, типы, свойства и вызовы методов в разных цветах.
- Палитра в духе PhpStorm/IntelliJ для светлой и тёмной тем Obsidian.
- Зелёные комментарии и отдельный цвет вызовов процедур/функций.
- Подсветка не исчезает при раскрытии и редактировании блока.
- Один клик по отрендеренному блоку сразу открывает его для редактирования.
- Поддержка fences
bsl,1cиos.
Лёгкий автокомплит
Автокомплит автоматически появляется после двух символов. Для ручного вызова используйте Ctrl + Space.
| Контекст | Что предлагается |
|---|---|
| Обычный ввод | Ключевые слова, глобальные функции, сниппеты и локальные имена |
Новый ... | Типы платформы: Запрос, Структура, ТаблицаЗначений и другие |
Объект. | Часто используемые методы |
& | Аннотации компиляции |
# | Директивы препроцессора |
Глобальные функции и методы вставляются со скобками и курсором внутри.
Установка
Из GitHub Release
- Скачайте
bsl-toolkit-1.3.0.zipиз последнего релиза. - Распакуйте папку
bsl-toolkitв<vault>/.obsidian/plugins/. - Перезапустите Obsidian.
- Откройте Settings → Community plugins и включите BSL Toolkit.
Можно также скачать main.js, manifest.json и styles.css по отдельности и поместить их в <vault>/.obsidian/plugins/bsl-toolkit/.
Использование
Укажите BSL в Markdown fence:
```bsl
Сообщить("Привет из Obsidian!");
```
Алиасы 1c и os можно отключить в настройках плагина. Там же отдельно управляются автокомплит, сниппеты, локальные символы и Reading View.
Производительность
Плагин проектировался для больших технических заметок:
- границы fenced blocks берутся из Markdown syntax tree и кешируются;
- BSL-дерево обновляется инкрементально через Lezer fragments;
- очень большие блоки разбираются частями вокруг видимой области;
- Reading View использует CSS Custom Highlight для крупных блоков вместо десятков тысяч DOM-элементов;
- поиск локальных символов ограничен окном вокруг курсора.
Разработка
Требуется Node.js 20+.
git clone https://github.com/nsnasyjrov/bsl-obsidian-plugin.git
cd bsl-obsidian-plugin
npm ci
npm test
npm run build
Команда npm run dev запускает watch-сборку. Production bundle создаётся в main.js.
Ограничения и roadmap
Текущий автокомплит намеренно лёгкий: он не читает metadata конфигурации 1С и не заменяе Language Server. В будущих версиях могут появиться:
- опциональная интеграция с BSL Language Server;
- diagnostics и hover;
- go to definition;
- formatting;
- metadata-aware completion.
Лицензия
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.