ProcessMacroFuncW

Разработка Far.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: ProcessMacroFuncW

Post by Skirda »

Latest post of the previous page:

Shmuel wrote:В качестве нейм-спейсов можно использовать префиксы командной строки плагинов.
хмм... пельмени с малиновым вареньем? оригинально.
We are the Borg. You will be assimilated.
So Say We All!
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: ProcessMacroFuncW

Post by NightRoman »

Skirda wrote:Так, понял.
Это не относится к сабжу. Идея нормальная, но несколько в иной плоскости. Для этого нужно допилить каллплюгин. Считай, что это другой вариант вызова макрофункций (который давай обсуждать не здесь).
Это очень хорошо. Обсуждать только вроде тут нечего, прямолинейней варианта, чем обобщение вызова из комстроки по префиксу на случай макросов, наверное, придумать нельзя. Мне по-прежнему кажется, что было бы практично начать именно с этого варианта. Мои нужды (FarNet и его модули и PowerShellFar и его команды и скрипты) он покроет на 100%, думаю, что и многим другим плагинам покроет нужды на 100% тоже. Дальше можно было бы продолжить работу и над более продвинутым вариантом, чтобы покрыть потребности удобного кодирования макросов. Но хозяин - барин, все в порядке, ждем любого варианта.

P.S.

Маленький пример для наглядности, да и хочется помечтать просто.

Дано: хотим в PowerShellFar для редактора реализовать операцию "выделенный текст преобразовать в верхний регистр".

1) Как сейчас.
- надо так или иначе создать пункт меню, который вызовет команду преобразования, надо кодить UI
- надо создать макрос, который эмулирует вызов этого меню:

Code: Select all

F11 <хоткей PowerShellFar> <хоткей подменю> <хоткей данной команды ToUpper>
Соответственно надо озаботится всеми хоткеями и т.п.
- ну и где-то надо разместить команду PowerShell

Code: Select all

$Far.Editor.SetSelectedText($Far.Editor.GetSelectedText().ToUpper())
2) Как было бы с "допиленным" callplugin:
- создаем макрос для редактора

Code: Select all

callplugin(">: $Far.Editor.SetSelectedText($Far.Editor.GetSelectedText().ToUpper())")
Все. Не нужны UI меню, хоткеи и т.п. Красота...
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: ProcessMacroFuncW

Post by NightRoman »

John Doe wrote:Мысль хорошая, особенно если обобщить её до функции Exec(), способной запускать всё.
Я сначала не понял, что имелось в виду, теперь дошло - обычная Фаровская комстрока, только из макроса, хоть с префиксом плагина, хоть без. Было бы очень неплохо, да.
User avatar
SUSim
Posts: 1636
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 26 times

Re: ProcessMacroFuncW

Post by SUSim »

NightRoman wrote:
John Doe wrote:Мысль хорошая, особенно если обобщить её до функции Exec(), способной запускать всё.
Было бы очень неплохо, да.
про это писалось уже не раз... я тогда свой плагин выкину! и пункт юзерменю !??! не нужен будет, и история портиться не будет, и .... ПЛЮСОВ от обертки выполнения команды комстроки из макросов много !!!

но это не совсем по этой теме :(
SimSU ··· ·· -- ··· ··-
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: ProcessMacroFuncW

Post by Skirda »

NightRoman wrote:2) Как было бы с "допиленным" callplugin:
- создаем макрос для редактора

Code: Select all

callplugin(">: $Far.Editor.SetSelectedText($Far.Editor.GetSelectedText().ToUpper())")
Здесь выход один (что бы не ломать callplugin) - настроить первый параметр у callplugin в 0 (типа, обрабатываем префикс)
...или удавить callplugin (перенеся наработки на новую, всем удобную функцию)
We are the Borg. You will be assimilated.
So Say We All!
Post Reply

Return to “Development”