Page 46 of 99

Posted: Thu May 22, 2014 8:13 pm
by FeyFre
Пока да.

Posted: Fri May 23, 2014 6:45 pm
by Egor
Нет, рано я радовался… Щас перепроверил на нескольких схемах, чё-то нифига эта "волшебная" формула с "Xor" не работает. Например:

Code: Select all

-------------------------------------------------
 [1]    :    [2]   :    [3]     :   [4]
-------------------------------------------------
Тема    :  Задано  :  Показано  :  FFFFFF Xor [2]
-------------------------------------------------
Bespin  :  FFFF00  :  0000FF    :  0000FF
Cobalt  :  656565  :  9AB8DA    :  9A9A9A
Monokai :  8F908A  :  574757    :  706F75
Twilight:  868686  :  6D6D6D    :  797979
Zenburn :  5D666E  :  9DA6AE    :  A29991
-------------------------------------------------

Обозначения (номера) колонок

[1] название темы
[2] цвет, заданный в настройках для "HighLight_ColumnColor"
[3] цвет, показываемый на экране РЕАЛЬНО
[4] "волшебная" формула: FFFFFF Xor [2]

В итоге мы видим, что значения в колонках [3] и [4]
совпадают только у схемы Bespin, а у остальных они
разнятся, т.о. "волшебная" формула не работает :(

Posted: Sat May 24, 2014 12:04 pm
by Serge Yolkin
Egor
ClearType отключен?

Posted: Sat May 24, 2014 3:15 pm
by Instructor
Egor wrote:... а что такое "зебра"?
Включите и увидите:
Главное меню -> Настройки -> Параметры... -> Редактор 1 -> Зебра
Пропуск = 2
Заливка = 2
Egor wrote:

Code: Select all

32 don't highlight quote start
64 don't highlight quote end

128  don't catch and don't highlight quote start
256  don't catch and don't highlight quote end
Про 32/64 я вроде понял: это чтобы сами кавычки не подсвечивались? А что тогда такое 128/256 (don't catch) — в чём отличие от 32/64?
Если используется "не захватывать", то начало/конец диапазона также проходят через обработку остальными правилами.
Egor wrote:Да, еще хотел спросить: там в настройках Coder'a есть опция "кэш: использовать/не использовать" — зачем он нужен, этот кэш, и что он даёт?
Кэш - это файл "{AkelPad}\AkelFiles\Plugs\Coder\cache". Дает данные плагину: какие файлы *.coder за какие расширения отвечают, без необходимости загрузки этих файлов, т.е. ускоряет инициализацию плагина.
Egor wrote:То есть если я хочу получить на экране для HighLight_ColumnColor, например, цвет #0000FF, то в окне настроек мне надо прописать цвет #FFFF00...
Если вам надо цвет #0000FF, то указываете цвет #0000FF. Ничего мудрить не надо. Активная строка имеет не сплошной цвет, а её отрисовка организуется через смешивание при наложении цветов. Если нужны подробности см. в исходниках функцию AE_ActiveColumnDraw в AkelEdit.c.
Egor wrote:в окне настройки цветов цветовой темы переменные в списке можно двигать вверх-вниз (клик правой кнопкой мыши > Переместить вверх/Переместить вниз), — на что влияет порядок переменных в этом списке, или это просто для удобства?
Для удобства.

Posted: Sat May 24, 2014 4:24 pm
by Egor
Instructor wrote:Если вам надо цвет #0000FF, то указываете цвет #0000FF. Ничего мудрить не надо. Активная строка имеет не сплошной цвет, а её отрисовка организуется через смешивание при наложении цветов. Если нужны подробности см. в исходниках функцию AE_ActiveColumnDraw в AkelEdit.c.
Исходники мне все равно ни о чём не скажут, ибо C я не знаю.

Image

То, что вертикальная линия рисуется пунктиром это я понял (на картинке это видно). Пример взят из темы "Twilight". В окне настроек цветов HighLight_ColumnColor = #868686, Теперь я беру цвет с экрана колор-пикером (я использую ColorCop). На картинке видно, что цвет пунктира #6D6D6D. Так вот, объясните мне просто и тупо: как мне узнать цвет, который надо задать в окне настроек, чтобы получить ЖЕЛАЕМЫЙ цвет "квадратика" в пунктире. И я не понимаю, как можно обойтись без "мудрежа", если воочию видно, что реальный цвет "квадратика" не равен заданному в настройках цвету. Или я что-то не так понимаю?

Posted: Sat May 24, 2014 7:27 pm
by Instructor

Posted: Sun May 25, 2014 10:46 pm
by Starg
I found a bug in Coder::HighLight.
In C++,

Code: Select all

/* test
// comment */ Not a comment!
everything above incorrectly gets highlighted as a comment.

Posted: Mon May 26, 2014 9:38 am
by Egor
Instructor wrote:Egor
Тестовая версия
Я попробовал, да, вот теперь всё правильно, вертикальная линия показывается тем же цветом, каким указано в настройках значение переменной HighLight_ColumnColor.

Posted: Mon May 26, 2014 1:38 pm
by Skif_off
Starg
It's not a bug, it's nuance :)
For example: in \AkelFiles\Plugs\Coder\cpp.coder replace

Code: Select all

1	3	${COMM}	0	"//"	""	":"	""	""
by

Code: Select all

1	3	${COMM}	0	"//"	"*/"	""	""	""
1	3	${COMM}	0	"//"	""	":"	""	""
in section Quotes.
But needs to be clarified: such a rule doesn't create any problems?

Or

Code: Select all

;513=1+512
513	3	${COMM}	0	"//"	"*/"	""	""	""
1	3	${COMM}	0	"//"	""	":"	""	""
? Just in case?

Posted: Mon May 26, 2014 11:49 pm
by Starg
Skif_off
Thank you. It works correctly.

And I have one more question about highlighting raw string literal.

Single-line raw string literals can be easily highlighted by QuotesRE, but how do I highlight multi-line raw string literals?

Code: Select all

const char* str = R"foo(
"Hello"
World!
)foo"; 

