Coder plugin (2)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
DV
Offline
Posts: 1291
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

Skif_off wrote:512+262144?
То же самое, да и описание флага 512 не предполагает иного... (Пробовал также и в комбинации 1+512+2048+262144).
Собственно, чего я добиваюсь - это обработки любого текста в кавычках (в том числе многострочного) в обычных текстовых файлах. А для них-то панель CodeFold совсем ни к чему. Но в то же время при редактировании исходников программ очень удобно автоматическое появление панели CodeFold (то есть я не хочу её включать и отключать вручную).
Неужели я наткнулся на ограничение в реализации?

DV
Offline
Posts: 1291
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

DV wrote:Неужели я наткнулся на ограничение в реализации?
Причём у меня такое чувство, что это довольно легко исправить: если все элементы, описанные в Folds:, содержат флаг 262144 don't show fold in list, то панель CodeFold не надо показывать.

Offline
Site Admin
Posts: 6403
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Изменено: если секция "Folds:" состоит только из правил с флагом 262144, то, при автоматическом отображении списка, он не показывается (Coder::CodeFold).
Добавлено: поддержка регулярных выражений в отметках текста (Coder::HighLight). Будет работать в AkelPad'е 4.8.8 и выше.

Changed: if section "Folds:" consists only of rules with flag 262144, then list will be not displayed with "Show list" set to "Auto"(Coder::CodeFold).
Added: support for regular expressions in text marks (Coder::HighLight). Will work in AkelPad 4.8.8 and higher.


Coder plugin v12.9

DV
Offline
Posts: 1291
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

Groovy! :)

Offline
Posts: 1162
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Добавлено: поддержка регулярных выражений в отметках текста (Coder::HighLight).
Поясните, пожалуйста.

DV
Offline
Posts: 1291
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

Skif_off,
так ведь вот:
Coder-Rus.txt wrote:Call("Coder::HighLight", 2, "#RRGGBB", "#RRGGBB", FLAGS, FONTSTYLE, ID, "TEXT", TEXTLENGTH)

FLAGS (сумма следующих):
1 учитывать регистр (по умолчанию).
2 регулярные выражения в параметре "TEXT".
Эх, теперь бы ещё в QSearch вставить поддержку этого параметра :)

Offline
Posts: 366
Joined: Mon Jan 10, 2011 5:28 pm
Contact:

Post by Lenchik »

Теперь бы скрипт, который вызывает окошко, в котором этот Call и его параметры можно было задать, и написать соответственно "TEXT", по которому тут же подсветятся соответствующие части текста.

Или это через QSearch будет как-то?

Offline
Posts: 294
Joined: Tue Jul 27, 2010 11:18 pm

Post by Serge Yolkin »

DV wrote:Эх, теперь бы ещё в QSearch вставить поддержку этого параметра :)
не подскажете, кого бы попросить о такой Grand Feature? :)

Offline
Posts: 1162
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Вопрос тем кто делате сови coder-файлы или пилит под себя имеющиеся: сколько правил безболезненно умещаются в Quotes:? В lua.coder 109, почти все с флагами 1+4+32768, а раза в 2 больше?

Offline
Posts: 1162
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Подскажите, пожалуйста, если есть решение :)
Кусок кода

Code: Select all

    (begin
      (if (= randme TRUE) (set! rotation (rand 360)))
т.е. функция - это то, что между открывающей скобкой и пробелом или концом строки, но просто правило со скобкой и пробелом в Quotes не пройдет, например

Code: Select all

(let* ( (x '(1 3 5))) x)
назначаем переменной "х" список значений 1, 3, 5. Или вложенные списки:

Code: Select all

(let*
   (
        (x
           '("GIMP" (1 2 3) ("is" ("great" () ) ) )
        )
    )
    x
)
Функция только одна - let*. Да и вообще не хочется все подряд подсвечивать. Сделал так

Code: Select all

;32901=1+4+128+32768
32901	2	${OP}	0	"("	"let*"	""	""	""
но есть пробема: добавил, например, define, но забыл/не захотел/облажался и пропустил define-macro и получил
(define-macro
Как избежать?

В принципе, можно умять список слов регулярными выражениями для вроде таких
vector
vector->list
vector-fill!
vector-length
vector-ref
vector-set!
vector?
как сделал для

Code: Select all

char-ci(\<|\>|=){0,2}\?
char(\<|\>|=){0,2}\?
; и car & cdr (бомба просто - минус ~30 ключевых слов, [size=10]но, наверное, нужно все-таки ограничить длину[/size])
c(a|d)+r
но опять таки - не хочется подсвечивать все подряд.
Last edited by Skif_off on Tue Mar 11, 2014 8:17 pm, edited 1 time in total.

DV
Offline
Posts: 1291
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

Вопрос по кавычкам... Есть такие правила:

Code: Select all

Quotes:
;5=1+4
5	3	${STR}	0	`"`	`"`	""	""	""

Folds:
;1+512+262144
262657	3	${STR}	0	`"`	`"`	""
Почему при этих правилах в следующем тексте абсолютно всё подсвечивается курсивом? --
"abc
jkl", - hhjkhk, - " cwc"
По идее, часть - hhjkhk, - должна остаться некурсивной, так как она находится между двумя фрагментами в кавычках.

Offline
Site Admin
Posts: 6403
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Skif_off
Добавить "(define-macro"? :)

DV
В правиле в секции "Quotes:" нет нужды.

Offline
Posts: 1162
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Instructor
Охватить все нереально, хочется идеально сделать, но как всегда возможны только компромиссы :) Как с кавычками.
Вроде с флагами ;36997=1+4+128+4096+32768 получается.

Code: Select all

(define-variable imail-default-dont-reply-to-names
  "A regular express ... riable in the site customization file."
  "info-"
  string?)
Notepad++, SynWrite и gedit подсвечивают string?, надо думать. Документация вся только на английском, блин.

Offline
Posts: 2248
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Не помню, просил или нет. Врядли.
Часто делаю самокомпилирующиеся полиглоты, коротенькие, но подсветка и прочие красивости не помешают. Потому в cpp.coder хочется видеть следующие шаблоны файлов из коробки: *.cpp.cmd *.cpp.bat *.c.cmd *.c.bat Я их каждое обновление себе добавляю....

DV
Offline
Posts: 1291
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

Instructor wrote:если секция "Folds:" состоит только из правил с флагом 262144, то, при автоматическом отображении списка, он не показывается (Coder::CodeFold)
Можно ли по аналогии использовать ещё какой-то флаг, чтобы вертикальная панель Fold (на которой показываются (-) или [-]) тоже не показывалась? (Это я всё насчёт многострочных кавычек в обычном текстовом файле - не хотелось бы в нём видеть панель Fold, как-то это слишком по-программистски выглядит.)
Locked