AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Coder plugin (2)
Goto page Previous  1, 2, 3 ... 36, 37, 38 ... 55, 56, 57  Next
 
Post new topic   Reply to topic    AkelPad Forum Index -> Plugins
View previous topic :: View next topic  
Author Message
FeyFre



Joined: 07 Aug 2007
Posts: 2034
Location: Vinnitsa, Ukraine

PostPosted: Wed Feb 12, 2014 10:09 pm    Post subject: Reply with quote

Кстати, изкоробочный coder.bat

Code:
EXIT /B %ERRORLEVEL% ::Это уже коментарий должно быть раскрашено

"::Это уже коментарий должно быть раскрашено" - собственно комментарий и должен быть раскрашен. (:: - символ комментария в том числе с середины строки, да)
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Drugmix



Joined: 08 Apr 2013
Posts: 383

PostPosted: Wed Feb 12, 2014 10:42 pm    Post subject: Reply with quote

FeyFre wrote:
Наверное не так поняли. В тесте "goto :wrongsyntax_no_colorisation_label" - ошибка синтаксиса, соответственно раскраска не должна распространяться. Меток начинающихся на : не существует(кроме псевдометки :EOF)

А я же спрашивал (4.).
Code:
0   `^\s*(Call)(?:\s*:|\s+)([\w:=\\/%\s"]+)\s*((?<=\s)::.*$)?$` "\1=(0,${OP},0) \2=(0,${AREA},0) \3=(0,${ATTR},0) \4=(3,${COMM},0)"
0   "^\s*(GoTo)\s*(\w+)\s*((?<=\s)::.*$)?$" "\1=(0,${OP},0) \2=(0,${AREA},0) \3=(3,${COMM},0)"


Но правило для команды Call задано с учётом возможного вызова параметров из слов и в виде путей к файлам, но без учёта вызова другой команды, вроде call set tratata=blabla.
Чтобы правильно подкрасить Call Set - надо составлять правила по аналогии с тем, как я их составил в ahk.coder:
там перед каждой командой идёт большая приписка, в которой, например, указывается Try, потому что Try может стоять перед любой другой командой.
FeyFre wrote:
Кстати, изкоробочный coder.bat

Code:
EXIT /B %ERRORLEVEL% ::Это уже коментарий должно быть раскрашено

"::Это уже коментарий должно быть раскрашено" - собственно комментарий и должен быть раскрашен. (:: - символ комментария в том числе с середины строки, да)

QuotesRE правила содержащие привязки к концу (и вроде к началу тоже) строки - перебивают остальные правила, в том числе и правила из Quotes: секции.
Back to top
View user's profile Send private message
Skif_off



Joined: 20 Oct 2013
Posts: 270

PostPosted: Wed Feb 12, 2014 11:02 pm    Post subject: Reply with quote

FeyFre wrote:
Наверное не так поняли. В тесте "goto :wrongsyntax_no_colorisation_label" - ошибка синтаксиса, соответственно раскраска не должна распространяться. Меток начинающихся на : не существует(кроме псевдометки :EOF)

Однако goto :label часто встречается.

А где можно про комментирование прочитать? Не могу нагуглить, пишут про rem и :: в начале строки и все. И с именами самих меток проблема.

Drugmix
А зачем вы привязываетесь к началу и концу строк? call и goto совсем не обязательно в начале строки.
Back to top
View user's profile Send private message
Drugmix



Joined: 08 Apr 2013
Posts: 383

PostPosted: Wed Feb 12, 2014 11:19 pm    Post subject: Reply with quote

Skif_off wrote:
FeyFre wrote:
Наверное не так поняли. В тесте "goto :wrongsyntax_no_colorisation_label" - ошибка синтаксиса, соответственно раскраска не должна распространяться. Меток начинающихся на : не существует(кроме псевдометки :EOF)

Однако goto :label часто встречается.

А где можно про комментирование прочитать? Не могу нагуглить, пишут про rem и :: в начале строки и все. И с именами самих меток проблема.

Drugmix
А зачем вы привязываетесь к началу и концу строк? call и goto совсем не обязательно в начале строки.

Я синтаксиса не знаю и подумал, что они идут всегда сначала строки (не считая отступов). Иных примеров тут никто не приводил. А что перед ними ещё может быть? Если что угодно - то тогда и правда надо избавляться от правил с привязками к краям строки.
Back to top
View user's profile Send private message
Skif_off



Joined: 20 Oct 2013
Posts: 270

PostPosted: Wed Feb 12, 2014 11:28 pm    Post subject: Reply with quote

Drugmix
Все, что угодно, например, плагин Templates, batch.bat и batch.cmd:
IF "%1"=="" GOTO :NoParam
Back to top
View user's profile Send private message
Skif_off



Joined: 20 Oct 2013
Posts: 270

PostPosted: Thu Feb 13, 2014 3:18 am    Post subject: Reply with quote

