Coder plugin (3)

Discuss and announce AkelPad plugins
  • Author
  • Message
Offline
Posts: 202
Joined: Sat Mar 28, 2015 2:36 pm
Location: Russia

Post by Kley »

LonerD
*USECACHE думаю для использования в коде скрипта.
Посмотрите пример к Call("Coder::Settings", 12, "ALIAS", *BOOL).

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

Post by Skif_off »

LonerD wrote:Без второй двойки ошибок нет. Файл cache при этом не изменяется, добавленные coder-файлы в него не прописываются до закрытия Акелпада - так и должно быть?
Наверное, так и должно быть: если правильно понял, AkelPad при старте загружает все coder-файлы, при этом если существующий (и загруженный) coder-файл был изменён, то команда Call("Coder::Settings", 2) применит измененённый coder-файл к открытым или вновь открываемым файлам. А новое содержимое cache сбросится на диск при закрытии AkelPad.
Т.е. получается, что без перезапуска не обойтись - добавленный файл может быть загружен только при следующем старте.

Если правильно понял.

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

Post by Skif_off »

Что-то я затупил с фолдингом: в Ruby условные операторы, циклы, да всё - удручающе однообразны

Code: Select all

class SongList
  def [](key)
    if key.kind_of?(Integer)
      return @songs[key]
    else
      for i in 0...@songs.length
        return @songs[i] if key == @songs[i].name
      end
    end
    return nil
  end
end
Везде end. Есть идеи, как сделать корректно?

Успела даже возникнуть мысль попробовать свежую фичу плага - Backreference \101 matches \1 in fold start, \102 matches \2 and so on. - и считать отступы... Пока не пробовал. И пока не уточнял: отступы только для читабельности кода или имеют значение, как, например, обязательные в Python или допустимые в JScript.

Offline
Posts: 582
Joined: Mon Apr 08, 2013 9:50 pm
Location: Win7SP1x64, APx64

Post by Drugmix »

А есть ли какой-то шанс, что regex правила подсветки в .coder начнут работать предсказуемо? Правда, даже если и начнут - без каскадного применения правил это всё равно довольно бесполезно :(

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

Post by Skif_off »

Drugmix
А что сейчас работает непредсказуемо?

Rule ID/Parent ID ни в коей мере не помогают "каскадному применению правил"?

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

AutoComplete is not working properly if you set option: Coder::Settings -> AutoComplete 2 -> Save typed symbols case.
Test file test.js:

Code: Select all

WScript.Echo("Hello Word");
1. Set caret at end of line and press Enter to add new line.
2. In last line, type "WS".
3. From AutoComplete list select "WScript+" and press Enter.
AutoComplete works.
4. Repeat steps 1, 2, 3.
AutoComplete doesn't work.
5. Repeat steps 1, 2, 3 several times.
AutoComplete doesn't work and AkelPad crashes.

YuS
Offline
Posts: 513
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

Drugmix wrote:А есть ли какой-то шанс, что regex правила подсветки в .coder начнут работать предсказуемо?
Вопрос из серии:
"Вы давно перестали пить водку по утрам?" :)

Слишком эмоционально. Попробуйте сформулировать, что хотелось получить и что именно из предполагаемого не получается...

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

Post by Instructor »

KDJ
Not reproduced, but found problem with uninitialized memory - test version. If it still not work, can you share/send your AkelPad folder?

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

Instructor
Yes, it helped. Now works correctly. Thanks.

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

Post by Instructor »

Исправлено: освобождение неинициализированной памяти при использовании настройки "Сохранять регистр введённых символов" (Coder::AutoComplete).

Fixed: releasing uninitialized memory when using option "Save typed symbols case" (Coder::AutoComplete).


Coder plugin v19.6

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

Post by Skif_off »

По Ruby: считать пробелы было не самой умной идеей :) Присваиваем переменной результат условного выражения:

Code: Select all

result = if some_cond
           calc_something
         else
           calc_something_else
         end
А мне только начал местами нравиться язык :))

Идеи всё ещё приветствуются :) Хотя, похоже, придётся считать символы и юзать обратные ссылки... Или пересмотреть идею исчерпывающего фолдинга.

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

Post by Lenchik »

Skif_off
Если по фолдингу

Code: Select all

;3412609=1+128+512+4096+262144+1048576+2097152
Из xml.coder

Но сильная вложенность, наверное будет тормозить заметно

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

Post by Skif_off »

Lenchik
Спасибо, можно пример с началом и концом блока? Если правильно понял, правило с этими ключами используется для подсветки атрибутов (см. в Quotes правила с Parent ID = 2).
По ключам на первый взгляд:
512 - игнорируются вложенные блоки;
4096 - не срабатывало, посмотрю ещё раз;
262144 - хорошо, когда можно прыгнуть к началу блока.
И, пожалуй, не хватает 256.

Наверное, всё-таки придётся считать пробелы до ключевого слова, а присваивания в духе предыдущего сообщения - нафиг.

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

Post by Lenchik »

А вообще в чём проблема ситуации, когда есть вложенность и у разных правил фолдинга одинаковые слова окончания? Кодер не умеет такие ситуации понимать? Он же в некоторых случаях заметно подтормаживает как раз изза того, что фолдинг отрабатывает (про fb2 такие истории тут были, насколько помню).

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

Post by Skif_off »

Lenchik
Вполне возможно, что я просто затупил :) Пример здесь, у меня пока не получилось - захватывает не то. Или, может быть, нужно просто добавить сразу все варианты,чтобы не оставалось "незанятых" end? Доберусь до компа, проверю.
Lenchik wrote:Он же в некоторых случаях заметно подтормаживает как раз изза того, что фолдинг отрабатывает (про fb2 такие истории тут были, насколько помню).
Дело в размере, посмотрите, как применяются правила фолдинга и подсветки атрибутов в XML:

>>> Folds: 4 правила с Rule ID=1 - получаем фолдинг для всех элементов;
>>> Folds: 1 правило с Parent ID=1 и Rule ID=2 - получаем правило, ограничивающее область для атрибутов;
>>> Quotes: 4 правила с Parent ID=2 - и вот теперь, собственно, подсветка атрибутов.

Получается универсально и на типичных XML вы не ощущаете (иначе, думаю, давно пошли бы репорты), но чем больше документ - тем заметнее становится. Скорость с fb2 удалось поднять, отказавшись от универсальных правил в Folds (только конкретные элементы, они же заранее известны из описания формата) и такого каскада для подсветки атрибутов.

Убрал очепятку.
Last edited by Skif_off on Sun Jun 05, 2016 11:41 am, edited 1 time in total.
Post Reply