Coder plugin (2)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

Lenchik
А меня больше печалит, что у этого окошечка фиксированная ширина...

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Cuprum
Image

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

Instructor
Вот те раз! Спасибо!

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

У нас .java файлы осблуживаются cpp.coder? Нету ни у кого желания разделить?
Ключевых слов немного не хватает: package, import, extends, implements, final, super
Также возможно выделять так называемые @аннотации. Синтаксис приблизительно такой

Code: Select all

@<идентификатор>[([<идентификатор> =]<значение>,....])]
Примеры

Code: Select all

@Override
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class) 
@RequestMapping(value = "/", method = RequestMethod.GET) 

Offline
Posts: 582
Joined: Mon Apr 08, 2013 9:50 pm
Location: Win7SP1x64, APx64

Post by Drugmix »

У меня жалобы на Coder::Highlight и конкретно на команду Mark, которая выделяет каким-то фоном выбранный текст и все вхождения этого текста внутри всего файла.

1. Есть только 5 различных меток. А вдруг мне нужно больше?
2. Цветов мало и используемые цвета - не настраиваются. Цвета подобраны так, что при белом тексте внутри них - текст внутри маркировки перестаёт быть читаемым.
3. Маркировкам следовало бы добавить настройку (а я бы не отказался, если б она была бы сразу и включена по умолчанию), которая бы рисовала 1-пиксельные границы в конце и начале маркировки, иначе если в тексте маркируемая строка многократно повторяется вплотную друг к другу - то тяжело определить сколько же там повторений.
На этом скриншоте тяжело визуально определить сколько каких меток в строке и где они начинаются и где заканчиваются (чтобы я мог скопировать нужное мне количество и вставить в другое место).
Image
4. При обновлении кэша плагина coder (а это нужно для проверки работы *.coder-файлов на лету) стираются все маркировки в тексте.
5. Хотелось бы иметь функцию записи маркировок куда-то в свойства файла, чтобы передав файл на другой компьютер и открыв его чужим акелпадом - в нём бы подсветилось всё так же, как оно было подсвечено на изначальном компьютере (желательно иметь возможность передавать и пометки строк таким же образом).
6. А ещё имеется баг, видимо из-за конфликта с xBrackets:
Image
На этом скриншоте используется маркировка текста. Каретка выставлена почти в начале строки, рядом с двойной кавычкой, от чего та подсвечивается xBrackets плагином.
Ближе к середине строки видно, что закрывающая кавычка (которая является парной к той, рядом с которой стоит каретка) - тоже почему-то стала подсвечиваться как маркированная (жёлтым фоном), хотя и не подпадает под маркировку. Этот баг у меня воспроизводится часто, но не всегда.

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Drugmix wrote:У меня жалобы на Coder::Highlight и конкретно на команду Mark, которая выделяет каким-то фоном выбранный текст и все вхождения этого текста внутри всего файла.

1. Есть только 5 различных меток. А вдруг мне нужно больше?
2. Цветов мало и используемые цвета - не настраиваются. Цвета подобраны так, что при белом тексте внутри них - текст внутри маркировки перестаёт быть читаемым.
Открываете Coder-Rus.txt, читаете, потом делаете сколько и как хотите, у меня, например, 7 штук (иконки сверх дефолтных 5ти рисовал сам).

Offline
Posts: 582
Joined: Mon Apr 08, 2013 9:50 pm
Location: Win7SP1x64, APx64

Post by Drugmix »

Skif_off
Спасибо, не знал. И не догадался туда глянуть.
Но лучше бы иметь гуёвую настройка, а с иконками не чудить, а цвет им пририсовывать из выбранного цвета маркера (если лень заморачиваться, то вместо иконки просто рисовать квадрат этого цвета, а если хорошо заморочиться, то можно сделать и иконку чёрно-белую с прозрачностью, и по шаблону пририсовывать поверх цвет).

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Drugmix
Попросите :) Я попросил, а получилось куда больше, чем рассчитывал.

Добавлено:
Собственно, гоню, кажется :) TextMarker.js - это не то, что нужно?

Offline
Posts: 582
Joined: Mon Apr 08, 2013 9:50 pm
Location: Win7SP1x64, APx64

Post by Drugmix »

Skif_off
В принципе - то, что нужно, спасибо (и спасибо KDJ) :)

Offline
Posts: 582
Joined: Mon Apr 08, 2013 9:50 pm
Location: Win7SP1x64, APx64

Post by Drugmix »

Добавьте, пожалуйста? в coder.coder:
1. в Quotes:

Code: Select all

1	3	${COMM}	0	" ;"	""	""	""	""
1	3	${COMM}	0	"	;"	""	""	""	""
потому что в этом файле поддерживаются и комментарии в конце строки с кодом, а не только комментарии на пустой строке.
2. в QuotesRE:

Code: Select all

