Подсветка синтаксиса 1С в текстовых редакторах Atom, Sublime Text, VS Code

14.04.16

Разработка - Инструментарий разработчика

Пакеты, добавляющие поддержку синтаксиса языка 1С:Предприятие 8 в текстовые редакторы Atom, Sublime Text и VS Code. И не только.

В последнее время на Инфостарте набирает популярность тема различных "разукрашек" 1С-текста. Внесу и свою лепту.

Мной, совместно с коллегами из сообщества xDrivenDevelopment, были разработаны синтаксис-пакеты для текстовых редакторов Atom, Sublime Text и VS Code.

Что такое синтаксис-пакет?

Синтаксис-пакеты - это специальные расширения-плагины для редакторов, описывающие правила разбора текстового модуля. Обращаю Ваше внимание на словосочетание "правила разбора". С таким пакетом Вы можете установить любую тему редактора каких угодно цветов. Самое главное, что редактор будет понимать, что "ЗначениеЗаполнено" - это встроенная функция, а "Экспорт" - ключевое слово.

Пара примеров работы:

Monokai:

 

Monokai

 

Не менее популярный Solarized Light:

 

Solarized Light

 

Как видите, вне зависимости от расцветки редактора, все ключевые слова, операторы, etc..., подсвечиваются корректно.

Так же в пакете присутствует подсветка языка запросов. Текст запроса подсвечивается даже внутри текста модуля.

 

Query-monokai

 

Что еще?

Однако, не расцветкой единой жив 1С-программист. Пакеты добавляют несколько приятных и нужных функций для редактирования кода.

Пройдемся по некоторым пунктам из списка полезностей:

1) Автоматическая вставка | при редактировании многострочной строки:

 

Автоперенос строки

 

2) Список процедур и функций текущего файла и/или рабочего каталога:

 

Список процедур и функций

 

3) Дополнение процедур и функций глобального контекста:

 

Контекстная подсказка

 

4) Автоматические отступы (вперед и назад) при наборе блочных конструкций (например, Если ... Тогда ... КонецЕсли):

 

Автоотступы

 

5) Используя данные пакеты, Вы можете запускать файлы *.bsl или *.os через интерпретатор OneScript, разработанный EvilBeaver (//infostart.ru/profile/267027/). Подробную инструкцию по настройке запуска скриптов смотрите в "README" интересующего Вас пакета.

 

Запуск oscript

 

С полным списком возможностей и доступностью каждой из них в редакторах Вы можете ознакомиться здесь, в разделе "Дополнительные возможности". Ссылка ведет на "головной" репозиторий, где консолидируются работы по развитию пакетов.

Что дальше?

Наша команда старается постепенно расширять функциональность пакетов, добавляя новые возможности. В следующем релизе, например, планируется добавить поддержку стандартных шаблонов текста или, как их еще называют, сниппетов.

Так же идут работы по добавлению подсветки синтаксиса 1С на сам github. Основная сложность сейчас - недостаточная популярность расширения *.bsl на github. Публикуйте свои конфигурации и обработки, приобщайтесь к git и OpenSource. Количество репозиториев на данном шаге очень важно.

Ну и конечно же оставляйте свои замечания и пожелания здесь, разделе Issues репозитория или чате gitter.

Ссылки

А вот и список ссылок на пакеты:

Пакеты можно установить через штатные пакетные менеджеры каждого из редакторов (поиск по "1c bsl" должен выдать наиболее релевантный результат). Если не знаете как это сделать, на странице пакетов есть ссылки на инструкции по установке. README так же содержит ссылки на дополнительные инструкции по настройке функциональности.

Благодарности

Огромное спасибо bambr1975 (//infostart.ru/profile/128365/) за помощь в укрощении VS Code и реализацию множества полезных фич в пакетах!

Спасибо Андрею Овсянкину (EvilBeaver) за OneScript. Именно наличие внешних скриптов на 1С-языке и побудило меня начать работать над грамматикой.

Спасибо всей команде xDrivenDevelopment за тестирование, обсуждение, и всяческую помощь при разработке :)

 

И спасибо Вам за внимание!

 

Обновления (значимые)

Полный список изменений всегда доступен здесь (CHANGELOG в основном репозитории проекта).

1.3.0

Добавлен линтер файлов *.os. Используется интерпретатор OneScript в режиме "check". Позволяет при сохранении сразу увидеть допущенные ошибки.

 

 

1.4.0

Добавлены шаблоны текста (сниппеты). За основу взяты стандартные шаблоны из конфигуратора.

 

 

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    122177    670    389    

714

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 15300 руб.

06.10.2023    7297    21    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8000 руб.

10.11.2023    3544    11    1    

34

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177758    1073    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99348    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18116    6    8    

39

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28111    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23605    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. lustin 02.02.16 11:03 Сейчас в теме
5-ый пункт желательно расшифровать - как запуск настроить прям из редактора.
user1080864; KAV2; sorb; JohnyDeath; +4 Ответить
3. nixel 1403 02.02.16 11:17 Сейчас в теме
(1) lustin, ссылки на подробные инструкции по запуску указаны в README каждого пакета. Сейчас так же добавлю в статью сноску
2. JohnyDeath 301 02.02.16 11:15 Сейчас в теме
Автору огромное спасибо за проделанную работу. Реально удобно и приятно стало работать со скриптами OneScript, за который отдельное спасибо Андрею Овсянкину ;)
Dim1234; Shmell; Созинов; sorb; kuntashov; artbear; +6 Ответить
4. artbear 1448 02.02.16 11:48 Сейчас в теме
поиск по "1c bsl" должен выдать наиболее релеватный результат

