Подсветка синтаксиса 1C (в том числе языка запросов) в Notepad++



Конфигуратор 1С как редактор кода не всегда удовлетворяет потребностям программиста в управлении кода. Я зачастую с завистью вспоминаю другие среды разработки программ, и нередко копировал куски 1С кода в стороннюю программу для каких-либо манипуляций — например, Notepad++. К сожалению, в нём нет встроенной поддержки синтаксиса кода 1С, из-за чего пришлось определять свой. Вот об этом я и расскажу.

А определить свой синтаксис кода в Notepad++ поначалу оказалось не так легко — казалось бы в интуитивно-понятных местах этого сделать было нельзя (Опции—>Настройки—>Синтаксис/Табуляция, ни Опции—>Определение стилей оказалось несколько иным).

Но это можно открыть в главном толбаре, кнопкой Пользовательское определение языка

 Кнопка в меню

Немного помучившись, вбил основные элементы языка в определение стиля и сохранил в файл Экспортир… style-1C.xml, который можете скачать, если лень вручную определять, нажав кнопку Импортир… и выбрав скачанный файл настроек.

 

Но, к сожалению, забыл погуглить на сей счет — такие стили уже были выложены до меня, ссылки на них приведены в комментариях. Однако, некоторые стили 1С меня не устраивают, и шаблончик я всё же оставил на свой вкус.

P.S. Чем хорош Notepad++ по сравнению с конфигуратором 1С:

