Page 29 of 101
Posted: Fri Jan 14, 2011 7:07 am
by binariti
Обновил, теперь все нормально.
Posted: Fri Jan 14, 2011 9:03 am
by VladSh
Instructor wrote:Когда диалог настроек закрывается кнопкой "ОК", то происходит перечитывание всех файлов настроек. Ошибка же говорит о том, что в активной теме подсветки в "Coder::Settings" не определены переменные, которые встречаются в синтаксических файлах.
У меня открывается AkelPad (я не нажимаю Ок), в сессии с предыдущего сеанса остался 1 js-файл, и вылазят эти сообщения:
"js.coder" содержит неизвестную переменную "${CodeFold_ListTextColor}"
"js.coder" содержит неизвестную переменную "${CodeFold_ListBkColor}"
Может при открытии проги не отображать эти сообщения, а оставить их только на "Ок" в диалоге настройки плагина?
Posted: Fri Jan 14, 2011 9:13 am
by VladSh
Открывается AkelPad, с предыдущего сеанса остался 1 coder-файл, при открытии которого вылетают следующие сообщения:
"coder.coder" содержит неизвестную переменную "${CodeFold_ListTextColor}"
"coder.coder" содержит неизвестную переменную "${CodeFold_ListBkColor}"
Не совсем понятно, что и зачем что-то дополнительно нужно делать пользователю, если он скачал Coder-плагин и все coder-файлы с сайта?
Добавлено:
Сообщение, наверное, надо изменить с
"js.coder" содержит неизвестную переменную "${CodeFold_ListBkColor}"
на
В текущей теме Coder-плагина "Имя темы" отсутствует описание переменной "${*}", встречающейся в файле "*.coder"
иначе рехнуться можно, пытаясь понять, что же не так...
P.S. И, всё-таки, было бы лучше иметь цветовые схемы отдельными файлами.
Posted: Fri Jan 14, 2011 9:31 am
by VladSh
Ещё одна неприятность - блочная подсветка не работает, я подозреваю потому, что не включен фолдинг. Хотелось бы всё-таки, чтобы подсветка не зависела от фолдинга; я, например, фолдинг почти не использую..
Можно в coder-файлы специальной секцией добавить начальный и конечный тэги блочной подсветки, и если фолдинг не включен, расчитывать блоки только для подсветки, а если включен, то для всего сразу.
Posted: Fri Jan 14, 2011 10:48 am
by FeyFre
Добавлено: синтаксический файл для Lua.
Так в версии 4.4 уже добавили
Кое-кто уже второй месяц для Lua делает синтаксис.
Прув-линки:
viewtopic.php?p=10261#p10261
viewtopic.php?p=10400#p10400
Так что буду критиковать(а вечером, когда найду свой - критиковать в полную силу):
Прошу убрать из секции Words: все lua_ и luaL_ вхождения. Если так нужно их подсветить, то это делать нужно в cpp.coder, ибо это функции из исходников интерпретатора на C/C++, а не функции языка Lua.
Также в секции фолдов добавить ещё
;513=1+512
513 3 ${COMM} 0 "--[[" "]]" ""
513 3 ${COMM} 0 "--[=[" "]=]" ""
513 3 ${COMM} 0 "--[==[" "]==]" ""
513 3 ${COMM} 0 "--[===[" "]===]" ""
;513=1+512
513 3 ${STR} 0 "[[" "]]" ""
513 3 ${STR} 0 "[=[" "]=]" ""
513 3 ${STR} 0 "[==[" "]==]" ""
513 3 ${STR} 0 "[===[" "]===]" ""
В большинстве случаев тройного "=" хватает, но иногда попадается вложенность и поглубже.
Также в разделители к открывающим фолдам if, elseif, function, for, while добавить "("
Также можно посмотреть тут один из моих промежуточных вариантов
http://staynormal.org.ua/akelpad/lua.coder
(вечером найду один из последних)
Posted: Fri Jan 14, 2011 1:26 pm
by Paulus
Paulus wrote:я тут делаю подсветку для фортрана.
я так понял что в разделе Folds не поддерживаются краткие if-конструкции, например такая запись
которые пишутся в одну строку и оператор "END IF" не ставится. Что можно сделать?
Instructor wrote:Paulus
Можно началом блока делать "THEN".
Если использовать "THEN", то неверно находятся блоки в расширенных конструкциях IF:
Code: Select all
IF condition THEN
stat
ELSE IF condition THEN
stat
ELSE
stat
END IF
два THEN на один END IF
Posted: Fri Jan 14, 2011 3:58 pm
by Instructor
FeyFre
Прошу убрать из секции Words: все lua_ и luaL_ вхождения.
Убрал.
Также в секции фолдов добавить ещё...
Насколько я понял из описания: в блоке "[[", "]]" находится "[=[", "]=]", в блоке "[=[", "]=]" находится "[==[", "]==]" и т.д. Если так, то флаг 512 исключает это, поэтому достаточно одного "[[", "]]".
Также в разделители к открывающим фолдам if, elseif, function, for, while добавить "("
Добавил.
Paulus
Примерно так:
Code: Select all
;--IF...ELSE...END IF--
;51=1+2+16+32
51 0 0 0 "THEN" "END IF" " "
;435=1+2+16+32+128+256
435 0 0 0 "THEN" "ELSE IF" " "
;435=1+2+16+32+128+256
435 0 0 0 "THEN" "ELSE" " "
;2121=1+8+64+2048
2121 0 0 0 "ELSE IF" "THEN" " "
;41=1+8+32
41 0 0 0 "ELSE IF" "END IF" " "
;425=1+8+32+128+256
425 0 0 0 "ELSE IF" "ELSE IF" " "
;425=1+8+32+128+256
425 0 0 0 "ELSE IF" "ELSE" " "
;41=1+8+32
41 0 0 0 "ELSE" "END IF" " "
Posted: Fri Jan 14, 2011 5:10 pm
by Infocatcher
Instructor wrote:И я настаиваю на «"default" "case"»:
Добавил.
А вот в C/C++ надо проверять, вполне может ругаться на такой порядок.
js.coder wrote:Code: Select all
1 0 ${TYPE} 0 undefined
1 0 ${TYPE} 0 NaN
Только нужно помнить, что undefined и NaN – обычные глобальные переменные (и их можно переопределить

).
И за что обидели Infinity?
http://javascript.ru/ecma/part15#a-15.1
Posted: Fri Jan 14, 2011 5:49 pm
by FeyFre
Насколько я понял из описания: в блоке "[[", "]]" находится "[=[", "]=]", в блоке "[=[", "]=]" находится "[==[", "]==]" и т.д. Если так, то флаг 512 исключает это, поэтому достаточно одного "[[", "]]".
Вы меня не так поняли. Мой код Lua чаще всего такой:
Code: Select all
--[===[
--
-- Мой копирайт
--
-- Прочая инфа
--
--]===]
--[===[ ]===] - Блок комментария точно такой же как и --[[]] (знаков = может быть сколько угодно, главное одинаковое количество в обоих концах), это используется для решения проблемы вложенности. Вот и я прошу что-бы они тоже выделялись как и --[[]]
Вот ещё вспомнил: в расширения добавить luac и wlua
Posted: Fri Jan 14, 2011 8:01 pm
by DV
В файле
cpp.coder остро не хватает строки
5 3 ${STR} 0 "'" "'" "\" "" ""
в секции
Quotes.
В файле
pascal.coder не хватает строк
2 0 0 0 "class" "end" " ;.}"
2 0 0 0 "record" "end" " ;.}"
в секции
Folds.
Posted: Fri Jan 14, 2011 10:49 pm
by FeyFre
Вот отрыл свой вариант
lua.coder, объеденил с вариантом Инструктора - судите.
Основные отличия в секции Words, а также значительно большая секция Blocks. Также немного дополнена секции Folds и Quotes расширенными кавычками и комментариями.
Posted: Sat Jan 15, 2011 12:48 am
by lexa
FeyFre, у end в делителях должна быть и точка с запятой, иначе при встрече
Блок фолдинга съезжает вниз документа.
P.S. lua.coder из комплекта (ага, я его нашёл

) так же игнорирует этот разделитель.
upd С примером. Если блок заканчивается end, то должен быть и ";":
Posted: Sat Jan 15, 2011 1:41 am
by lexa
Не редактирую предыдущий, чтобы разделить посты по смыслу.
Ребята, а есть для подсветки какой-то гайдлайн? Правила раскраски, так казать. Это я к теме про функция это блок, столб или верёвка. :)
Просто я часто перескакиваю на разные языки (обычно между PHP, JavaScript, Lua, C#, иногда Python (веб теперь тоже зоопарк) и теперь копаюсь в Си, но забавы ради) и, думаю, не я один. И единство стиля сказалось бы супер-дупер положительно. :)
Например, самое очевидное подсветка слов (для скриптовых языков) вроде: as, in, and, or, not. Это ключевые слова, но и операторы блока. Как return, break, continue его манипуляторы.
Так же class, function, def, while, if, for, foreach - сами блоки. Я определяю блоки так: если их можно сунуть в фигурные скобки это либо утка, либо блок. :)
Блоки и их приспешников красить в ${IF}.
local, var, private, public, protected это тоже ключевые слова. Но в контексте языков ещё и типы указывающие зону видимости переменной/метода. Если тип значит, спорно, конечно, но ${TYPE}. :) Для PHP есть ещё static (переменные и методы) и global (переменные).
Средствами ${OP} (от изначального operator, да, но кто помнит? :)) красить иные ключевые слова вроде стандартных функций/модулей/методов. То есть дать ${OP} низкий приоритет при раскраске.
P.S. Это чисто идея, конечно. Но с пользовательской стороны (в частности, моей :)) это кажется благоразумным.
В основном из-за того, что глаз "намыливается" на какие-то "зацепки". Например, те же блоки/не блоки. Если где-то in выделен ${IF}, а в другой подсветке как ${OP}, то глаз его не сразу найдёт. Хотя сердце поможет, да. :)
P.P.S. Немного переборщил со смайлами, но раз я на форуме новичок, то хочу показаться дружелюбным.
Posted: Sat Jan 15, 2011 2:01 am
by Althathwe
А для httpd.conf есть подсветка?
Posted: Sat Jan 15, 2011 8:36 am
by Andrey_A_A
Зачем в каждом .coder файле вставлены одинаковые комментарии
Code: Select all
;Flags (sum of the members)
; 1 case sensitive.
; 2 word is a composition of characters ("Words:" section only). Example: "0123456789" - highlight words that contain only digits.
; 4 quote end required ("Quotes:" section only).
...
и тому подобных. или такие:
Code: Select all
;=================================================================
;FontStyle FontSize FaceName
;=================================================================
хотя дальше идёт строка
Code: Select all
${HighLight_FontStyle} ${HighLight_FontSize} ${HighLight_FaceName}
получается масло масленное
или такие:
как будто не понятно, что 1 = 1
1. Эти комментарии увеличивают размер файла в 3 раза (у меня 44 файла с комментариями они весили 3,2 мегабайт, после чистки 1,1 мег.)
2. Зачем повторять одно и тоже (к примеру ;5=1+4) везде, где встречается 5, достаточно один раз написать
3. Те, кто составляет\изменяет .coder файлы и так все эти правила знают
4. Не проще ли сделать специальный файл справки, где это всё описать и не только на английском, но и на русском... и на других языках