Исправь на релевантный
5. artbear 1448 02.02.16 11:49 Сейчас в теме
чате gitter

ИМХО лучше добавить прямую ссылку.
6. nixel 1403 02.02.16 11:52 Сейчас в теме
(5) artbear, добавил ссылку.
очепятки лучше в личку ;)
7. nSpirit2 02.02.16 12:09 Сейчас в теме
Ого вот это реально круто :) Большое спасибо!
8. nSpirit2 02.02.16 12:34 Сейчас в теме
Кусок типо
#Область ПрограммныйИнтерфейс

#КонецОбласти


Не подсвечивается :(
9. nixel 1403 02.02.16 12:42 Сейчас в теме
(8) nSpirit2, поправим, спасибо :)
19. nixel 1403 03.02.16 23:15 Сейчас в теме
(8) nSpirit2, исправлено в версии 1.1.6.
10. Pr-Mex 136 02.02.16 12:59 Сейчас в теме
11. fishca 1254 02.02.16 13:37 Сейчас в теме
в конфигуратор бы засунуть все эти возможности
12. nixel 1403 02.02.16 13:39 Сейчас в теме
(11) fishca, есть snegopat :). плюс, я надеюсь на EDT и его плагины.
13. Evil Beaver 8107 02.02.16 14:02 Сейчас в теме
И не забудем похвалить bambr1975, которая невероятно быстро и качественно разобралась, как командовать всеми этими редакторами!
vlad.frost; sikuda; awa; nSpirit2; JohnyDeath; nixel; lustin; sorb; artbear; kuntashov; +10 Ответить
14. artbear 1448 02.02.16 14:46 Сейчас в теме
+ (13) Добавь ссылку на профиль http://infostart.ru/profile/128365/ чтобы страна более точно знала своих героев
15. ardn 622 02.02.16 14:56 Сейчас в теме
Установил атом, установил пакеты language-1c-bsl и scripts.
Открыл скрипт, который успешно работает в notepad++. Грамматика указана правильная. Нажимаю на Ctrl-Shift-B.
Атом ругается - Unable to run.
ЧЯДНТ?
17. nixel 1403 02.02.16 15:07 Сейчас в теме
(15) ardn, возможно вы нарвались вот на этот баг - https://github.com/xDrivenDevelopment/1c-syntax/issues/74
Попробуйте открыть каталог или запустить атом с консоли.
18. ardn 622 02.02.16 15:39 Сейчас в теме
(17)
Спасибо. При открытии из каталога скрипты запускаются
16. damayorov 2 02.02.16 15:02 Сейчас в теме
Удобная вещь. Спасибо автору.
20. st00 04.02.16 12:14 Сейчас в теме
Супер! Все-же сделали! Самому нет нужды теперь делать под sublime, а так хотелось.
21. nixel 1403 09.02.16 11:44 Сейчас в теме
Баг с подсветкой в VS Code исправлен в редакторе версии 0.10.8. Обновляйтесь и будет вам щастье.
JohnyDeath; +1 Ответить
22. nixel 1403 12.02.16 17:03 Сейчас в теме
Вышла версия 1.2.0 с подсветкой языка запросов. Для работы подсветки выберите синтаксис 1C (Query). Текст запроса должен быть не внутри кавычек, иначе он будет отображаться как строка.
Добавил пример подсветки в статью.
36. WildVirus 05.10.16 12:01 Сейчас в теме
(22) В запросах не подсвечиваются параметры, те что начинаются с &.
37. nixel 1403 05.10.16 21:14 Сейчас в теме
(36) WildVirus, уточните, пожалуйста, ваш редактор, версию редактора, используемую цветовую тему и версию плагина.
Грамматика перед каждым релизом проверяется автоматически по заранее описанным правилам, например, вот: https://github.com/xDrivenDevelopment/atom-language-1c-bsl/blob/master/spec/fixtures/grammar/syntax_test_bsl.bsl
Последние 3 месяца изменений в работе грамматики (встроенного языка и языка запросов) не было.
23. nixel 1403 15.02.16 12:29 Сейчас в теме
Вышел релиз 1.2.1 с подсветкой текста запроса прямо в тексте модуля. Выглядит примерно вот так:
SagittariusA; lustin; JohnyDeath; +3 Ответить
24. bruho 19.02.16 11:11 Сейчас в теме
Спасибо, реально очень удобно пользоваться редакторами!
25. baracuda 2 19.02.16 11:17 Сейчас в теме
Как пользоваться то?
Редактором ведь базу не откроешь?
26. nixel 1403 19.02.16 14:54 Сейчас в теме
(25) baracuda, базу - не откроешь.
Исходники конфигураций или обработок, выгруженные в файлы - без проблем. А еще есть скрипты на OneScript. Да и копипаст в окно никто не отменял.
27. webester 26 06.03.16 16:24 Сейчас в теме
Пользоваться не планирую, где мог бы применить пока не понятно, но выглядит офигенно :)
ixijixi; baracuda; +2 Ответить
28. nixel 1403 10.03.16 16:02 Сейчас в теме
Добавлена информация о вышедших релизах 1.3.0 (линтер) и 1.4.0 (шаблоны текста).

