Coder plugin (1)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Исправлено: смена цветовой темы и разделение окна.

Fixed: color theme changing and split window.


Coder plugin v3.4

Offline
Posts: 767
Joined: Mon Sep 28, 2009 10:03 am
Location: Minsk, Belarus

Post by se7h »

Instructor

после смены цветовой темы для вступления новых значений HighLight_AutoMarkTextColor и HighLight_AutoMarkBkColor в силу необходим перезапуск AP, это можно как-то исправить?

Offline
Posts: 84
Joined: Fri May 28, 2010 1:28 pm

Post by private_joker »

Мои нескромные "пять копеек" по улучшению Coder'а:

I. Подсветка
- Хотелось бы в диалоге настройки цветов подсветки также видеть и плотность/начертание шрифта.
- Фича или баг хз, но если значение цвета в диалоге пустое (0), визуально выбрать цвет не дает.
- Imo в подсветку стоит добавить цвета для LineBoard, во первых цвета сейчас настраиваются в 3-х местах:
1) Вид->цвета
2) Настройка Lineboard
3) Настройка Coder'a
На мой взгляд Look'n'feel получается довольно странный.
Во-вторых моя обычная тема подсветки (по белому черным) и скажем bespin с одним и тем же цветом в lineboard смотрятся странно.
- Или, к примеру, я пишу на плюсах на wxWidgets и Symbian C++, в первом случае для integer type используется wxInt32, во втором TInt, как по человечески для этих алиасов нарисовать соответствие с int (и что важно, чтобы оно не ломалось при обновлении подсветки) я не придумал.

II. Сворачивание блоков
- Хочется настраивание того, что будет фигурировать в Class Outline (это я так называю панель списка сворачивания), мне например там не нужны блочные комментарии, if/else, while, но нужны некоторые директивы препроцессора #include например нужен, а #ifdef или #define - нет.
- Было бы здорово, если бы в соответствии с темой в Class Outline раскрашивались (выделялись шрифтом) классы, методы, типы возвращаемого значения. (Почему бы для этих целей не использовать например контрол AkelEdit?)
- Кто-то уже давно мечтал о том, чтобы иконками выделять типы в Class Outline, видится довольно геморройная реализация и при реализации пред. пункта не шибко нужная, но мало ли. Поддакну, не убудет :)
- Было бы неплохо, если бы фон зоны текущего фолдинга подсвечивался цветом (в QtCreator есть такое, в VS 2010 также есть, но только при наведении на область узлов фолдинга). Визуально намного лучше дифференцируется чем просто подсветка узлов.
- Кстати в VS 2010 есть сворачивание не только по клику на узле фолдинга, но и по даблклику на зоне фолдинга, по-моему это тоже довольно удобно (не надо тянутся к узлу, хоткей свернуть/развернуть я забываю постоянно).

Вообще очень здорово конечно, что у "маленького редактора" стремительно растет самая интересная его часть (я про Coder если что) ;)

***
Еще забыл добавить, частично функионал xBrackets по подсветке теперь реализован в coder, как мне заставить xBrackets не подсвечивать то, что подсветил Coder я не разобрался. Я так понял что подсветки таких скобок как например

Code: Select all

if (b != a)
...
т.е. не сворачиваемых в coder не будет.

***
Еще одно добавление, как я понимаю визуально настроить для подсветки шрифт я не могу (кроме ковыряния вручную *.coder файла). Есть ли какой способ сделать override т.е. например в сорцах мне хотелось бы Consolas, в текстовых документах Courier New и чтобы это не отваливалось при изменении/апгрейде coder'а.

***
Есть бага:

Code: Select all

// blabla.cpp 

#ifdef __BLABLA__
	talks=true;
#else
	talks=false;
#endif

#else-#endif подсвечивает (TagMarkBkColor)
#ifdef-#else нет
Возможно трудности тех. реализации но тем не менее.

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

Post by FeyFre »

- Или, к примеру, я пишу на плюсах на wxWidgets и Symbian C++, в первом случае для integer type используется wxInt32, во втором TInt, как по человечески для этих алиасов нарисовать соответствие с int (и что важно, чтобы оно не ломалось при обновлении подсветки) я не придумал.
Сейчас никак. Только вручную добавлять. И не забывать корректировать после каждого обновления.
Для упрощения восстановления ваших изменений после обновления я бы поступил так(на примере coder)
1. Иметь две папки: оригинал(поместить куда-то в сторону) (усл. обознач. O) и модифицированные(в AkelFiles\Plugs\Coder) (усл. обознач. M).
2. Перед обновлением svn diff O M >coder.patch (git diff, diff -u или другое удобное/привычное/валяющееся под рукой)
3. Запускаем автообновление(все .coder файлы будут замещены)
4. Копируем все coder-файлы из папки M в папку O
5. svn merge в папке M с патч-файлом coder.patch
Это всё в батник для автоматизации.
Конечно это не спасет от работы руками при качественных изменений формата, но при количественных всё будет хорошо.
Есть бага:
Возможно трудности тех. реализации но тем не менее.
Главное что фолдинг правильно находит. А подсветка - уже второстепенно.

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

