Тут есть некоторое противоречие шаблонов, которое в некоторых случаях может привести к неожиданной реакции...
Вот эти части:
(?<=\W)
(?=\W)
c этими:
[^\s\/\n\r]+
[^\s\*\n\r]+
- могут пересекаться.
Да и выделение всё таки, имхо, должно быть отделено от остального текста пробельным символом, а в данном случае будет срабатывать и на таком тексте:
*asdf*=/dfgh/
Lenchik wrote:
И применение в txt.coder в несколько изменённом виде:
Да, действительно, перечисление подсвечиваемого набора символов поможет исключить вышеописанное пересечение.
Не знаю как латиница плюс всякие умляуты, но кириллицу можно так перечислить:
[а-яёА-ЯЁ]
и про цифры надо не забыть...
А зачем, кстати, перечислять всё... можно же, как-то так сделать:
Перечисление всех букв в этом txt.coder сделано ради сохранения цвета подсветки.
Ради этого же была сделана запись всех букв в секции Delimiters. Таким образом можно видеть какие именно буквы в словах были записаны на ином языке из-за их визуальной схожести.
Поэтому
стоят последними, как то, что сработает в последнюю очередь (fallback).
Раз там может быть опасное пересечение диапазонов, то эта запись с [^\s\*\n\r]+ может быть выгодней, но тогда (?<=\W), похоже придётся заменить на перечисление какое-то или на иную более сложную конструкцию.
Posted: Sat Sep 06, 2014 2:23 pm
by YuS
Lenchik wrote:Перечисление всех букв в этом txt.coder сделано ради сохранения цвета подсветки.
А, вот теперь понятнее...
Но, всё же, такое перечисление неэстетично смотрится. Лучше так:
- диапазон с умляутами, наверное, надо будет проверить, но такая запись более приемлемая.
Lenchik wrote:
Раз там может быть опасное пересечение диапазонов, то эта запись с [^\s\*\n\r]+ может быть выгодней, но тогда (?<=\W), похоже придётся заменить на перечисление какое-то или на иную более сложную конструкцию.
Ну, собственно, \W - это то, что прописано в настройках редактора (Параметры->Редактор 2->Разделители слов)
Но думаю, что в данном случае, всё же, лучше перечислить то, что надо захватывать, шаблон [^\s\*\n\r]+ - слишком широкого действия...
Posted: Sat Sep 06, 2014 7:19 pm
by Skif_off
Может быть, умляуты можно сразу шестнадцатеричным кодом?
Posted: Sat Sep 06, 2014 8:40 pm
by Lenchik
YuS wrote:диапазон с умляутами, наверное, надо будет проверить, но такая запись более приемлемая.
Проверил. В итоге — обширные обновления файла подсветки.
Вот для case insensitive латиницы (кроме Latin Extended-D и Latin Extended-E разделов Unicode)
Выяснилось, что то ли винда, то ли акельпад не все small letter умеет понимать/преобразовывать в Capital letter.
Для символов кириллицы case insensitive (у них тоже не все связки строчных и заглавных букв понимаются в акельпаде):
;--Cyrillic letters--
;это правило почему-то не хочет работать
2 0 ${CodeFold_ListTextColor} 0 "ѐЀђѓєѕіїјљњћќѝЍўџѡѣѥѧѩѫѭѯѱѳѵѷѹѻѽѿҁҋҍҏґғҕҗҙқҝҟҡңҥҧҩҫҭүұҳҵҷҹһҽҿӂӄӆӈӊӌӎӏӑӓӕӗәӛӝӟӡӣӥӧөӫӭӯӱӳӵӷӹӻӽӿ҂҈҉ҊҌҎӀӅӉӍӬӶӺӼӾԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԐԑԒԓԔԕԖԗԘԙԚԛԜԝԞԟԠԡԢԣԤԥԦԧԨԩԪԫԬԭԮԯⷠⷡⷢⷣⷤⷥⷦⷧⷨⷩⷪⷫⷬⷭⷮⷯⷰⷱⷲⷳⷴⷵⷶⷷⷸⷹⷺⷻⷼⷽⷾⷿꙀꙁꙂꙃꙄꙅꙆꙇꙈꙉꙊꙋꙌꙍꙎꙏꙐꙑꙒꙓꙔꙕꙖꙗꙘꙙꙚꙛꙜꙝꙞꙟꙠꙡꙢꙣꙤꙥꙦꙧꙨꙩꙪꙫꙬꙭꙮ꙯꙰꙱꙲꙳ꙴꙵꙶꙷꙸꙹꙺꙻ꙼꙽꙾ꙿꚀꚁꚂꚃꚄꚅꚆꚇꚈꚉꚊꚋꚌꚍꚎꚏꚐꚑꚒꚓꚔꚕꚖꚗꚘꚙꚚꚛꚜꚝꚟ"
Lenchik
В текущей реализации длина слова не может превышать 260 символов.
Но работает и более длинное, с другими символами:...
Проверил - не работает.
Posted: Tue Sep 09, 2014 12:58 pm
by Cuprum
У меня что-то возникли проблемы с показом .ahk-файлов. Пробовал подключать 2 варианта: раз, два.
В обоих случаях при открытии совсем небольшого файла в 1Кб прорисовка подсветки тормозит, это заметно на глаз. Было ли такое на предыдущих версиях - не знаю, понадобилось поработать с ahk сейчас.
редактор - 4.9.0. x86, Ось - Win 7 64.
Только сейчас обратил внимание - окошко Autocomplete до сих пор не настраивается по цветам и параметрам шрифта (можно было бы в дополнение к значкам + и * иметь возможности адавать в цветовой теме и другие оформления фонов, жирность/курсив, возможность включить зебру). Уж не знаю, скрипт ли кто придумает, или плагин будет доработан, но, как мне кажется, на "ночных" темах яркое белое окошко автодополнения не комильфо.