Page 20 of 101

Posted: Tue Dec 07, 2010 8:10 pm
by Instructor
Исправлено: смена цветовой темы и разделение окна.

Fixed: color theme changing and split window.


Coder plugin v3.4

Posted: Tue Dec 07, 2010 9:07 pm
by se7h
Instructor

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

Posted: Wed Dec 08, 2010 5:47 am
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 нет
Возможно трудности тех. реализации но тем не менее.

Posted: Wed Dec 08, 2010 9:49 am
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
Это всё в батник для автоматизации.
Конечно это не спасет от работы руками при качественных изменений формата, но при количественных всё будет хорошо.
Есть бага:
Возможно трудности тех. реализации но тем не менее.
Главное что фолдинг правильно находит. А подсветка - уже второстепенно.

Posted: Wed Dec 08, 2010 3:13 pm
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

Posted: Wed Dec 08, 2010 4:46 pm
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 остальные нет. Это глюк правила или глюк плагина?

Posted: Wed Dec 08, 2010 6:12 pm
by GGS
Есть предложение добавить в ini.coder строку (вторая в примере ниже) для подсветки удаляемых разделов в reg-файлах.

Code: Select all

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

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

Posted: Thu Dec 09, 2010 4:21 am
by Instructor
FeyFre
1. Правила ["что-то" "end"] не должны содержать флагов 256, 128, т.к. end потом ни с чем не связан.
2. Правило ["else" "end" ""] - не содержит разделителей.

Posted: Thu Dec 09, 2010 10:09 am
by se7h
Coder по-прежнему роняет AP при смене подсветки, проверено на двух компах
архив с отладочной инфой и прочим

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

Posted: Thu Dec 09, 2010 12:16 pm
by Instructor
Исправлено: обновление кэша при использовании переноса по словам.

Fixed: cache update with using word wrap.


Coder plugin v3.6

Posted: Thu Dec 09, 2010 5:19 pm
by se7h
Instructor

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

Posted: Fri Dec 10, 2010 12:51 am
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:
		// ...
}

Posted: Fri Dec 10, 2010 7:54 am
by FeyFre

Code: Select all

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