Post by Instructor »

Добавлено: подсветка узлов с флагом 128.
Исправлено: редактирование тэга XML при активной подсветке тэгов.
Исправлено: изменение переменных "HighLight_AutoMark*" требовало перезагрузки программы.

Added: nodes highlighting with 128 flag.
Fixed: XML tag editing with active tag marking.
Fixed: variables "HighLight_AutoMark*" change required program restarting.


Coder plugin v3.5

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

Post by FeyFre »

Есть такие правила

Code: Select all

;1=1
1	0	0	0	"if"	"end"	" 	("
;1=1
1	0	0	0	"for"	"end"	" 	("
;1=1
1	0	0	0	"while"	"end"	""
;1=1
1	0	0	0	"function"	"end"	" 	("
;1=1
1	0	0	0	"repeat"	"until"	" 	("
;385=256+128+1
385	0	0	0	"if"	"else"	" 	("
;385=256+128+1
385	0	0	0	"else"	"end"	""
;385=256+128+1
385	0	0	0	"if"		"elseif"	" 	("
;385=256+128+1
385	0	0	0	"elseif"	"elseif"	" 	("
;385=256+128+1
385	0	0	0	"elseif"	"else"	" 	("
;385=256+128+1
385	0	0	0	"elseif"	"end"	" 	("
и такой

Code: Select all

if cond then
	stat
elseif cond then
	stat
elseif cond then
	stat
else
	stat
end

Подсвечивается только первая пара if-elseif остальные нет. Это глюк правила или глюк плагина?

GGS
Offline
Posts: 31
Joined: Fri Nov 12, 2010 12:05 pm

Post by GGS »

Есть предложение добавить в ini.coder строку (вторая в примере ниже) для подсветки удаляемых разделов в reg-файлах.

Code: Select all

;517=1+4+512
517	2	${DEL1}	0	"[-"	"]"	""	""	""
517	2	0	0	"["	"]"	""	""	""

Offline
Posts: 84
Joined: Fri May 28, 2010 1:28 pm

Post by private_joker »

FeyFre wrote: Для упрощения восстановления ваших изменений после обновления я бы поступил так
...
Спасибо за экспириенс (совершенно серьезно), но я пока надеюсь на вменяемое решение "из коробки".
FeyFre wrote:Главное что фолдинг правильно находит. А подсветка - уже второстепенно.
Вообще конечно каждый волен иметь свое собственное мнение, однако проблема исправлена обновлением (спасибо за это) - значит не второстепенно.

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

Post by Instructor »

FeyFre
1. Правила ["что-то" "end"] не должны содержать флагов 256, 128, т.к. end потом ни с чем не связан.
2. Правило ["else" "end" ""] - не содержит разделителей.

Offline
Posts: 767
Joined: Mon Sep 28, 2009 10:03 am
Location: Minsk, Belarus

Post by se7h »

Coder по-прежнему роняет AP при смене подсветки, проверено на двух компах
архив с отладочной инфой и прочим

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

Post by Instructor »

se7h
Отладочная информация мало что дает. Недавно благодаря denis268 была исправлена ошибка при использовании переноса по словам. Как будет работать версия 3.6?
Last edited by Instructor on Thu Dec 09, 2010 12:16 pm, edited 1 time in total.

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

Post by Instructor »

Исправлено: обновление кэша при использовании переноса по словам.

Fixed: cache update with using word wrap.


Coder plugin v3.6

Offline
Posts: 767
Joined: Mon Sep 28, 2009 10:03 am
Location: Minsk, Belarus

Post by se7h »

Instructor

вроде полегчало, пока ни разу не крашился

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

js.coder:

Code: Select all

Folds:
;=============================================================
;Flags  Font    Color   Color   Fold      Fold      Delimiters
;       style   text    bkgrnd  start     end
;=============================================================
;5=1+4
5	0	0	0	"case"	"break"	" 	:;"
5	0	0	0	"default"	"break"	" 	:;"
5	0	0	0	"case"	"}"	" 	:;"
5	0	0	0	"default"	"}"	" 	:;"
;2053=1+4+2048
2053	0	0	0	"case"	"case"	" 	:;"
2053	0	0	0	"case"	"default"	" 	:;"
2053	0	0	0	"default"	"case"	" 	:;"
Вроде, и удобно, но полноценной реализации не получается. По идее, нужно искать следующий break; прямо перед case:

Code: Select all

switch(something) {
	default: // с такими штуками тоже проблемы
	case 0:
	case 1:
		if(qwe)
			break; // не оно
		// ...
	break; // оно
	case 2:
		// ...
}

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

Post by FeyFre »

Code: Select all

2053   0   0   0   "default"   "case"   "    :;"
Я конечно по ECMA не спец, но в C-ях case-ы после default просто в игноре. Тут предполагаю что тоже так.
Locked