В процессе поисков нашел Batch Function Library, используются метки вида
Quote:
:DateToDays %yy% %mm% %dd% days

вероятно, для удобства и только.

По комментариям внутри строки:
видел такое в одной дискуссии
Code:
command &::comment

но реально не встречал. В Sublime Text есть такое правило
Code:
\s*:\s*:.*$

но оно споткнется здесь
Code:
if defined ALLDRV (
  set ALLDRV=!ALLDRV:\=!
  set ALLDRV=!ALLDRV: =!
  set ALLDRV=!ALLDRV::=: !
)

ИМХО, проще забить в силу редкости.
Тут еще это исправление отработает некорректно. В общем, компромиссы кругом :)

По имени метки: нагуглил эту тему и объелся рыбного супа :) Но обычно используют a-z, 0-9 и "_", на DosTips до кучи ".". Засим предложенный в теме вариант
Code:
(\w+(?:\.\w+)*)

наверное, самое оно?

Добавлено:
В итоге, по goto, call и меткам: кажется, оптимальным будет закомментировать в Quotes
Code:
;1809=1+16+256+512+1024
1809   2   0   0   ":"   ""   ""   ""   ""

и в QuotesRE добавить
Code:
0   "^:\w+(?:\.\w+)*"   "\0=(2,0,0)"
0   "(goto)(?:\s*:|\s+)(\w+(?:\.\w+)*)"   "\1=(0,${OP},0) \2=(2,0,0)"
0   "(call)(?:\s*:|:)(\w+(?:\.\w+)*)"   "\1=(0,${OP},0) \2=(2,0,0)"

Или перед правилом в Quotes добавить еще одно
Code:
;773=1+4+256+512
773   2   0   0   ":"   " "   ""   ""   ""

и убрать первое правило в QuotesRE.
Стиль шрифта и цвет по вкусу.


Last edited by Skif_off on Fri Feb 14, 2014 10:10 pm; edited 2 times in total
Back to top
View user's profile Send private message
San_dr



Joined: 06 Dec 2010
Posts: 147
Location: г.Харьков, Русь

PostPosted: Thu Feb 13, 2014 9:32 pm    Post subject: Reply with quote

koros, если уже можно, - просьба выложить финальный вариант кодера после устаканивания
Back to top
View user's profile Send private message
koros



Joined: 12 Apr 2008
Posts: 54

PostPosted: Mon Feb 17, 2014 5:51 am    Post subject: Reply with quote

Skif_off wrote:


koros wrote:
И ещё вопрос для знатоков: возможно ли в coder.coder задать подсветку так, чтобы при просмотре любого *.coder переменные типа ${COMM} подсвечивались тем цветом, который задан для этой переменной в текущей цветовой теме?

Не знаток, но делал как-то: закомментировать в Quotes
Code:
5   0   ${VAR}   0   "${"   "}"   "$"   ""   ""

в Words добавить
>>>
Code:
0   0   #808080   0   "${STR}"
0   0   #008000   0   "${COMM}"
0   0   #800000   0   "${VAR}"
0   0   #CC3333   0   "${DEL1}"
0   0   0   0   "${DEL2}"
0   0   #3333CC   0   "${TYPE}"
0   0   #3333CC   0   "${OP}"
0   0   #3333CC   0   "${TAG}"
0   0   #339933   0   "${ATTR}"
0   0   #339933   0   "${IF}"
0   0   #FF8000   0   "${AREA}"
0   0   #FF8000   0   "${NUM}"

(для дефолтной темы)
Но в итоге просто держу файл color.coder с одной секцией Words со строками типа
Code:
0   0   #808080   0   STR

цвета и переменные из дефолтной темы + цвета из моей темы + цвета и переменные Infocatcher + основные цвета html/css (с кодом и отдельно с именем).

Это не совсем то, что я спрашивал. В этом примере цвета для переменных типа ${AREA} заданы жестко, а я бы хотел, чтобы они менялись в зависимости от текущей темы. То есть я, например, в abc.coder (для подсветки файлов типа *.abc) задаю в Words для слова mywords цвет ${OP} и сразу вижу, как он отображается в текущей теме, и мне не надо открывать файл *.abc. Если такой возможности нет, то неплохо было бы добавит в последующих версиях плагина.

Skif_off wrote:

Еще по вашему bat.coder:
- не будут работать команды с пробелом (net ..., reg ...), т.к. пробел и табуляция есть в Delimiters, у себя делал в Quotes
Code:
32768   0   ${OP}   0   "reg"   " add"      ""   ""   ""

- правило
Code:
0   2   ${OP}   0   regsvr32.exe

тоже не сработает из-за точки в Delimiters. Где-то в теме обсуждалось, добавлял себе в QuotesRE
Code:
; внешние команды
0   "\b(\w+[\-\w]*\w*)\.(bat|cmd|com|exe)"   "\1=(0,${NUM},0) \2=(0,${NUM},0)"


