Coder plugin (1)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 176
Joined: Sat Dec 24, 2011 4:05 pm

Post by F. Phoenix »

Как-нибудь можно в синтакс-файле прописать, чтоб двойные кавычки внутри строки расценивались как простой символ? Если, например, хочется, чтоб в C# строки с префиксом @ подсвечивались иначе, чем без оного.

Если прописываю кавычки как эскейп-символ внутри строк, начинающихся и кончающихся ими же, то Акел как-то неадекватно сие воспринимает, а если оставляю пустым, то двойные кавычки интерпретируются как конец одной строки и начало другой, т.е. нужный цвет слетает.

PS: Какую функцию в секции Quotes несут include/exclude я вообще не понял.

Offline
Site Admin
Posts: 6403
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

F. Phoenix
Конкретный пример?

Offline
Posts: 176
Joined: Sat Dec 24, 2011 4:05 pm

Post by F. Phoenix »

В шарпе префикс @ перед строкой отключает обработку \ как эскейп-символа, но символ кавычек в строке можно использовать, набирая его дважды.
Например, команду запуска c:\my_folder\my_program.exe --open-file="d:\my_file.txt" \k можно прописать так:

Code: Select all

var command = @"c:\my_folder\my_program.exe --open-file=""d:\my_file.txt"" \k";
ну и вот, а как в синтакс-файле такое поведение прописать, чтоб воспринимал сие как одну строку, а не 3?

Offline
Site Admin
Posts: 6403
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

F. Phoenix
Сейчас только тремя строками.

Offline
Posts: 36
Joined: Wed Aug 24, 2011 10:01 am

Post by 230116885 »

Может ли плагин так:
Image

Offline
Site Admin
Posts: 6403
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

230116885
Можно использовать вертикальную линию каретки:

Image

Offline
Posts: 2248
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Ух ты! (с)
Раз уж Вы там код правите, то можно сразу же попросить: в AEN_PAINT добавить нотификацию после отрисовки линии? Я хочу в SpellCheck заиспользовать, но мне нужно именно после.

Offline
Site Admin
Posts: 6403
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

FeyFre
Не вижу практического смысла. Приходящее AEN_PAINT с AEPNT_DRAWLINE несет в AENPAINT все необходимые данные. Т.е., когда приходит AEN_PAINT с AEPNT_DRAWLINE, AENPAINT.hDC уже содержит строку, нарисованную редактором, и получатель может нарисовать в AENPAINT.hDC что-либо дополнительно.

Offline
Posts: 2248
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Instructor, пересмотрел - понял, это я стормозил. Переменная bUseBufferDC совсем мешает пониманию(если её FALSE то нотификация вообще не придет. Я так понимаю - буферизированное рисование. И только с ним нотификация придет - не порядок. С другой стороны буферизация в коде не отключается вообще - тогда зачем тот флаг. Потому я и спутал "копирование из буфера на окно" с действительным рисованием.)
Индекс первого символа линии которую перерисовывает тоже несет? А то я что-то в том коде теряюсь. А что на местах индексов в свёрнутой линии?
И да, очень бы не помешало что-бы регион был выставлен на границы линии. Или лучше самому ставить?

Offline
Posts: 767
Joined: Mon Sep 28, 2009 10:03 am
Location: Minsk, Belarus

Post by se7h »

Instructor wrote:230116885
Можно использовать вертикальную линию каретки:

Image
и всё-таки упомянутая
Image
удобней, ведь одновременно видны границы всех скобок кода

Offline
Posts: 3234
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

230116885, se7h
Поддерживаю.
Может кто-то помнит, как быстро включить/выключить вертикальный маркер?

Offline
Posts: 36
Joined: Wed Aug 24, 2011 10:01 am

Post by 230116885 »

Instructor
Это не совсем то. В Notepad++ реализовано. Ещё подкрашивание опциональное удобная штука очень.
Image

Offline
Posts: 366
Joined: Mon Jan 10, 2011 5:28 pm
Contact:

Post by Lenchik »

Coder 10.0 не "переваривает" новую группу параметров bkImage.

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

Code: Select all

QuotesRE:
;=========================================================================================
;Flags  Pattern                        \BackRef=(FontStyle,ColorText,ColorBk) \BackRef=...
;=========================================================================================
;0	`(")([^"\\]*(\\.[^"\\]*)*)(")` `\1=(0,${DEL1},0) \2=(3,${STR},0) \4=(0,${DEL1},0)`
Потенциальные возможности заманчвы - перенос подсветок из систем подсветки на регулярных выражениях.

Offline
Site Admin
Posts: 6403
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Lenchik wrote:Coder 10.0 не "переваривает" новую группу параметров bkImage.
Если указывается файл напрямую в .coder файле, то он должен заключатся в кавычки, т.к. это строка, а не число.

Offline
Site Admin
Posts: 6403
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Изменено: игнорирование стиля шрифта теперь имеет три переключателя (Coder::Settings).
Добавлено: секция "QuotesRE:" в .coder файлы - возможность использовать регулярные выражения для диапазонов (Coder::HighLight).
Добавлено: секция "BkImage:" в .coder файлы и переменные "HighLight_BkImageFile", "HighLight_BkImageAlpha" для указания фоновой картинки, а также значения прозрачности выделения (Coder::HighLight).
Добавлено: найти выделенное слово в заголовке корневого блока (F12). Может быть использовано для поиска определения функции (Coder::CodeFold).

Changed: font style ignoring setting now has three switches (Coder :: Settings).
Added: section "QuotesRE:" in .coder files - ability to use regular expressions for quotes (Coder::HighLight).
Added: section "BkImage:" in .coder files and variables "HighLight_BkImageFile", "HighLight_BkImageAlpha" to specify the background image, and also the selection transparency value (Coder::HighLight).
Added: find selected word in the title of the root block (F12). It can be used to find the function definition (Coder::CodeFold).


Coder plugin v10.0
Locked