Page 13 of 40

Posted: Sun May 15, 2016 5:27 pm
by Kley
LonerD
*USECACHE думаю для использования в коде скрипта.
Посмотрите пример к Call("Coder::Settings", 12, "ALIAS", *BOOL).

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

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

Posted: Thu Jun 02, 2016 11:42 pm
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.

Posted: Fri Jun 03, 2016 11:19 am
by Drugmix
А есть ли какой-то шанс, что regex правила подсветки в .coder начнут работать предсказуемо? Правда, даже если и начнут - без каскадного применения правил это всё равно довольно бесполезно :(

Posted: Fri Jun 03, 2016 6:02 pm
by Skif_off
Drugmix
А что сейчас работает непредсказуемо?

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

Posted: Fri Jun 03, 2016 9:13 pm
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.

Posted: Sat Jun 04, 2016 6:49 am
by YuS
Drugmix wrote:А есть ли какой-то шанс, что regex правила подсветки в .coder начнут работать предсказуемо?
Вопрос из серии:
"Вы давно перестали пить водку по утрам?" :)

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

Posted: Sat Jun 04, 2016 8:24 am
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?

Posted: Sat Jun 04, 2016 11:24 am
by KDJ
Instructor
Yes, it helped. Now works correctly. Thanks.

Posted: Sat Jun 04, 2016 12:38 pm
by Instructor
Исправлено: освобождение неинициализированной памяти при использовании настройки "Сохранять регистр введённых символов" (Coder::AutoComplete).

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


Coder plugin v19.6

Posted: Sat Jun 04, 2016 8:46 pm
by Skif_off
По Ruby: считать пробелы было не самой умной идеей :) Присваиваем переменной результат условного выражения:

Code: Select all

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

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

Posted: Sat Jun 04, 2016 8:58 pm
by Lenchik
Skif_off
Если по фолдингу

Code: Select all

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

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

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

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

Posted: Sun Jun 05, 2016 7:20 am
by Lenchik
А вообще в чём проблема ситуации, когда есть вложенность и у разных правил фолдинга одинаковые слова окончания? Кодер не умеет такие ситуации понимать? Он же в некоторых случаях заметно подтормаживает как раз изза того, что фолдинг отрабатывает (про fb2 такие истории тут были, насколько помню).

Posted: Sun Jun 05, 2016 9:26 am
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 (только конкретные элементы, они же заранее известны из описания формата) и такого каскада для подсветки атрибутов.

Убрал очепятку.