[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Здесь выкладываются готовые к использованию макросы и скрипты.
User avatar
Aidar
Posts: 533
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 6 times
Contact:

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by Aidar » Mon 21 Aug, 2017 16:55

Latest post of the previous page:

John Doe wrote:
Mon 21 Aug, 2017 15:30
Ещё RH Scripts приводит к багу, обсуждаемому в теме файл открывается со сдвигом влево
1. Это, возможно, lfa_config.
2. У меня не воспроизвелось на Far30b5011.x86.20170821.
Если был сдвиг на одну позицию, ошибка может быть из-за изменений в отсчёте позиции от 0/1.
Такое происходило во время написания скриптов.

Пример: с DM_LISTSETCURPOS может быть проблема в моих пакетах, но я пока не проверял.

User avatar
John Doe
Бюрократ
Posts: 11217
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 14 times
Been thanked: 80 times

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by John Doe » Tue 22 Aug, 2017 07:53

Нет, сдвиг не на 1 позицию, левая граница экрана перемещается в позицию курсора, где бы он ни находился.

Я переформулировал по-своему последовательность действий для воспроизведения ошибки, возможно и у вас повторится.
Если нет, то посоветуйте как изолировать источник ошибки (отключить lfa_config целиком, или отдельные скрипты).

User avatar
Aidar
Posts: 533
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 6 times
Contact:

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by Aidar » Tue 22 Aug, 2017 15:50

John Doe wrote:
Tue 22 Aug, 2017 07:53
отключить lfa_config целиком
Перенести папку Profile\work\scripts\lfa_config в другое место.
John Doe wrote:
Tue 22 Aug, 2017 07:53
отдельные скрипты
В конце файла Profile\work\scripts\lfa_config\_usermenu.lua закомментировать строку с MakeResident.
Это отключит обработку событий.
Аналогично, можно отключить такие строки в конце файла Profile\work\scripts\Rh_Scripts\_usermenu.lua
Если установлен fl_scripts, тоже можно отключить в конце файла Profile\work\scripts\fl_scripts\_usermenu.lua

User avatar
Aidar
Posts: 533
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 6 times
Contact:

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by Aidar » Tue 22 Aug, 2017 16:09

Ошибку воспроизвёл.
Место: Рисование правой границы в редакторе
(файл Profile\work\scripts\lfa_config\editor\vision.lua,
функция lfa_config.drawRightBorder) .
Источник ошибки:

Code: Select all

einfo = einfo or editor.GetInfo()
...
editor.SetPosition(nil, einfo)
Какая-то проблема с LeftPos.

Добавил
einfo.LeftPos = 1
перед
editor.SetPosition(nil, einfo)
Сдвига нет.
Попробовал
einfo.LeftPos = einfo.LeftPos
Сдвиг есть.
Возможно, при событии F.EE_REDRAW в поле GetInfo.LeftPos нет значения или оно некорректное.
Last edited by Aidar on Tue 22 Aug, 2017 16:11, edited 2 times in total.

User avatar
John Doe
Бюрократ
Posts: 11217
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 14 times
Been thanked: 80 times

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by John Doe » Tue 22 Aug, 2017 17:26

А для чего вообще требуется позиционировать курсор при рисовании границы?

User avatar
Aidar
Posts: 533
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 6 times
Contact:

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by Aidar » Tue 22 Aug, 2017 17:53

editor.GetString вызывает смещение позиции (а нужно пройтись по всем видимым строкам файла).

User avatar
Aidar
Posts: 533
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 6 times
Contact:

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by Aidar » Tue 22 Aug, 2017 18:02

Подправленная версия lfa_config.

P.S. Перевыложил.
Attachments
lfa_config-3.1.1.1.7z
(17.15 KiB) Downloaded 12 times
Last edited by Aidar on Tue 22 Aug, 2017 19:54, edited 2 times in total.

User avatar
John Doe
Бюрократ
Posts: 11217
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 14 times
Been thanked: 80 times

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by John Doe » Tue 22 Aug, 2017 18:14

Aidar wrote:
Tue 22 Aug, 2017 17:53
editor.GetString вызывает смещение позиции
Вроде бы не должно, ведь используется режим 3

Code: Select all

3  = returns: StringText,StringEOL;  changes current position: no

User avatar
John Doe
Бюрократ
Posts: 11217
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 14 times
Been thanked: 80 times

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by John Doe » Tue 22 Aug, 2017 19:31

Aidar wrote:
Tue 22 Aug, 2017 18:02
Подправленная версия lfa_config.
Исправление некорректно и привносит другую проблему.
Правильным будет проверять что EditorID==ei.EditorID, и если нет, то не выполнять никаких действий.

User avatar
Aidar
Posts: 533
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 6 times
Contact:

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by Aidar » Tue 22 Aug, 2017 19:44

John Doe wrote:
Tue 22 Aug, 2017 19:31
Правильным будет
Перевыложил.

User avatar
John Doe
Бюрократ
Posts: 11217
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 14 times
Been thanked: 80 times

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by John Doe » Tue 22 Aug, 2017 19:52

Aidar wrote:
Tue 22 Aug, 2017 19:44
Перевыложил.
Тот же самый архив.
И я вот закомментировал вызов editor.SetPosition, вроде бы ничего не изменилось, всё работает. Может он лишний?

User avatar
Aidar
Posts: 533
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 6 times
Contact:

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by Aidar » Tue 22 Aug, 2017 19:55

John Doe wrote:
Tue 22 Aug, 2017 19:52
Тот же самый архив.
Странно. Ещё раз перевыложил, скачал и проверил: должен быть новый.
John Doe wrote:
Tue 22 Aug, 2017 19:52
Может он лишний?
Может быть: перевёл GetString на 3, а лишнее убрать забыл. Надо будет протестировать на разных файлах.
Last edited by Aidar on Tue 22 Aug, 2017 19:57, edited 3 times in total.

User avatar
John Doe
Бюрократ
Posts: 11217
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 14 times
Been thanked: 80 times

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by John Doe » Tue 22 Aug, 2017 21:28

John Doe wrote:
Tue 22 Aug, 2017 19:31
Правильным будет проверять что EditorID==ei.EditorID, и если нет, то не выполнять никаких действий.
А ещё правильнее будет в resident.lua вместо

Code: Select all

local ei = editor.GetInfo()
использовать

Code: Select all

local ei = editor.GetInfo(id)
После этого оба следующих условия можно убрать.

Update
А нет, этого недостаточно, надо ещё повсюду в функции редактора передавать этот id вместо nil
Last edited by John Doe on Tue 22 Aug, 2017 21:32, edited 1 time in total.

Post Reply

Return to “Полезные макросы и скрипты”