— Возможность создания собственного списка API функций (или скачать его со страницы загрузки).
— Поддержка регулярных выражений Поиска/Замены и их проверка  (//infostart.ru/public/165085/)
— Полная поддержка перетягивания фрагментов текста.
— Динамическое изменение окон просмотра.
— Автоматическое определение состояния файла (уведомление об изменении или удалении файла другой программой — с возможностью перезагрузить файл или удалить его из программы).
— Увеличение и уменьшение (масштабирование).
— Поддержка большого количества языков.
— Листинг программ можно печатать в цвете — так, как вы видите на экране в окне редактирования.
— Заметки о документе.
— Выделение скобок при редактировании текста.
— Запись макроса и его выполнение.

— Возможность просмотра мини-карты текста (Document Map)

UPD 12.11.2012: Добавлена подсветка языка запросов, подкорректированы правила подсветки.

UPD 11.12.2012: незначительная корректировка правил подсветки.

32 Comments

  1. OLEG4120

    Я делал сам. но так и не зарабатала для UTF-8, только для ASCI. Как у Вас?

    Не смог победить настройку для плагина FunctionList, говорит что правила неопределны

    Reply
  2. Поручик

    (0) Долго мучился?

    Файл разметки 1С для Notepad++ http://infostart.ru/public/64783/

    Подсветка синтаксиса языка запросов 1С в текстовом редакторе Notepad++ http://infostart.ru/public/81978/

    Reply
  3. stepman3

    это конечно хорошо, но кто знает — можно ли сделать блоки для нотепада

    для конструкци типа: процедура-конецпроцедуры, если-иначеесли-конецесли

    ?

    Reply
  4. Поручик

    (3) Можно. На скрине есть. В силу особенностей Notepad++ нормальная расцветка для кириллических символов возможна только для кодировки ANSI.

    Reply
  5. CratosX

    (2) Поручик, да, забыл погуглить. И не мучился, а наслаждался 🙂

    Reply
  6. Kolunya

    ну и зачем так изврасчаться? типа если лень конфигуратор открывать???(((

    Reply
  7. CratosX

    (6) Kolunya, в описании есть раскрываемый список достоинств работы в Notepad++ по сравнению с работой в Конфигураторе.

    Reply
  8. kuntashov

    Тем, кому не хватает возможностей Конфигуратора, стоит познакомиться с возможностями проекта Снегопат (http://snegopat.ru) и существующими для него скриптами (http://infostart.ru/public/104670/)

    Reply
  9. Stamper

    не хочу показаться занудой, НО ЗАЧЕМ?!?!?! =)

    из N++ можно подключиться к сессии для дебага? или можно внести изменения в конфигурацию? или подключиться к хранилищу??

    я кроме crtl+C-ctrl+V другой возможности поучаствовать в процессе разработки не вижу

    Reply
  10. AlX0id

    (7)

    раскрываемый список какой-то нераскрываемый, надобно отметить..

    Reply
  11. Stamper

    (10) AlX0id, я вообще не сразу понял, что это слово «интерактивно» =)

    Reply
  12. Yashazz

    Да, баян для не любящих юзать поиск. Ещё сюда настройку для Far’овского плагина Colorer, и джентльменский набор образца 2003 года почти готов.

    Reply
  13. RomanUzmov

    Автор, конечно, молодец что поработал, но я немного не понимаю, зачем это нужно? Есть конфигуратор для этого…

    Reply
  14. rus128

    «Чем хорош Notepad++ по сравнению с конфигуратором 1С:»

    Так чем же? Кроме слова (не ссылки и не кнопки) «Раскрыть» — не вижу в описании ни слова об этом. Версия статьи глюкнула?

    Сильно сомневаюсь, что внешний редактор может быть полезнее, чем полнофункциональная IDE — с отладчиком, хранилищем, проверкой синтаксиса и т.д. и т.п. А уж если Снегопат подключить — то Notepad++ вообще отдыхает.

    Reply
  15. sergeyshik

    Тоже не нашел никаких плюсов от работы в блокноте++ . У блокнота есть очень большой недостаток: он никак не умеет отлаживать код. В шапке не увидел здравых плюсов для себя. Буду юзать конфигуратор-он как-то роднее и ближе)))

    Reply
  16. quebracho

    Сделайте для gedit))

    Reply
  17. daho

    (15) sergeyshik, Так то оно так… но иногда, если выносить из конфы модули во внешние файлы, на случай если на гарячую что надо переделать, то notepad, штука весьма полезная.. много времени позволит с экономить.. правда это более актуально для 7.7 в связке с 1С++ (с SciColorer) и gcomp и SVN при желании еще и багтреккер типу Mantis прикрутить.. все просто и со вкусом.. а главное надежно и эффективно… хорошие времена были.. но с наступлением 8-ки это уже в прошлом.. 🙁 молодежь этого уже не знает.. 🙂

    жаль что для в 8-ке нормальной системы версирования нету…

    Reply
  18. klel

    Отличная штучка осталось только воспользоваться и только

    Reply
  19. Rustig

    (6), (13) для написания отчетов с вставками алгоритмов. для заказчиков иногда полезно.

    Reply
  20. matytsin_new

    Неверно ставить вопрос — зачем делпть это в Notepad++

    Те, кто не видит потребности — не пользуется.

    Я вот, иногда, сверяю тексты модулей и запросов.

    И Notepad++ очень экономит время. Так что — спасибо.

    Reply
  21. Созинов

    Статья по созданию файла синтаксиса на хабре: http://habrahabr.ru/post/144830/

    Там же можно скачать xml файл для 1С. Задумался не нарушаю ли я правила инфостара давая внешние ссылки? пошел читать

    Reply
  22. yuri@da4nic.ru

    (21) EfiopReal, Идея написать xml для подсветки синтаксиса 1с хорошая, но в процессе реализации вылезают огрехи, из статьи как с ними бороться неясно. Во-первых из двух ссылок на хабре одна битая. Во-вторых скачанный xml не импортируется в нп++ последней (6.2) версии хоть выглядит прилично — но чего-то не хватает в нем. Ну да ладно, главное, самому захотелось согласно рецепту статьи сделать свою подсветку и тут я столкнулся с тем, что если указать комментарий // то тогда перестает работать подсветка оператора деления / и наоборот — включаю подсветку оператора — пропадают комменты. А так шутка хорошая и полезная.

    Reply
  23. CratosX

    (23) yuri@da4nic.ru,

    Во-вторых скачанный xml не импортируется в нп++ последней (6.2) версии хоть выглядит прилично — но чего-то не хватает в нем.

    Возможно, причина в багах, и возможно их исправили вот этим фиксом:

    Notepad++ v6.2.1 fixed bugs:

    <…>

    3. Fix a crash issue due to the inconsistent userDefineLang.xml.

    Кстати, про комментарий — в старых версиях Notepad++ был флаг «символ как слово», при установке которого при указании в качестве двух слешей не затирался одинарный слеш «деления»

    Reply
  24. LexSeIch

    Мир этому дому! А мне реализация идеи понравилась. Иногда под рукой нет 1С или кусок кода хочется сохранить «на память». Тогда эта штука самый то. А если добавить Notepad++ портабельный (на флешке), то вообще класс.

    Reply
  25. нормальный такой

    Блин, импортировал — не работает … пичаль.

    версия 6.2.3

    Reply
  26. нормальный такой

    упс. наврал))

    надо было перезапустить приложение! (а так лень было… много файлов открыто)

    работает. Сасибо 🙂

    Reply
  27. v.l.

    У меня не работает. Версия npp 6.7.8.2, файлы с модулями из 1С 7.7.

    И импортировал и экспортировал, и удалял, и нпп перезапускал, и фотографию свою ему показывал — не работает… все буквы синим, ключевых слов не видит, только комментарии зеленым подсвечивает да знаки препинания красным.

    Reply
  28. CratosX

    (29) Vladal, вот только недавно наткнулся на такую проблему у себя. Мне помогло: удаление настроенного синтаксиса, перезапуск, добавление нового, перезапуск. Видимо на каких-то релизах npp падало.

    Reply
  29. Светлый ум

    После установки синтаксиса (импортирования) — о переоткрыть Notepad

    Reply
  30. Serg O.

    НЕ РАБОТАЕТ !

    Reply
  31. Serg O.

    В принципе уже и не надо… КАЧАЙТЕ ВСЕ OneScript !!!

    http://oscript.io/

    Reply
  32. mcgoblin

    NPP 7.5.8

    Не взлетели ваши стили!!! зря потраченые средства

    Reply

Leave a Comment

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