Akelpad-syntax-highlighting
Akelpad-syntax-highlighting copied to clipboard
ahk.coder: нужно больше цветов
; ${NUM} - numbers. ; ${OP} - commands. ; ${IF} - conditions. ; ${VAR} - target variables (writable). ; ${ROVAR} - read only variables. ; ${DEL1} - () ; ${DEL2} - delimiters. ; ${AREA} - #Directives. ; ${STR} - text strings. ; ${KEY} - keys/buttons. ; ${TYPE} - type-related stuff. ; ${COMM} - comments. ; ${EXP} - expressions. ; ${WIN} - WinTitle.
То есть добавляются ${ROVAR} - read only variables. ${EXP} - expressions. ${WIN} - WinTitle. так?
А если сделать так, как сделал San_dr в модификации txt.coder:
Quotes:
;=====================================
;Flags Font Color Color Quote Quote Escape Quote Quote
; style text bkgrnd start end char include exclude
;=====================================
1 2 #666699 0 "
"
"" "" ""
;513=1+512
5 1 ${HighLight_LineTextColor} 0 "
"
"" "" ""
5 1 ${TAG} 0 “
”
"" "" ""
5 1 ${HighLight_ColumnColor} 0 «
»
"" "" ""
513 1 ${HighLight_CaretColor} 0 ">" "" "" "" ""
513 1 ${CodeFold_ListBkColor} 0 ">" "" "" "" ""
;517=1+4+512
517 2 ${COMM} 0 "[+" "]" "" "" ""
517 2 ${COMM} 0 "[±" "]" "" "" ""
517 2 ${COMM} 0 "[" "]" "" "" ""
517 2 {OP} 0 "[~" "]" "" "" ""
517 2 ${AREA} 0 "[" "]" "" "" ""
517 2 ${CodeFold_PanelNormalFoldColor} 0 "[" "]" "" "" ""
1 2 ${CodeFold_PanelActiveFoldColor} 0 "' =" "=" "" "" ""
Да, как минимум они добавляются (+ KEY, + возможно ещё какие-то появятся). Ещё из встроенных переменных есть TAG - его наверно для меток (на которые ссылаются GoTo/GoSub) следует использовать.
Я пока не знаю как лучше поступить. Возможные варианты решения этой проблемы:
- постараться ограничиться встроенным набором переменных, используя в некоторых случаях переменные не по назначению, как это сделал Sand_dr.
- применять цвета не к тексту, а к фону (или и туда и туда, но нужно подобрать читаемые комбо).
- использовать статические цвета (задать цвета не переменными, а константами).
- завести новых переменных.
На мой взгляд, 4-ый вариант самый правильный, потому что встроенный набор переменных довольно скудный, его надо расширять. Обычно, добавляют или несколько переменных про запас, на случай если остальных не хватает, либо добавляют возможность задать дефолтное значение для этих переменных прям в .coder-файлах: если в пользовательских темах не заданы значения для таких переменных - то используются указанные дефолтные цвета. Но нет ни того, ни другого, и если сейчас просто использовать 4-ый вариант, то пользователю будут лезть не информативные оповещения, что такая-то переменная не задана, что ещё хуже, чем предыдущие 3 варианта, основной минус которых - потенциально не читаемый текст в отдельных случаях.
В связи с этим, я, пожалуй, обращусь к Instructor'у с этой проблемой, может он чего подправит.
В новой версии акелпада и .coder-плагина добавлена возможность задавать новые переменные. Теперь надо подобрать цвета и прошерстить список правил, внося коррективы в расцветки суб-групп в правилах.
Хорошо бы попросить пример того, как это делается. Может быть как-то согласовать названия новых переменных с другими активными coder-писателями (Infocatcher, например)? Может быть потом просто наиболее часто использующиеся переменные и во встроенные темы введут.
Хороший вопрос и хорошее предложение, кинул клич на форуме.
Идеально, чтобы к дискуссии подключился и Instructor, зачем согласованные переменные, если пользователю придется добавлять их самому, что для многих может стать нетривиальной задачей? С PluginText.js можно упростить задачу, но все равно... Как насчет нескольких абсолютных цветов, приемлемо выглядящих во всех/в большинстве тем? Для COM-объектов AutoIt я, например, взял #006EFF.