Так же хорошая новость для пользователей Atom - в релизе 1.7 в редактор включат наши изменения по поддержке кириллических (и не только) символов при работе автодополнения. Надеемся на скорый выпуск (1.6 должен выйти уже на днях).
Временное решение можно посмотреть по этой ссылке - https://github.com/xDrivenDevelopment/1c-syntax/issues/50#issuecomment-181997844
29. nixel 1403 14.04.16 18:58 Сейчас в теме
Вышел стабильный релиз Atom 1.7, в который включены наши правки по поддержке Юникода при работе автодополнения. Теперь не требуются танцы с бубном, чтобы заставить работать сниппеты и автодополнение в Атоме.

Если вы по инструкции ставили пакет autocomplete-plus вручную, то крайне (очень-очень) рекомендуется его удалить. Напомню, что установлен он был сюда: %userprofiles%\.atom\packages\autocomplete-plus
30. nixel 1403 11.05.16 21:34 Сейчас в теме
Выпущен релиз language-1c-bsl 1.5.0 для VS Code.

Новая система автодополнения для конфигураций, разложенных на исходные файлы, и скриптов `.os`
Изменений настолько много, что полное описание новых возможностей заняло отдельную страницу в wiki проекта - https://goo.gl/ZrLBjk

* Переход к определению
* Поиск мест использования процедур
* Информация о процедуре
* Предварительный просмотр определения процедуры
* Автодополнение через точку
* Подсказка по параметрам процедур
* Поиск определения
* Поддержка английского языка конфигурации
* Создание описания метода
* Синтаксис-помощник по функциям глобального контекста
* Добавлены настройки для работы с OneScriptLint и системой автодополнения
* Автоматическая вставка скобок
31. MadDAD 152 10.06.16 10:41 Сейчас в теме
(30) я независимо начал свое, но для Visual Studio Integrated Shell. Предлагаю свои корявые исходники влить в общее дело
32. nixel 1403 10.06.16 18:04 Сейчас в теме
(31) MadDAD, да, я видел :) все бы хорошо, но я не нашел исходников :)
Плюс - мое для восьмерки. Слабо представляю, что можно слить. Грамматику разве что.
33. nixel 1403 10.06.16 18:40 Сейчас в теме
Но если есть что сливать, то буду рад :)
34. HDRX 22 30.09.16 09:42 Сейчас в теме
Можно подробнее о практике применения.
С OneScript понятно: пишем код на языке 1С - получаем скрипт. Тут польза очевидна.
Касаемо разработки конфигураций - какие есть альтернативы ручному копипасту?
35. pumbaE 30.09.16 10:19 Сейчас в теме
(34) HDRX, простейший watch за файловой системой и при изменении модуля частичная загрузка в cf (как сейчас и edt делает).
SagittariusA; +1 Ответить
Оставьте свое сообщение