; Highlight rules for QuotesRE: section.
0	'^(\d++)\s++(")(.*)(")\s++(")(.*)(")'	'\1=(0,${NUM},0) \2=(0,${VAR},0) \3=(0,${OP},0) \4=(0,${VAR},0) \5=(0,${VAR},0) \6=(0,${ATTR},0) \7=(0,${VAR},0)'
0	'^(\d++)\s++(")(.*)(")\s++(`)(.*)(`)'	`\1=(0,${NUM},0) \2=(0,${VAR},0) \3=(0,${OP},0) \4=(0,${VAR},0) \5=(0,${VAR},0) \6=(0,${ATTR},0) \7=(0,${VAR},0)`
0	'^(\d++)\s++(`)(.*)(`)\s++(")(.*)(")'	"\1=(0,${NUM},0) \2=(0,${VAR},0) \3=(0,${OP},0) \4=(0,${VAR},0) \5=(0,${VAR},0) \6=(0,${ATTR},0) \7=(0,${VAR},0)"
0	`^(\d++)\s++(')(.*)(')\s++(')(.*)(')`	`\1=(0,${NUM},0) \2=(0,${VAR},0) \3=(0,${OP},0) \4=(0,${VAR},0) \5=(0,${VAR},0) \6=(0,${ATTR},0) \7=(0,${VAR},0)`
0	`^(\d++)\s++(')(.*)(')\s++(")(.*)(")`	'\1=(0,${NUM},0) \2=(0,${VAR},0) \3=(0,${OP},0) \4=(0,${VAR},0) \5=(0,${VAR},0) \6=(0,${ATTR},0) \7=(0,${VAR},0)'
0	`^(\d++)\s++(")(.*)(")\s++(')(.*)(')`	"\1=(0,${NUM},0) \2=(0,${VAR},0) \3=(0,${OP},0) \4=(0,${VAR},0) \5=(0,${VAR},0) \6=(0,${ATTR},0) \7=(0,${VAR},0)"
0	"^(\d++)\s++(`)(.*)(`)\s++(`)(.*)(`)"	'\1=(0,${NUM},0) \2=(0,${VAR},0) \3=(0,${OP},0) \4=(0,${VAR},0) \5=(0,${VAR},0) \6=(0,${ATTR},0) \7=(0,${VAR},0)'
0	"^(\d++)\s++(`)(.*)(`)\s++(')(.*)(')"	`\1=(0,${NUM},0) \2=(0,${VAR},0) \3=(0,${OP},0) \4=(0,${VAR},0) \5=(0,${VAR},0) \6=(0,${ATTR},0) \7=(0,${VAR},0)`
0	"^(\d++)\s++(')(.*)(')\s++(`)(.*)(`)"	"\1=(0,${NUM},0) \2=(0,${VAR},0) \3=(0,${OP},0) \4=(0,${VAR},0) \5=(0,${VAR},0) \6=(0,${ATTR},0) \7=(0,${VAR},0)"
потому что QuotesRE: правила могут быть длинными и т.к. и их обрамляющие теги, и их содержимое состоят в основном из символов, то имя одинаковый цвет они сливаются и можно запутаться, где что.
(на примере окраски этих же самых правил):
Image



И не знаю баг ли это (или просто ограничение работы regex парсера) и нужно ли его править (пока особой необходимости в этом не вижу), но правило

Code: Select all

0	'^(\d++)\s++(")(.*)(")\s++(")\s*+(?:\\\d++=\((.*?),(.*?),(.*?)\)\s*+)+(")'	'\1=(0,${NUM},#ff0000) \2=(0,${VAR},#00ff00) \3=(0,${OP},#0000ff) \4=(0,${VAR},#ff0000) \5=(0,${VAR},#00ff00) \6=(0,${DEL1},#0000ff) \7=(0,${ATTR},#ff0000) \8=(0,${DEL2},#00ff00) \9=(0,${VAR},#0000ff)'
окрашивает строку
0 "^(\d++)\s++(')(.*)(')\s++(`)(.*)(`)" "\1=(0,${NUM},0) \2=(0,${VAR},0) \3=(0,${OP},0) \4=(0,${VAR},0) \5=(0,${VAR},0) \6=(0,${ATTR},0) \7=(0,${VAR},0)"
вот так:
Image
Из скриншота видно, что правило срабатывает на этой строке, но все, кроме последней суб-группы в правой части правила - не окрашиваются.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Drugmix wrote:...потому что в этом файле поддерживаются и комментарии в конце строки с кодом...
Поддерживаются, но не приветствуются.
Drugmix wrote:Из скриншота видно, что правило срабатывает на этой строке, но все, кроме последней суб-группы в правой части правила - не окрашиваются.
Вам уже отвечали на этот вопрос.

Offline
Posts: 582
Joined: Mon Apr 08, 2013 9:50 pm
Location: Win7SP1x64, APx64

Post by Drugmix »

Instructor wrote:Вам уже отвечали на этот вопрос.
Там была другая ситуация: там просто одна из суб-групп (внутри более общей суб-группы) становилась очень жадной.

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

