Coder plugin (1)
- Author
- Message
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
У меня открывается AkelPad (я не нажимаю Ок), в сессии с предыдущего сеанса остался 1 js-файл, и вылазят эти сообщения:Instructor wrote:Когда диалог настроек закрывается кнопкой "ОК", то происходит перечитывание всех файлов настроек. Ошибка же говорит о том, что в активной теме подсветки в "Coder::Settings" не определены переменные, которые встречаются в синтаксических файлах.
Может при открытии проги не отображать эти сообщения, а оставить их только на "Ок" в диалоге настройки плагина?"js.coder" содержит неизвестную переменную "${CodeFold_ListTextColor}"
"js.coder" содержит неизвестную переменную "${CodeFold_ListBkColor}"
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Открывается AkelPad, с предыдущего сеанса остался 1 coder-файл, при открытии которого вылетают следующие сообщения:
Добавлено:
Сообщение, наверное, надо изменить с
P.S. И, всё-таки, было бы лучше иметь цветовые схемы отдельными файлами.
Не совсем понятно, что и зачем что-то дополнительно нужно делать пользователю, если он скачал Coder-плагин и все coder-файлы с сайта?"coder.coder" содержит неизвестную переменную "${CodeFold_ListTextColor}"
"coder.coder" содержит неизвестную переменную "${CodeFold_ListBkColor}"
Добавлено:
Сообщение, наверное, надо изменить с
на"js.coder" содержит неизвестную переменную "${CodeFold_ListBkColor}"
иначе рехнуться можно, пытаясь понять, что же не так...В текущей теме Coder-плагина "Имя темы" отсутствует описание переменной "${*}", встречающейся в файле "*.coder"
P.S. И, всё-таки, было бы лучше иметь цветовые схемы отдельными файлами.
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Ещё одна неприятность - блочная подсветка не работает, я подозреваю потому, что не включен фолдинг. Хотелось бы всё-таки, чтобы подсветка не зависела от фолдинга; я, например, фолдинг почти не использую..
Можно в coder-файлы специальной секцией добавить начальный и конечный тэги блочной подсветки, и если фолдинг не включен, расчитывать блоки только для подсветки, а если включен, то для всего сразу.
Можно в coder-файлы специальной секцией добавить начальный и конечный тэги блочной подсветки, и если фолдинг не включен, расчитывать блоки только для подсветки, а если включен, то для всего сразу.
-
Offline
- Posts: 2248
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
Добавлено: синтаксический файл для Lua.
Кое-кто уже второй месяц для Lua делает синтаксис.Так в версии 4.4 уже добавили
Прув-линки:
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
(вечером найду один из последних)
-
Offline
- Posts: 15
- Joined: Thu Nov 29, 2007 2:15 pm
- Location: St. Petersburg
Paulus wrote:я тут делаю подсветку для фортрана.
я так понял что в разделе Folds не поддерживаются краткие if-конструкции, например такая записьCode: Select all
IF (i<0) EXIT
которые пишутся в одну строку и оператор "END IF" не ставится. Что можно сделать?
Если использовать "THEN", то неверно находятся блоки в расширенных конструкциях IF:Instructor wrote:Paulus
Можно началом блока делать "THEN".
Code: Select all
IF condition THEN
stat
ELSE IF condition THEN
stat
ELSE
stat
END IF
-
Offline
- Site Admin
- Posts: 6403
- Joined: Thu Jul 06, 2006 7:20 am
FeyFre
Paulus
Примерно так:
Убрал.Прошу убрать из секции 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" " "
-
Offline
- Posts: 1873
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
А вот в C/C++ надо проверять, вполне может ругаться на такой порядок.Instructor wrote:Добавил.И я настаиваю на «"default" "case"»:
Только нужно помнить, что undefined и NaN – обычные глобальные переменные (и их можно переопределитьjs.coder wrote:Code: Select all
1 0 ${TYPE} 0 undefined 1 0 ${TYPE} 0 NaN

И за что обидели Infinity?
http://javascript.ru/ecma/part15#a-15.1
-
Offline
- Posts: 2248
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
Вы меня не так поняли. Мой код Lua чаще всего такой:Насколько я понял из описания: в блоке "[[", "]]" находится "[=[", "]=]", в блоке "[=[", "]=]" находится "[==[", "]==]" и т.д. Если так, то флаг 512 исключает это, поэтому достаточно одного "[[", "]]".
Code: Select all
--[===[
--
-- Мой копирайт
--
-- Прочая инфа
--
--]===]
Вот ещё вспомнил: в расширения добавить luac и wlua
-
Offline
- Posts: 2248
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
Вот отрыл свой вариант lua.coder, объеденил с вариантом Инструктора - судите.
Основные отличия в секции Words, а также значительно большая секция Blocks. Также немного дополнена секции Folds и Quotes расширенными кавычками и комментариями.
Основные отличия в секции Words, а также значительно большая секция Blocks. Также немного дополнена секции Folds и Quotes расширенными кавычками и комментариями.
-
Offline
- Posts: 19
- Joined: Fri Jan 14, 2011 3:29 am
FeyFre, у end в делителях должна быть и точка с запятой, иначе при встрече
Блок фолдинга съезжает вниз документа.
P.S. lua.coder из комплекта (ага, я его нашёл
) так же игнорирует этот разделитель.
upd С примером. Если блок заканчивается end, то должен быть и ";":
Code: Select all
some (do|then)
end; --> этого ";"
P.S. lua.coder из комплекта (ага, я его нашёл

upd С примером. Если блок заканчивается end, то должен быть и ";":
Code: Select all
1 0 0 0 "оператор" "end" " -();"
-
Offline
- Posts: 19
- Joined: Fri Jan 14, 2011 3:29 am
Не редактирую предыдущий, чтобы разделить посты по смыслу.
Ребята, а есть для подсветки какой-то гайдлайн? Правила раскраски, так казать. Это я к теме про функция это блок, столб или верёвка. :)
Просто я часто перескакиваю на разные языки (обычно между 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. Немного переборщил со смайлами, но раз я на форуме новичок, то хочу показаться дружелюбным.
Ребята, а есть для подсветки какой-то гайдлайн? Правила раскраски, так казать. Это я к теме про функция это блок, столб или верёвка. :)
Просто я часто перескакиваю на разные языки (обычно между 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. Немного переборщил со смайлами, но раз я на форуме новичок, то хочу показаться дружелюбным.
-
Offline
- Posts: 670
- Joined: Thu Jun 03, 2010 8:47 am
- Location: Сочи, Хоста
- Contact:
Зачем в каждом .coder файле вставлены одинаковые комментарии
и тому подобных. или такие:
хотя дальше идёт строка
получается масло масленное
или такие:
как будто не понятно, что 1 = 1
1. Эти комментарии увеличивают размер файла в 3 раза (у меня 44 файла с комментариями они весили 3,2 мегабайт, после чистки 1,1 мег.)
2. Зачем повторять одно и тоже (к примеру ;5=1+4) везде, где встречается 5, достаточно один раз написать
3. Те, кто составляет\изменяет .coder файлы и так все эти правила знают
4. Не проще ли сделать специальный файл справки, где это всё описать и не только на английском, но и на русском... и на других языках
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}
или такие:
Code: Select all
;5=1+4
;1=1
1. Эти комментарии увеличивают размер файла в 3 раза (у меня 44 файла с комментариями они весили 3,2 мегабайт, после чистки 1,1 мег.)
2. Зачем повторять одно и тоже (к примеру ;5=1+4) везде, где встречается 5, достаточно один раз написать
3. Те, кто составляет\изменяет .coder файлы и так все эти правила знают
4. Не проще ли сделать специальный файл справки, где это всё описать и не только на английском, но и на русском... и на других языках