Как выполнять операции в редакторе из событий плагина?

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Post Reply
xarx
Posts: 125
Joined: Tue 23 Nov, 2010 12:06

Как выполнять операции в редакторе из событий плагина?

Post by xarx »

У меня плагин для редактора, который не делает обработку текста в одной трансакции. Я бы хотел его "исправить" с помощью макросов на Lua.
С нажиманием кнопки "ОК" в диалоге плагина нужно сделать

Code: Select all

Editor.Undo(0) --start transaction
и после операций

Code: Select all

Editor.Undo(1) --end transaction
Как это сделать? Проблема в том, что "Editor" не показывает на редактор, для которого был плагин выполнен, а на какой то локальный редактор диалога плагина.
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: Как выполнять операций на редакторе из собитий плагина?

Post by John Doe »

xarx wrote:Проблема в том, что "Editor" не показывает на редактор, для которого был плагин выполнен, а на какой то локальный редактор диалога плагина.
Encyclopedia\luafar_manual.chm::/283.html
result = editor.UndoRedo (EditorId, Command)

P.S.
Я бы попробовал проще: ставить маркер начала блока перед открытием диалога, и маркер конца - после закрытия, независимо от того какая кнопка в диалоге была нажата.
xarx
Posts: 125
Joined: Tue 23 Nov, 2010 12:06

Re: Как выполнять операций на редакторе из собитий плагина?

Post by xarx »

Спасибо снова! Это только меня, кто не ориентируется в постоянной документации и не сумеет найти чего требует?
xarx
Posts: 125
Joined: Tue 23 Nov, 2010 12:06

Re: Как выполнять операций на редакторе из собитий плагина?

Post by xarx »

John Doe wrote:Я бы попробовал проще: ставить маркер начала блока перед открытием диалога, и маркер конца - после закрытия, независимо от того какая кнопка в диалоге была нажата.
Я выполняю плагин из макроса с использованием

Code: Select all

Plugin.Menu(GUIDBlockProcessor)
но кажется, что это асинхронное выполнение, то не знаю, где в этом случае завершaть трансакцию.
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: Как выполнять операций на редакторе из собитий плагина?

Post by John Doe »

xarx wrote:Это только меня, кто не ориентируется в постоянной документации и не сумеет найти чего требует?
Не понял вопроса.
xarx wrote:

Code: Select all

Plugin.Menu(GUIDBlockProcessor)
но кажется, что это асинхронное выполнение, то не знаю, где в этом случае завершaть трансакцию.
Я не утверждаю, что предложенный мной вам подходит. Пробуйте по-своему.
xarx
Posts: 125
Joined: Tue 23 Nov, 2010 12:06

Re: Как выполнять операций на редакторе из собитий плагина?

Post by xarx »

John Doe wrote:
xarx wrote:Это только меня, кто не ориентируется в постоянной документации и не сумеет найти чего требует?
Не понял вопроса.
Is it only me who cannot find what he needs in the current far documentation? Because you have already pointed me several times to a page in the documentation that I wasn't able to find myself.
I have written several times, that the documentation looks very scattered to me, but this may be my own personal feeling only.
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: Как выполнять операции в редакторе из событий плагина?

Post by John Doe »

Вопросов на форуме мало потому что мало кто пытается вникнуть.
Документация действительно разбросана, и это реальная проблема для всех.

И объединить документацию это довольно трудоёмкая задача.

1. После перехода на lua макросам доступны 2 разных api
- API макросов
- API плагинов
Во многом они пересекаются, что вносит дополнительную путаницу

2. Новое API макросов описывается в macroapi_manual.chm, но для понимания нужна и старая документация в FarEncyclopedia.ru.chm

3. API lua-плагинов описывается в luafar_manual.chm, но очень кратко, и для пониматия тоже приходится обращаться к FarEncyclopedia.ru.chm

Чтобы было немного проще - я добавлял перекрёстные ссылки в macroapi_manual.chm и luafar_manual.chm (для быстрого перехода к статьям Энциклопеции)
Модифицированные версии можно скачать в шапках тем LuaMacro и LuaFAR

4. По обработке событий документация сильно отстаёт. Кое-что собрано здесь: http://forum.farmanager.com/viewtopic.php?f=15&t=7693
xarx
Posts: 125
Joined: Tue 23 Nov, 2010 12:06

Re: Как выполнять операции в редакторе из событий плагина?

Post by xarx »

Спасибо за ваше время. Я бы помог, но эту работу дольжен сделать кто-нибуть кто разумеет Far-у хорошо, и тоже мои владения русским языком являются недостаточными.
John Doe wrote:Чтобы было немного проще - я добавлял перекрёстные ссылки в macroapi_manual.chm и luafar_manual.chm (для быстрого перехода к статьям Энциклопеции)
Модифицированные версии можно скачать в шапках тем LuaMacro и LuaFAR
И почему это не в дистрибуции?
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: Как выполнять операции в редакторе из событий плагина?

Post by John Doe »

xarx wrote:И почему это не в дистрибуции?
Здесь это оффтопик, поэтому обсуждать не будем. Но примерно так:
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: Как выполнять операций на редакторе из собитий плагина?

Post by John Doe »

xarx wrote:Я выполняю плагин из макроса с использованием

Code: Select all

Plugin.Menu(GUIDBlockProcessor)
но кажется, что это асинхронное выполнение, то не знаю, где в этом случае завершaть трансакцию.
Кстати с помощью mmode(3,x) для Plugin.Call можно выбирать синхронный или асинхронный режим выполнения.
Для Plugin.Menu это не реализовано, но может быть тоже возможно.

Стоит поместить пожелание на багтрекер.
Post Reply

Return to “Нужна помощь”