yozhik

|
Posted: Sat Sep 27, 2025 03:36 Post subject: |
|
|
Orion9
Пардон, я тут чуть запропал.
Orion9 wrote: | Хотелось бы, чтобы ключ "cmdxx=" (именно только этот ключ до знака =) выделялся отдельным фоном |
Вообще-то блок кнопки начинается с ключа buttonxx, и если подсвечивать, то логичней его. Ключ cmdxx по отношению к нему на втором месте. Тем более, что в кнопках попадаются разделители, в которых всего лишь два ключа: buttonxx и iconicxx, а cmd отсутствует.
Orion9 wrote: | Когда открываешь бар-фай в редакторе, первым делом пытаешь различить номера ключей |
Я их по узлам слева различаю и в панели CodeFold они чётко видны списком — мне достаточно. Вот как это выглядит:
И поскольку глазу есть «за что ухватиться», я стараюсь цветом не пестрить. Вместе с тем
Orion9 wrote: | Ключи с cm_командами сливаются с самими командами |
у Вас, насколько я знаю, отключены Bold/Italic, а в исходном варианте они вносят достаточно отчётливости, на скрине видно.
Вообще, при создании подсветки (в AP), условия каковы? 1) — пользоваться лучше встроенными переменными (OP, TYPE, AREA и т.д.), а не указывать цвет напрямую, чтобы работало одинаково корректно во всех темах, как светлых, так и тёмных. А переменных этих немного — 12, из которых 3 (STR, COMM, DEL2) выпадают из палитры доступного. Потому и вводится стиль шрифта, как дополнительный отличитель. А ещё — 2) — bar.coder не только для bar, но и для usercmd.ini — у них синтаксис одинаковый, а имена ключей различаются. И надо так подсвечивать одни, чтобы не задевать другие.
В общем, я сделал, как Вы писали (постоянная подсветка фона начала кнопок), но код мне самому кажется громоздким (может и напрасно). Хотя на быстродействие подсветки это не влияет. Посмотрите здесь, пожалуйста (жёлтым я выделил строки, которые отвечают за подсветку фона):
https://github.com/yozhic/AkelPad-coders/blob/test/gh_preview_only/bar.utf8.coder#L64-L72
Это branch, и если Вам понравится, то я перенесу эти строки в основную ветку. Но оставлять их активными пока не хочется, т.к. если Bold/Italic не отключать и CodeFold держать открытым, то яркости достаточно. Думаю, закомментирую их с объяснением, и кто захочет, раскомментирует и будет пользоваться. (Этот файл, который по ссылке откроется, в «нерабочей» кодировке (UTF-8 ), поэтому содержимое лучше копипастой переносить к себе в bar.coder.)
Собственно, поэтому также и подсветку TC-шных команд cm_ и em_ не хочется менять, что она рассчитана на доп. выделение стилем шрифта. Может быть так попробуем: Вы бы пока в этих двух строках (два комментария не в счёт)
https://github.com/yozhic/AkelPad-coders/blob/test/gh_preview_only/bar.utf8.coder#L84-L87
раскрасили бы себе фон, например как-нибудь так (вместо последнего 0 перед закр. скобкой):
Code: | ;--TC internal commands--
0 `(?<=\W)cm_[a-z0-9]++` `\0=(4,${OP},#FFF2E6)`
;--TC extended commands--
0 `(?<=\W)em_[a-z0-9_]++` `\0=(3,${TYPE},#FFF2E6)` |
Если в целом нормуль, то может добавим так же закомментированным вариантом.
Теперь aucfg. В этом примере:
Code: | aSnap = aFiles.Clone()
aSnap.SaveToFile(TEMP & "\tc_dir_snap.lst") |
меня не смущает, что второе aSnap подсвечивается, а первое — нет. Ведь первый aSnap ещё не стал объектом, он только назначается, а второй уже стал, вот он и засветился (и это уже не просто aSnap, а объект). И опять же, при включенных Bold/Italic элементы не сливаются (а я ещё вдобавок сейчас и точку между объектом и методом выделил, чуть более внятно стало). Но я понимаю, Вам Bold/Italic вообще не «зашли». Но тут что-либо менять сложнее, чем в bar. Aucfg — подсветка более комплексная, и поэтому я пока не придумал, как сделать аккуратно, чтобы можно было закомментировать и использовать по желанию либо один вариант, либо другой. Ведь не хочется делать второй вариант отдельным файлом. _________________ Amo ergo sum |
|