Спасибо буду пробовать.

San_dr wrote:
koros, если уже можно, - просьба выложить финальный вариант кодера после устаканивания


Окончательный вариант выложу в составе конструктора на осзоне. Или нужно здесь? Вроде это никому особо не интересно
Back to top
View user's profile Send private message
Lenchik



Joined: 10 Jan 2011
Posts: 230

PostPosted: Mon Feb 17, 2014 3:33 pm    Post subject: Reply with quote

интересно
Back to top
View user's profile Send private message Visit poster's website
Skif_off



Joined: 20 Oct 2013
Posts: 270

PostPosted: Mon Feb 17, 2014 9:12 pm    Post subject: Reply with quote

koros wrote:
я бы хотел, чтобы они менялись в зависимости от текущей темы. То есть я, например, в abc.coder (для подсветки файлов типа *.abc) задаю в Words для слова mywords цвет ${OP} и сразу вижу, как он отображается в текущей теме, и мне не надо открывать файл *.abc. Если такой возможности нет, то неплохо было бы добавит в последующих версиях плагина.

Вряд-ли будет реализовано, слишком специфично, не так уж много людей занимается файлами подсветки.

По bat.coder: не сталкивался ранее, но вдруг заметил - отсутствует правило для одиночных кавычек (или апостроф, хз как правильно), из увиденного сегодня:
Code:
(for /f "tokens=1* delims=:" %%a in ('findstr /n /r "^" nvram1.txt') do ( 

команда findstr не будет подсвечена. Вот думаю - продублировать правило для обычных двойных кавычек или дабавить "'" в Delimiters?
Back to top
View user's profile Send private message
koros



Joined: 12 Apr 2008
Posts: 54

PostPosted: Tue Feb 18, 2014 5:30 am    Post subject: Reply with quote

Skif_off wrote:


По bat.coder: не сталкивался ранее, но вдруг заметил - отсутствует правило для одиночных кавычек (или апостроф, хз как правильно), из увиденного сегодня:
Code:
(for /f "tokens=1* delims=:" %%a in ('findstr /n /r "^" nvram1.txt') do ( 

команда findstr не будет подсвечена. Вот думаю - продублировать правило для обычных двойных кавычек или дабавить "'" в Delimiters?



Хорошее замечание.
У меня правило для обычных кавычек в Quotes не используется, поэтому - добавил себе в Delimiters.

А нет ли мыслей по поводу параметров после call :label ?
Back to top
View user's profile Send private message
Skif_off



Joined: 20 Oct 2013
Posts: 270

PostPosted: Tue Feb 18, 2014 6:20 am    Post subject: Reply with quote

koros wrote:
А нет ли мыслей по поводу параметров после call :label ?

ИМХО, можно забить - многовато условий:
параметры, имена файлов, пакетные параметры (%1-%9), переменные
Code:
if not "%len%"=="" set /a %1+=1 & call :len %1 "%len:~1%"
Back to top
View user's profile Send private message
koros



Joined: 12 Apr 2008
Posts: 54

PostPosted: Tue Feb 18, 2014 6:28 am    Post subject: Reply with quote

Skif_off wrote:
koros wrote:
А нет ли мыслей по поводу параметров после call :label ?

ИМХО, можно забить - многовато условий:
параметры, имена файлов, пакетные параметры (%1-%9), переменные
Code:
if not "%len%"=="" set /a %1+=1 & call :len %1 "%len:~1%"


А если только то, что внутри кавычек?
call :label "param1" "param2"
Переменные пусть отображаются, как переменные, а параметры без кавычек - как просто текст
Back to top
View user's profile Send private message
koros



Joined: 12 Apr 2008
Posts: 54

PostPosted: Fri Feb 21, 2014 9:07 am    Post subject: Reply with quote

Я так понимаю, что на мой предыдущий вопрос ответа нет. На, да и ладно с ним Smile

У меня появился вопрос по фолдингу. Есть большой файл (~10000 строк). Включаю фолдинг - ничего не происходит. Выключаю фолдинг и удаляю снизу некоторое количество строк (опытным путем выяснил, что должно оставаться не более 9138 строк). Включаю фолдинг - работает, вставляю обратно удаленные строки - работает. Выключаю и опять включаю - не работает. Проверял на Akelmenu.coder
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2034
Location: Vinnitsa, Ukraine

PostPosted: Fri Feb 21, 2014 9:33 am    Post subject: Reply with quote

koros, диалог настроек палгина, закладка CodeFold 1, курить 2 ограничения: Folds linit и Maximum document ### characters. Вероятно у вас срабатывает второй лимит, который срабатывает только при открытии файла(ну или разрешении фолдинга если файл уже открыт). В процессе редактирования если ограничения нарушаются реакции не будет.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Plugins All times are GMT
Goto page Previous  1, 2, 3 ... 36, 37, 38 ... 55, 56, 57  Next
Page 37 of 57

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group