LUA Format Block

Здесь можно обсудить ваш любимый плагин.
ladserg
Posts: 234
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 5 times
Been thanked: 6 times

LUA Format Block

Post by ladserg »

Latest post of the previous page:

Shmuel wrote:
plastikat wrote: При вызове в редакторе (и выделенном блоке) не делает ничего
Прошу прощения за плохой совет: давал его, не попробовав на практике. Сейчас попробовал - плагин действительно не работает в 4040, даже после коррекции MinFarVersion. Причина - в способе проверки области вызова плагина: вместо традиционной проверки параметра OpenFrom (для чего этот параметр и предназначен) автор использует far.MacroGetArea().

Code: Select all

function main.Open(OpenFrom, Guid, Item)
    -- Если мы не в редакторе, то уходим отсюда нафиг
    if far.MacroGetArea()~=F.MACROAREA_EDITOR then
        return
    end
Если приведете как нужно правильно (хотя вроде сбоев с последней версии плагина не было), то я изменю код и обновлю плагин.

Настроек у плагина нет, да и идей по поводу того, что настраивать у него, пока нет.

А такой способ проверки - это просто атавизм, я изначально писал обычный макрос, который вешался на быструю клавишу, ну и воткнул проверку, потом макрос обернул в плагин.
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

LUA Format Block

Post by Shmuel »

Так, как вы сделали - тоже правильно, но не для 4040. А делают обычно так:

Code: Select all

if OpenFrom ~= F.OPEN_EDITOR then
    return
end
ladserg
Posts: 234
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 5 times
Been thanked: 6 times

LUA Format Block

Post by ladserg »

Shmuel wrote:Так, как вы сделали - тоже правильно, но не для 4040. А делают обычно так:

Code: Select all

if OpenFrom ~= F.OPEN_EDITOR then
    return
end
Спасибо, сейчас изменю, скачаю 4040, погоняю в ней и обновлю плагин.
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

LUA Format Block

Post by Shmuel »

А, вы там и вызов из макросов обрабатываете. Тогда лучше так:

Code: Select all

if OpenFrom == F.OPEN_EDITOR then
    .......
elseif OpenFrom == F.OPEN_FROMMACRO then
    .......
end
ladserg
Posts: 234
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 5 times
Been thanked: 6 times

LUA Format Block

Post by ladserg »

Пока строки:

Code: Select all

if far.MacroGetArea()~=F.MACROAREA_EDITOR then
    return
end
заменил на:

Code: Select all

if OpenFrom ~= F.OPEN_EDITOR and OpenFrom~=F.OPEN_FROMMACRO then
    return
end
Проверил в 4040, работает.

Т.к. на пларинге какие то проблемы и он не даёт ни файл залить ни описание поменять, то прикрепил архив с обновлённым плагином в анонс.
User avatar
4ekucT
Posts: 507
Joined: Tue 05 Apr, 2005 23:44
Location: Беларусь, Минск

LUA Format Block

Post by 4ekucT »

Как то не работает форматирование абзаца без выделения блока. Форматирует только текущую строку. Настройка Paragraph detection = By blank line
ladserg
Posts: 234
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 5 times
Been thanked: 6 times

LUA Format Block

Post by ladserg »

4ekucT wrote:Как то не работает форматирование абзаца без выделения блока. Форматирует только текущую строку. Настройка Paragraph detection = By blank line
Всё верно, именно так и задумано. В описании (в помощи) именно так и написано:
Плагин преобразует выделенный блок текста в абзац, форматируя его в соответствии с заданными параметрами.

Строка считается принадлежащей форматируемому абзацу, если в ней выделен хотя бы один символ. Если выделенного блока нет, то форматируется только та строка, в которой находится курсор.
User avatar
4ekucT
Posts: 507
Joined: Tue 05 Apr, 2005 23:44
Location: Беларусь, Минск

LUA Format Block

Post by 4ekucT »

А то есть Paragraph detection начинает работать только внутри выделенного блока, я правильно понял?
ladserg
Posts: 234
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 5 times
Been thanked: 6 times

LUA Format Block

Post by ladserg »

4ekucT wrote:А то есть Paragraph detection начинает работать только внутри выделенного блока, я правильно понял?
Да, всё верно. Можно воспользоваться комбинацией клавиш Ctrl+A, если необходимо выделить весь текст в файле.
User avatar
John Doe
Бюрократ
Posts: 13847
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

LUA Format Block

Post by John Doe »

В модуле settings два бага:
В строке 11 возвращается неинициализированная переменная s.
В строке 30 используется неинициализированная переменная o.

Аналогичная проблема и в LUA File List
ladserg
Posts: 234
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 5 times
Been thanked: 6 times

LUA Format Block

Post by ladserg »

John Doe wrote:В модуле settings два бага:
В строке 11 возвращается неинициализированная переменная s.
В строке 30 используется неинициализированная переменная o.

Аналогичная проблема и в LUA File List
Хм, косяк :)
Исправил, залил исправленное на плагринг. Спасибо за помощь.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

LUA Format Block

Post by sToLp »

Если в диалоге 'Форматирование блока' поле 'Первая строка' или/и поле 'Правая граница' оставить пустым, плагин и дерётся — удаляет обрабатываемые строки.
ladserg
Posts: 234
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 5 times
Been thanked: 6 times

LUA Format Block

Post by ladserg »

sToLp wrote:Если в диалоге 'Форматирование блока' поле 'Первая строка' или/и поле 'Правая граница' оставить пустым, плагин и дерётся — удаляет обрабатываемые строки.
Добавлена проверка числовых данных полей ввода диалога плагина на корректность, и их реинициализация в случае их некорректности.

Залил исправленное на плагринг. Спасибо за помощь.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

LUA Format Block

Post by sToLp »

ladserg
Спасибо за правку.

При этом надо отметить, что как то непривычно фактически при отсутствии отступов в меню указывать:
Левая граница 1
Первая строка 1
В этом случае, имхо, лучше бы 0 и 0.
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

LUA Format Block

Post by Wave »

И сошлись паскалисты с сишниками в смертной битве: с какой позиции элементы считать, с нуля или единицы.

Ладно для элементов массивов как-то привык, что первый элемент — нулевой. Но из видимого на экране, видимого, Карл! нулевым называть первый всё-таки странно.
Пользуюсь ФАРом больше 20 лет © собирательный.
User avatar
HaRT
Moderator
Posts: 10854
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

LUA Format Block

Post by HaRT »

Wave, думаю, тут вопрос в другом, а именно, как понимать эти числа: то ли как отступы (тогда с нуля), то ли как номер строки/столбца, с которых начинается текст (тогда с единицы).
Фар есть инструмент, а не нянька. © 2009 DrKnS
Post Reply

Return to “Обсуждение плагинов”