Posted: Tue May 27, 2014 4:00 pm
by FeyFre
Starg
I think it is not possible yet. Doing that for .lua w/o success yet.

Posted: Tue May 27, 2014 11:32 pm
by Starg
FeyFre
OK. Thank you anyway for clarifying that.

Posted: Wed May 28, 2014 9:13 am
by [Yustas.NeO]
Включено: "Добавлять словами из документа".
Введено: Автоматический список — Показывать после — N символов.

Если в coder-файле в секции Words есть слово, состоящее из N букв (например, «is» «or» «on», а в настройках "Показывать после — 2 символов"), а в тексте есть слово начинающееся на эти N буквы (например «isNull»), то после ввода этих N букв («is») — вообще не показывается AutoComplete-список. А должен бы показать «is* isNull+».

Стоит внести в coder-файл слово, например, «iss» и обновить кэш — как начинают показываться «is* iss* isNull+».

P.S.
Для «if» нормально показывается, судя по всему, потому что им (if'ом) заполнена секция «Folds:»..

Posted: Wed May 28, 2014 8:07 pm
by Cuprum
Ребята, а кто пояснит вот такое поведение. Есть css.coder. В нем такие правила QuotesRE:

Code: Select all

0   "(#(?!\d|--|-\d)(\w|-)+)\b"  "\1=(0,${VAR},0)"
0   "\:.*(#)([A-F\d]{6}|[A-F\d]{3})\b"  "\1=(0,0,\2)"
0   "\:.*(#)([A-F\d]{1,2}|[A-F\d]{4,5})\b"  "\1=(0,0,0)"
Первое подсвечивает идентификаторы, второе подсвечивает решетку указанным цветом внутри background или background-color; третье нужно, чтобы не подсвечивать таким же цветом как у идентификатора цвет, когда в нем не 3 или 6 символов (в процессе печати).
При таких правилах, когда, допустим, напечатано только 4 символа, цвет все равно подсвечивается

Image


Но стоить третье правило записать без \b на конце

Code: Select all

0   "\:.*(#)([A-F\d]{1,2}|[A-F\d]{4,5})"  "\1=(0,0,0)"
подсветка цветом идентификатора

Image

Никак не могу понять, почему?

Posted: Thu May 29, 2014 2:20 pm
by Skif_off
Cuprum
Идентификаторы бывают только в начале строки? Если да, то можно попробовать добавить в первое правило "^[ \t]*".
Флаг 512, кажется, не работает в QuotesRE?