Page 51 of 101

Posted: Mon Jun 27, 2011 6:53 pm
by Instructor
Infocatcher
Замучил уже с этими регэкспами :) Придумай ченить :)

Posted: Mon Jun 27, 2011 7:37 pm
by Instructor
Изменено: при сохранении файла, подсветка обновляется только, если было изменено расширение (Coder::HighLight).

Changed: when saving a file, the highlighting is updated only if the extension was changed (Coder::HighLight).


Coder plugin v6.3

Posted: Mon Jun 27, 2011 7:58 pm
by Infocatcher
Instructor
Я уже придумал адскую регулярку регулярок. :D
Сейчас там вот так (сама регулярка не менялась):

Code: Select all

			// Remove strings ("..." and '...')
			.replace(/"(\\.|[^"\\\n\r])*"/g, escaper)
			.replace(/'(\\.|[^'\\\n\r])*'/g, escaper)
			// Try remove simple regular expressions like /x*/ and /\/*x/
			// We search for invalid divisions:
			// x = /./;            -> =
			// if(/a/.test(b))     -> (
			// a = [/a/, /b/]      -> [ ,
			// x = a && /b/test(c) -> & |
			// x = a ? /b/ : /c/   -> ? :
			// x = !/a/.test(b)    -> !

			.replace(
				/([=(\[,&|?:!]\s*((\/\/[^\n\r]*[\n\r]+|\/\*[\s\S]*?\*\/)\s*)*)\/([^*\\\/\n\r]|\\[^\n\r])(\\\/|[^\/\n\r])*\//g,
				// special chars   line comments       block comments         regexp begin                       regexp end
				function(s, prefix) {
					return prefix + escaper(s.substr(prefix.length));
				}
			);
То есть сначала исключаются строки, потом ищутся некорректные операции деления.
Так что если есть символ из набора + пробелы или комментарии + «/», то это начало регулярного выражения.
Причем внутри все «/» должны экранироваться и не должно быть экранирования завершающего «/». Ну, и там еще учитывается, что «*» не может быть первым символом. Впрочем, там еще и не должно быть «?» и «+», надо будет добавить.

А еще в том примере не должно быть «\» перед «//» в комментарии.

Posted: Mon Jun 27, 2011 8:35 pm
by Instructor
Infocatcher wrote:js.coder:
<pre>.replace(/\/\/qwe\//g, "//asd/")</pre>и<pre>.replace(/\/\/qwe\//g, "/asd/")</pre>
Комментарии изнутри строк вылезают. :)
Есть такая идея:

Code: Select all

;--RegExp--
;16517=1+4+128+16384
16517	0	0	0	"/"	"//"	""	""	"/"
;16517=1+4+128+16384
16517	0	0	0	"/"	"/*"	""	""	"/"
;5=1+4
5	0	${AREA}	0	"/"	"/"	""	""	""

Posted: Mon Jun 27, 2011 9:21 pm
by Infocatcher
Instructor wrote:Есть такая идея:
Вроде, вылечилось, спасибо.

Posted: Tue Jun 28, 2011 12:15 pm
by Instructor
Исправлено: обновление кэша с подсвеченными тэгами (Coder::CodeFold).

Fixed: cache updating with highlighted tags (Coder::CodeFold).


Coder plugin v6.4

Posted: Thu Jun 30, 2011 7:16 am
by Bingo
Помогите пожалуйста сделать подсветку имён ф-ций {вида FuncName()}, имена которых не заданы в секции "Words:". Добавил в "Quotes:"

Code: Select all

;392=8+128+256
392     2       ${TAG} 0       ""      "("     ""      "0123456789_abcdefghijklmnopqrstuvwxyz"  ""
но тогда по этому правилу подсвечивается и то что задано в "Words:".
Есть ли решение?

Posted: Thu Jun 30, 2011 2:52 pm
by Instructor
Bingo

Code: Select all

Quotes:
;======================================================================
;Flags  Font    Color   Color   Quote   Quote   Escape  Quote   Quote
;       style   text    bkgrnd  start   end     char    include exclude
;======================================================================
;397=1+4+8+128+256
397	2	${TAG}	0	""	"("	""	""	""
Приоритет у "Quotes:" выше, чем у "Words:", поэтому секция "Words:" не может исключить "Quotes:".

Может приведете конкретный пример?

Posted: Thu Jun 30, 2011 3:55 pm
by Bingo
Приоритет у "Quotes:" выше, чем у "Words:"
Я так и подумал. Просто хотел для AutoIt-а замутить подсветку встроенных ф-ций одним цветом, ф-ций из идущих в дистрибутиве библиотек - другим, а пользовательских - третьим, чтоб сразу было видно откуда у них ноги растут. :roll: Ну ладно, тогда HighLight_BasicTextColor под эту задачу поменяю.

Posted: Tue Jul 05, 2011 5:40 am
by Infocatcher
В php.coder надо добавить «%» в разделители: http://www.php.net/manual/en/language.o ... hmetic.php.

Posted: Tue Jul 05, 2011 2:28 pm
by Instructor
Infocatcher
Добавлено.

Posted: Mon Jul 11, 2011 3:47 pm
by Infocatcher
Может, добавить вот это в cpp.coder?

Code: Select all

    switch (Count & 0x3)
    {
    case 0x3:
        *A++ += *B++;
        __fallthrough;
    case 0x2:
        *A++ += *B++;
        __fallthrough;
    case 0x1:
        *A++ += *B++;
        break;
    }
имеют место быть вот тут.

Posted: Sat Jul 16, 2011 9:38 pm
by ~uname
Faulting application name: AkelPad.exe, version: 4.6.3.0,
Faulting module name: Coder.dll, version: 6.4.0.0,
Exception code: 0xc0000005
Падает при нажатии Tab в MDI окне без вкладок.

Упоминания бага в теме не нашел.

Posted: Sun Jul 17, 2011 8:58 am
by Instructor
~uname
Исправлено, но будет требоваться версия AkelPad'а 4.6.4 и новая версия плагина.

Posted: Sun Jul 24, 2011 1:11 pm
by Andrey_A_A
Возможно ли поддержка в секции "Extensions:" расширений в виде
txt*
(где * - любое количество символов)