Замучил уже с этими регэкспами
Coder plugin (1)
- Author
- Message
-
Offline
- Site Admin
- Posts: 6411
- Joined: Thu Jul 06, 2006 7:20 am
Изменено: при сохранении файла, подсветка обновляется только, если было изменено расширение (Coder::HighLight).
Changed: when saving a file, the highlighting is updated only if the extension was changed (Coder::HighLight).
Coder plugin v6.3
Changed: when saving a file, the highlighting is updated only if the extension was changed (Coder::HighLight).
Coder plugin v6.3
-
Offline
- Posts: 1879
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
Instructor
Я уже придумал адскую регулярку регулярок.
Сейчас там вот так (сама регулярка не менялась):
То есть сначала исключаются строки, потом ищутся некорректные операции деления.
Так что если есть символ из набора + пробелы или комментарии + «/», то это начало регулярного выражения.
Причем внутри все «/» должны экранироваться и не должно быть экранирования завершающего «/». Ну, и там еще учитывается, что «*» не может быть первым символом. Впрочем, там еще и не должно быть «?» и «+», надо будет добавить.
А еще в том примере не должно быть «\» перед «//» в комментарии.
Я уже придумал адскую регулярку регулярок.
Сейчас там вот так (сама регулярка не менялась):
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));
}
);Так что если есть символ из набора + пробелы или комментарии + «/», то это начало регулярного выражения.
Причем внутри все «/» должны экранироваться и не должно быть экранирования завершающего «/». Ну, и там еще учитывается, что «*» не может быть первым символом. Впрочем, там еще и не должно быть «?» и «+», надо будет добавить.
А еще в том примере не должно быть «\» перед «//» в комментарии.
-
Offline
- Site Admin
- Posts: 6411
- Joined: Thu Jul 06, 2006 7:20 am
Есть такая идея: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 "/" "/" "" "" ""-
Offline
- Posts: 1879
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
-
Offline
- Site Admin
- Posts: 6411
- Joined: Thu Jul 06, 2006 7:20 am
Исправлено: обновление кэша с подсвеченными тэгами (Coder::CodeFold).
Fixed: cache updating with highlighted tags (Coder::CodeFold).
Coder plugin v6.4
Fixed: cache updating with highlighted tags (Coder::CodeFold).
Coder plugin v6.4
-
Offline
- Posts: 2
- Joined: Thu Jun 30, 2011 6:29 am
Помогите пожалуйста сделать подсветку имён ф-ций {вида FuncName()}, имена которых не заданы в секции "Words:". Добавил в "Quotes:"
но тогда по этому правилу подсвечивается и то что задано в "Words:".
Есть ли решение?
Code: Select all
;392=8+128+256
392 2 ${TAG} 0 "" "(" "" "0123456789_abcdefghijklmnopqrstuvwxyz" ""Есть ли решение?
-
Offline
- Site Admin
- Posts: 6411
- Joined: Thu Jul 06, 2006 7:20 am
Bingo
Приоритет у "Quotes:" выше, чем у "Words:", поэтому секция "Words:" не может исключить "Quotes:".
Может приведете конкретный пример?
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 "" "(" "" "" ""Может приведете конкретный пример?
-
Offline
- Posts: 2
- Joined: Thu Jun 30, 2011 6:29 am
Я так и подумал. Просто хотел для AutoIt-а замутить подсветку встроенных ф-ций одним цветом, ф-ций из идущих в дистрибутиве библиотек - другим, а пользовательских - третьим, чтоб сразу было видно откуда у них ноги растут.Приоритет у "Quotes:" выше, чем у "Words:"
-
Offline
- Posts: 1879
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
В php.coder надо добавить «%» в разделители: http://www.php.net/manual/en/language.o ... hmetic.php.
-
Offline
- Posts: 1879
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
-
Offline
- Posts: 670
- Joined: Thu Jun 03, 2010 8:47 am
- Location: Сочи, Хоста
- Contact: