Lenchik / Akelpad-syntax-highlighting

Syntax themes for AkelPad text editor with Coder plugin (AutoHotkey, AviSynth, bash, BibTeX, Grub4Dos, KiXtart, LaTeX, Makefile, nnCron, R, Smarty, plain text and many more other syntax highlighting)
32 stars 3 forks source link

ahk.coder: нужно больше цветов #11

Open Drugoy opened 10 years ago

Drugoy commented 10 years ago

; ${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.

Lenchik commented 10 years ago

То есть добавляются ${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 ${CodeFoldListBkColor} 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 ${CodeFoldPanelNormalFoldColor} 0 "[" "]" "" "" "" 1 2 ${CodeFold_PanelActiveFoldColor} 0 "' =" "=" "" "" ""

Drugoy commented 10 years ago

Да, как минимум они добавляются (+ KEY, + возможно ещё какие-то появятся). Ещё из встроенных переменных есть TAG - его наверно для меток (на которые ссылаются GoTo/GoSub) следует использовать.

Я пока не знаю как лучше поступить. Возможные варианты решения этой проблемы:

  1. постараться ограничиться встроенным набором переменных, используя в некоторых случаях переменные не по назначению, как это сделал Sand_dr.
  2. применять цвета не к тексту, а к фону (или и туда и туда, но нужно подобрать читаемые комбо).
  3. использовать статические цвета (задать цвета не переменными, а константами).
  4. завести новых переменных.

На мой взгляд, 4-ый вариант самый правильный, потому что встроенный набор переменных довольно скудный, его надо расширять. Обычно, добавляют или несколько переменных про запас, на случай если остальных не хватает, либо добавляют возможность задать дефолтное значение для этих переменных прям в .coder-файлах: если в пользовательских темах не заданы значения для таких переменных - то используются указанные дефолтные цвета. Но нет ни того, ни другого, и если сейчас просто использовать 4-ый вариант, то пользователю будут лезть не информативные оповещения, что такая-то переменная не задана, что ещё хуже, чем предыдущие 3 варианта, основной минус которых - потенциально не читаемый текст в отдельных случаях.

В связи с этим, я, пожалуй, обращусь к Instructor'у с этой проблемой, может он чего подправит.

Drugoy commented 10 years ago

В новой версии акелпада и .coder-плагина добавлена возможность задавать новые переменные. Теперь надо подобрать цвета и прошерстить список правил, внося коррективы в расцветки суб-групп в правилах.

Lenchik commented 10 years ago

Хорошо бы попросить пример того, как это делается. Может быть как-то согласовать названия новых переменных с другими активными coder-писателями (Infocatcher, например)? Может быть потом просто наиболее часто использующиеся переменные и во встроенные темы введут.

Drugoy commented 10 years ago

Хороший вопрос и хорошее предложение, кинул клич на форуме.

Skif-off commented 10 years ago

Идеально, чтобы к дискуссии подключился и Instructor, зачем согласованные переменные, если пользователю придется добавлять их самому, что для многих может стать нетривиальной задачей? С PluginText.js можно упростить задачу, но все равно... Как насчет нескольких абсолютных цветов, приемлемо выглядящих во всех/в большинстве тем? Для COM-объектов AutoIt я, например, взял #006EFF.