Создаём подсветку синтаксиса в Notepad++

в 19:28, , рубрики: , notepad++, windows, разработка, метки: ,

Программируя в 1С привыкаешь к подсветке синтаксиса, используемой в конфигураторе, но когда хочешь распечатать исходник какого-либо модуля, чтоб вечерком посидеть с карандашом и подумать над написанным, то возникает некоторая проблема: а как же его распечатать с сохранением подсветки? Копипаст в текстовый редактор — потеря раскраски, печать напрямую из конфигуратора — тот же результат.

В последнее время подсел на notepad++, он умеет печатать с выбранной подсветкой синтаксиса, но проблема в том, что нет подсветки именно для языка, используемого в 1С. Долго и безрезультатно искал нужную подсветку синтаксиса. Нашел на одном сайте, но они просят денег и нет гарантии, что это то самое искомое.

Попытался сам вручную создать подсветку, но все шаманства с xml файлами не приводили к успеху. Наткнулся на статью «Включаем подсветку синтаксиса для less файлов в Notepad++», ожидал увидеть там рецепт создания этой самой подсветки, но как и многие комментирующие был разочарован содержанием поста. В результате копания мануалов у меня получилось таки создать нужную мне подсветку. Оказывается это совсем не сложно! Итак приступим:

  1. Открываем Notepad++.
  2. Для удобства открываем текстовый файл с кодом, который будем раскрашивать.
  3. В меню «Синтаксис» выбираем параметр «Свои настройки»
  4. В меню «Вид» выбираем пункт «Пользовательское определение языка» или нажимаем на панели инструментов кнопку:
    Создаём подсветку синтаксиса в Notepad++
    Откроется окно настроек синтаксиса. Можно нажать кнопку «Стыковать» в правом верхнем углу (которая может называться «Dock», в зависимости от полноты перевода интерфейса), чтоб прилепить к правому краю окна. Плюсом такого решения будет полоса прокрутки, дающая возможность добраться до нижних параметров, которые могут просто не влезть по вертикали в монитор
  5. На вкладке «Стандартный» настраиваем базовый стиль отображения в разделе «Настройка стандартного стиля»: основной шрифт, размер, цвет фона и текста, который не будет попадать под остальную раскраску. Все параметры применяются сразу и любые изменения можно наблюдать воочию.
    Создаём подсветку синтаксиса в Notepad++
    На этой же вкладке в разделе «Настройка открытия ключевых слов» указываем теги группы, по которым определяются блоки текста. Например, у нас блоком является все, что между операторами «Процедура» и «КонецПроцедуры», следовательно «Процедура» пишем в первое поле, а «КонецПроцедуры» в поле ниже. Для каждой группы можно указать отдельные настройки шрифта и цвета. Ключевые слова разделяются пробелом. Добавим туда процедуры циклов и условий, чтоб можно было сворачивать их в группы.
  6. С блоками разобрались, теперь подкрасим ключевые слова. Для этого нам понадобится вкладка «Списки ключевых слов». Здесь нам доступны 4 группы, которые мы можем использовать как нам заблагорассудится. Добавляем в первую все операторы, которые нужно выделить цветом, это будут всякие «Перем», «Выбрать» и т.п. Во вторую группу пропишем инструкции препроцессора "#" и поставим галочку «Префикс» для того, чтоб цветовая схема распространилась и на слово после этого символа.
    Создаём подсветку синтаксиса в Notepad++
  7. Плавно переходим на вкладку раскраски комментариев. Заполнение этой вкладки не должно вызвать каких-либо затруднений.
    Создаём подсветку синтаксиса в Notepad++
  8. Вкладка «Операторы» немного отличается от описанных выше. Здесь нам предоставляют список одиночных операторов, которые мы можем раскрасить. При помощи кнопки со стрелкой переносим нужные нам операторы в поле «Активные операторы» и ниже выставляем параметры раскраски. Чекбокс «Включить знак перехода» мне ничем не помог, так как при включении появляются в поле китайские символы и никак не хотят меняться. Далее следует группа разделителей: тут указываем цветовые и шрифтовые параметры для окавыченного текста. Думаю затруднений не составит сделать настройки на свой вкус.
    Создаём подсветку синтаксиса в Notepad++
  9. Теперь осталось сохранить наше творение под каким либо именем. Для этого в верхней части окна нажимаем кнопку «Сохранить как...» и вводим имя нашей синтаксической подсветки. Раскраска сохраняется в специальном файле userDefineLang.xml. Настройки можно экспортировать в отдельный файл, который в последствии можно распространять.
    Создаём подсветку синтаксиса в Notepad++
    Кстати чекбокс «Любой регистр» почему-то игнорируется и подсветка остаётся регистрозависимой.

Всё! Наконец-то теперь можно распечатать код в цвете:
Создаём подсветку синтаксиса в Notepad++

Единственное неудобство — это выбирать подсветку синтаксиса вручную при каждом открытии файла.

Ссылка на готовый xml для подсветки языка 1С на Github. Для использования у себя нужно сделать импорт через «Пользовательское определение языка» и перезапустить Notepad++.

Автор: msincster

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js