В последнее время на Инфостарте набирает популярность тема различных "разукрашек" 1С-текста. Внесу и свою лепту.
Мной, совместно с коллегами из сообщества xDrivenDevelopment, были разработаны синтаксис-пакеты для текстовых редакторов Atom, Sublime Text и VS Code.
Что такое синтаксис-пакет?
Синтаксис-пакеты - это специальные расширения-плагины для редакторов, описывающие правила разбора текстового модуля. Обращаю Ваше внимание на словосочетание "правила разбора". С таким пакетом Вы можете установить любую тему редактора каких угодно цветов. Самое главное, что редактор будет понимать, что "ЗначениеЗаполнено" - это встроенная функция, а "Экспорт" - ключевое слово.
Пара примеров работы:
Monokai:
Не менее популярный Solarized Light:
Как видите, вне зависимости от расцветки редактора, все ключевые слова, операторы, etc..., подсвечиваются корректно.
Так же в пакете присутствует подсветка языка запросов. Текст запроса подсвечивается даже внутри текста модуля.
Что еще?
Однако, не расцветкой единой жив 1С-программист. Пакеты добавляют несколько приятных и нужных функций для редактирования кода.
Пройдемся по некоторым пунктам из списка полезностей:
1) Автоматическая вставка | при редактировании многострочной строки:
2) Список процедур и функций текущего файла и/или рабочего каталога:
3) Дополнение процедур и функций глобального контекста:
4) Автоматические отступы (вперед и назад) при наборе блочных конструкций (например, Если ... Тогда ... КонецЕсли):
5) Используя данные пакеты, Вы можете запускать файлы *.bsl или *.os через интерпретатор OneScript, разработанный EvilBeaver (//infostart.ru/profile/267027/). Подробную инструкцию по настройке запуска скриптов смотрите в "README" интересующего Вас пакета.
С полным списком возможностей и доступностью каждой из них в редакторах Вы можете ознакомиться здесь, в разделе "Дополнительные возможности". Ссылка ведет на "головной" репозиторий, где консолидируются работы по развитию пакетов.
Что дальше?
Наша команда старается постепенно расширять функциональность пакетов, добавляя новые возможности. В следующем релизе, например, планируется добавить поддержку стандартных шаблонов текста или, как их еще называют, сниппетов.
Так же идут работы по добавлению подсветки синтаксиса 1С на сам github. Основная сложность сейчас - недостаточная популярность расширения *.bsl на github. Публикуйте свои конфигурации и обработки, приобщайтесь к git и OpenSource. Количество репозиториев на данном шаге очень важно.
Ну и конечно же оставляйте свои замечания и пожелания здесь, разделе Issues репозитория или чате gitter.
Ссылки
А вот и список ссылок на пакеты:
- для Atom: atom.io/packages
- для Sublime Text: Package control
- для VS Code: Marketplace
Пакеты можно установить через штатные пакетные менеджеры каждого из редакторов (поиск по "1c bsl" должен выдать наиболее релевантный результат). Если не знаете как это сделать, на странице пакетов есть ссылки на инструкции по установке. README так же содержит ссылки на дополнительные инструкции по настройке функциональности.
Благодарности
Огромное спасибо bambr1975 (//infostart.ru/profile/128365/) за помощь в укрощении VS Code и реализацию множества полезных фич в пакетах!
Спасибо Андрею Овсянкину (EvilBeaver) за OneScript. Именно наличие внешних скриптов на 1С-языке и побудило меня начать работать над грамматикой.
Спасибо всей команде xDrivenDevelopment за тестирование, обсуждение, и всяческую помощь при разработке :)
И спасибо Вам за внимание!
Обновления (значимые)
Полный список изменений всегда доступен здесь (CHANGELOG в основном репозитории проекта).
1.3.0
Добавлен линтер файлов *.os. Используется интерпретатор OneScript в режиме "check". Позволяет при сохранении сразу увидеть допущенные ошибки.
1.4.0
Добавлены шаблоны текста (сниппеты). За основу взяты стандартные шаблоны из конфигуратора.