Если объяснять просто, то: раньше дело было в жадности, а теперь в работе парсера, который странновато обрабатывает мета-суб-группы (т.е. суб-группы, содержащие несколько суб-групп).

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Изменено: дополнение слова из документа или из базы HighLight'а не сбрасывает текущий горячий переход.
Изменено: порядок слов из базы HighLight'а теперь не меняется.
Добавлено: секция "CompleteList:" и переменные:
  • AutoComplete_ListFontStyle - стиль шрифта.
  • AutoComplete_ListFontSize - размер шрифта.
  • AutoComplete_ListFaceName - имя шрифта.
  • AutoComplete_ListLineGap - зазор между строк.
  • AutoComplete_ListBlockIcon - иконка для блоков. Такой же синтаксис как и у метода Icon плагинов ContextMenu, ToolBar (например: "%a\AkelFiles\Plugs\SpecialChar.dll", 0). Если пусто, не используется.
  • AutoComplete_ListBlockIconMargins - поля иконки для блоков в формате "слева;справа".
  • AutoComplete_ListHlBaseIcon - иконка для слов из базы HighLight'а. Такой же синтаксис как и у метода Icon плагинов ContextMenu, ToolBar (например: "%a\AkelFiles\Plugs\SpecialChar.dll", 0). Если пусто, не используется.
  • AutoComplete_ListHlBaseIconMargins - поля иконки для слов из базы HighLight'а в формате "слева;справа".
  • AutoComplete_ListDocWordIcon - иконка для слов из документа. Такой же синтаксис как и у метода Icon плагинов ContextMenu, ToolBar (например: "%a\AkelFiles\Plugs\SpecialChar.dll", 0). Если пусто, не используется.
  • AutoComplete_ListDocWordIconMargins - поля иконки для слов из документа в формате "слева;справа".
  • AutoComplete_ListBasicTextColor - основной цвет текста.
  • AutoComplete_ListBasicBkColor - основной цвет фона.
  • AutoComplete_ListSelTextColor - цвет текста выделения.
  • AutoComplete_ListSelBkColor - цвет текста фона.
Добавлено: опция для использования цвета для пункта из базы HighLight'а.
Добавлено: опция для использования системных цветов в списке.
Добавлено: опция для убирания символьной отметки (+*), если используется иконка в списке.
Добавлено: возможность добавления глобальной переменной из не глобальной темы.

Changed: document word and HighLight base word complete don't reset current hotspot.
Changed: words order from HighLight base now not changed.
Added: section "CompleteList:" and variables:
  • AutoComplete_ListFontStyle - font style.
  • AutoComplete_ListFontSize - font size.
  • AutoComplete_ListFaceName - font face.
  • AutoComplete_ListLineGap - gap between lines.
  • AutoComplete_ListBlockIcon - icon for blocks. Same syntax as Icon method of ContextMenu, ToolBar plugins (for example: "%a\AkelFiles\Plugs\SpecialChar.dll", 0). If empty, not used.
  • AutoComplete_ListBlockIconMargins - icon margins for blocks in format "left;right".
  • AutoComplete_ListHlBaseIcon - icon for HighLight base words. Same syntax as Icon method of ContextMenu, ToolBar plugins (for example: "%a\AkelFiles\Plugs\SpecialChar.dll", 0). If empty, not used.
  • AutoComplete_ListHlBaseIconMargins - icon margins for HighLight base words in format "left;right".
  • AutoComplete_ListDocWordIcon - icon for document words. Same syntax as Icon method of ContextMenu, ToolBar plugins (for example: "%a\AkelFiles\Plugs\SpecialChar.dll", 0). If empty, not used.
  • AutoComplete_ListDocWordIconMargins - icon margins for document words in format "left;right".
  • AutoComplete_ListBasicTextColor - basic text color.
  • AutoComplete_ListBasicBkColor - basic background color.
  • AutoComplete_ListSelTextColor - selection text color.
  • AutoComplete_ListSelBkColor - selection background color.
Added: option to use item colors from HighLight base.
Added: option to use system colors in list.
Added: option to hide symbol mark if icon used in list.
Added: possibility to add global variable from non-global theme.


Image


Coder plugin v14.1

Offline
Posts: 366
Joined: Mon Jan 10, 2011 5:28 pm
Contact:

Post by Lenchik »

Instructor wrote: Изменено: порядок слов из базы HighLight'а теперь не меняется.
Непонятно :( Можно на примере, как было раньше и как стало теперь?
Instructor wrote: Добавлено: секция "CompleteList:" и переменные:
Спасибо.
Instructor wrote: Добавлено: возможность добавления глобальной переменной из не глобальной темы.
Непонятно :( Как этим воспользоваться?

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Instructor, спасибо, мощно вы :)
Lenchik wrote:
Instructor wrote: Добавлено: возможность добавления глобальной переменной из не глобальной темы.
Непонятно :( Как этим воспользоваться?
В диалоге изменения переменной появилась галочка Сделать глобальной - можно не вбивать ручками в глобальные, AkelPad сам добавит в список (лично у меня там только AutoComplete_Indent :))
Locked