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



Пакеты, добавляющие поддержку синтаксиса языка 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

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

Сниппеты

37 Comments

  1. lustin

    5-ый пункт желательно расшифровать — как запуск настроить прям из редактора.

    Reply ↓
  2. JohnyDeath

    Автору огромное спасибо за проделанную работу. Реально удобно и приятно стало работать со скриптами OneScript, за который отдельное спасибо Андрею Овсянкину 😉

    Reply ↓
  3. nixel

    (1) lustin, ссылки на подробные инструкции по запуску указаны в README каждого пакета. Сейчас так же добавлю в статью сноску

    Reply ↓
  4. artbear
    поиск по «1c bsl» должен выдать наиболее релеватный результат

    Исправь на релевантный

    Reply ↓
  5. artbear
    чате gitter

    ИМХО лучше добавить прямую ссылку.

    Reply ↓
  6. nixel

    (5) artbear, добавил ссылку.

    очепятки лучше в личку 😉

    Reply ↓
  7. nSpirit2

    Ого вот это реально круто 🙂 Большое спасибо!

    Reply ↓
  8. nSpirit2

    Кусок типо

    #Область ПрограммныйИнтерфейс
    
    #КонецОбласти
    

    Не подсвечивается 🙁

    Reply ↓
  9. nixel

    (8) nSpirit2, поправим, спасибо 🙂

    Reply ↓
  10. Pr-Mex

    Отличная вещь!

    Reply ↓
  11. fishca

    в конфигуратор бы засунуть все эти возможности

    Reply ↓
  12. nixel

    (11) fishca, есть snegopat :). плюс, я надеюсь на EDT и его плагины.

    Reply ↓
  13. Evil Beaver

    И не забудем похвалить bambr1975, которая невероятно быстро и качественно разобралась, как командовать всеми этими редакторами!

    Reply ↓
  14. artbear

    + (13) Добавь ссылку на профиль http://infostart.ru/profile/128365/ чтобы страна более точно знала своих героев

    Reply ↓
  15. ardn

    Установил атом, установил пакеты language-1c-bsl и scripts.

    Открыл скрипт, который успешно работает в notepad++. Грамматика указана правильная. Нажимаю на Ctrl-Shift-B.

    Атом ругается — Unable to run.

    ЧЯДНТ?

    Reply ↓
  16. damayorov

    Удобная вещь. Спасибо автору.

    Reply ↓
  17. nixel

    (15) ardn, возможно вы нарвались вот на этот баг — https://github.com/xDrivenDevelopment/1c-syntax/issues/74

    Попробуйте открыть каталог или запустить атом с консоли.

    Reply ↓
  18. ardn

    (17)

    Спасибо. При открытии из каталога скрипты запускаются

    Reply ↓
  19. nixel

    (8) nSpirit2, исправлено в версии 1.1.6.

    Reply ↓
  20. st00

    Супер! Все-же сделали! Самому нет нужды теперь делать под sublime, а так хотелось.

    Reply ↓
  21. nixel

    Баг с подсветкой в VS Code исправлен в редакторе версии 0.10.8. Обновляйтесь и будет вам щастье.

    Reply ↓
  22. nixel

    Вышла версия 1.2.0 с подсветкой языка запросов. Для работы подсветки выберите синтаксис 1C (Query). Текст запроса должен быть не внутри кавычек, иначе он будет отображаться как строка.

    Добавил пример подсветки в статью.

    Reply ↓
  23. nixel

    Вышел релиз 1.2.1 с подсветкой текста запроса прямо в тексте модуля. Выглядит примерно вот так:

    Reply ↓
  24. bruho

    Спасибо, реально очень удобно пользоваться редакторами!

    Reply ↓
  25. baracuda

    Как пользоваться то?

    Редактором ведь базу не откроешь?

    Reply ↓
  26. nixel

    (25) baracuda, базу — не откроешь.

    Исходники конфигураций или обработок, выгруженные в файлы — без проблем. А еще есть скрипты на OneScript. Да и копипаст в окно никто не отменял.

    Reply ↓
  27. webester

    Пользоваться не планирую, где мог бы применить пока не понятно, но выглядит офигенно 🙂

    Reply ↓
  28. nixel

    Добавлена информация о вышедших релизах 1.3.0 (линтер) и 1.4.0 (шаблоны текста).

    Так же хорошая новость для пользователей Atom — в релизе 1.7 в редактор включат наши изменения по поддержке кириллических (и не только) символов при работе автодополнения. Надеемся на скорый выпуск (1.6 должен выйти уже на днях).

    Временное решение можно посмотреть по этой ссылке — https://github.com/xDrivenDevelopment/1c-syntax/issues/50#issuecomment-181997844

    Reply ↓
  29. nixel

    Вышел стабильный релиз Atom 1.7, в который включены наши правки по поддержке Юникода при работе автодополнения. Теперь не требуются танцы с бубном, чтобы заставить работать сниппеты и автодополнение в Атоме.

    Если вы по инструкции ставили пакет autocomplete-plus вручную, то крайне (очень-очень) рекомендуется его удалить. Напомню, что установлен он был сюда: %userprofiles%.atompackagesautocomplete-plus

    Reply ↓
  30. nixel

    Выпущен релиз language-1c-bsl 1.5.0 для VS Code.

    Новая система автодополнения для конфигураций, разложенных на исходные файлы, и скриптов `.os`

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

    * Переход к определению

    * Поиск мест использования процедур

    * Информация о процедуре

    * Предварительный просмотр определения процедуры

    * Автодополнение через точку

    * Подсказка по параметрам процедур

    * Поиск определения

    * Поддержка английского языка конфигурации

    * Создание описания метода

    * Синтаксис-помощник по функциям глобального контекста

    * Добавлены настройки для работы с OneScriptLint и системой автодополнения

    * Автоматическая вставка скобок

    Reply ↓
  31. MadDAD

    (30) я независимо начал свое, но для Visual Studio Integrated Shell. Предлагаю свои корявые исходники влить в общее дело

    Reply ↓
  32. nixel

    (31) MadDAD, да, я видел 🙂 все бы хорошо, но я не нашел исходников 🙂

    Плюс — мое для восьмерки. Слабо представляю, что можно слить. Грамматику разве что.

    Reply ↓
  33. nixel

    Но если есть что сливать, то буду рад 🙂

    Reply ↓
  34. HDRX

    Можно подробнее о практике применения.

    С OneScript понятно: пишем код на языке 1С — получаем скрипт. Тут польза очевидна.

    Касаемо разработки конфигураций — какие есть альтернативы ручному копипасту?

    Reply ↓
  35. pumbaE

    (34) HDRX, простейший watch за файловой системой и при изменении модуля частичная загрузка в cf (как сейчас и edt делает).

    Reply ↓
  36. WildVirus

    (22) В запросах не подсвечиваются параметры, те что начинаются с &.

    Reply ↓
  37. nixel

    (36) WildVirus, уточните, пожалуйста, ваш редактор, версию редактора, используемую цветовую тему и версию плагина.

    Грамматика перед каждым релизом проверяется автоматически по заранее описанным правилам, например, вот: https://github.com/xDrivenDevelopment/atom-language-1c-bsl/blob/master/spec/fixtures/grammar/syntax_test_bsl.bsl

    Последние 3 месяца изменений в работе грамматики (встроенного языка и языка запросов) не было.

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *