- При вызове плагина с комстроки, плагин проверяет наличие глобальной функции
LuaMacroCommandLine
. - Если такая ф-ция есть - она вызывается, и ей передаётся комстрока.
- Если ф-ция возвращает true, то плагин больше ничего не делает.
- Если ф-ции нет, либо она возвращает nil/false/ничего, происходит обычная обработка комстроки.
Экспериментально: ProcessFarCommandLine
-
- Posts: 6819
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
Экспериментально: ProcessFarCommandLine
А что если сделать так:
-
- Posts: 6819
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
Re: lm:post2
Можно, не трогая API Фара, передавать любую комстроку в LuaMacro и задействовать механизм, аналогичный изложенному в моём предыдущем посте. Попробовал, работает. Однако делать не буду без одобрения Far Group. Если одобрено не будет, сделаю только для комстроки LuaMacro.John Doe wrote:Вот если это в апи фара, и можно было бы любую комстроку обработать...
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Re: lm:post2
Для одобрения или неодобрения нужно больше информации.
Что именно предлагается, и как именно реализовать.
Не зная деталей я сомневаюсь, что описанное можно нормально сделать без апи.
В идеале должно быть так: при запуске чего-либо из командной строки фар передаёт текст комстроки плагину (может быть и не один).
Плагин либо выполняет какие-либо действия самостоятельно, либо трансформирует текст и передаёт на запуск фару.
Делать это только для комстроки LuaMacro - это совсем другое, применений несравнимо меньше.
Что именно предлагается, и как именно реализовать.
Не зная деталей я сомневаюсь, что описанное можно нормально сделать без апи.
В идеале должно быть так: при запуске чего-либо из командной строки фар передаёт текст комстроки плагину (может быть и не один).
Плагин либо выполняет какие-либо действия самостоятельно, либо трансформирует текст и передаёт на запуск фару.
Делать это только для комстроки LuaMacro - это совсем другое, применений несравнимо меньше.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Re: lm:post2
Как именно плагин будет получать управление?
Где это может работать (комстрока? история? асооциации? ...?)
Преимущества такой реализации перед плагиновым АПИ?
Где это может работать (комстрока? история? асооциации? ...?)
Преимущества такой реализации перед плагиновым АПИ?
-
- Posts: 6819
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
Re: lm:post2
Предполагается использовать уже изложенный механизм.
Фар перед исполнением введенной комстроки вызывает LuaMacro по уже имеющемуся приватному API и передаёт ему комстроку. LuaMacro вызывает предопределённую глобальную ф-цию, например
Фар перед исполнением введенной комстроки вызывает LuaMacro по уже имеющемуся приватному API и передаёт ему комстроку. LuaMacro вызывает предопределённую глобальную ф-цию, например
ProcessFarCommandLine
, затем передаёт Фару результат: нужно исполнять комстроку, или нет.- zg
- zero-gravity
- Posts: 6016
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Re: lm:post2
а вы не сомневайтесь. кастомная сортировка работает же.John Doe wrote:Не зная деталей я сомневаюсь, что описанное можно нормально сделать без апи.
может: true — исполнять то, что есть, false — не иссполнять, string — исполнять то, что в строке?Shmuel wrote:затем передаёт Фару результат: нужно исполнять комстроку, или нет.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Re: lm:post2
Из истории? Через ассоциации? Из меню пользователя? Из Apply Command?Shmuel wrote:перед исполнением введенной комстроки вызывает LuaMacro
- zg
- zero-gravity
- Posts: 6016
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Re: lm:post2
оно из одного места выполняется. какие проблемы?John Doe wrote:Из истории? Через ассоциации? Из меню пользователя? Из Apply Command?Shmuel wrote:перед исполнением введенной комстроки вызывает LuaMacro
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
lm:post2
Проблем нет, идея отличная, неоднократно высказывалась в разных формах (например).
Хочу чтобы всё было предусмотрено.
Имхо функция на входе должна иметь не только саму строку, но и информацию откуда вызывается.
И на выходе не только false/true, но и возможность вернуть трансформированую строку.
Хочу чтобы всё было предусмотрено.
Имхо функция на входе должна иметь не только саму строку, но и информацию откуда вызывается.
И на выходе не только false/true, но и возможность вернуть трансформированую строку.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: lm:post2
Иногда хочется различать. В PowerShellFar я хотел бы различать, чтобы знать, добавлять команду в историю (комстрока) или нет (меню и ассоциации). Возможности нет, пришлось костыль ввести - если команда заканчивается на #, то она не добавляется в историю.John Doe wrote:Из истории? Через ассоциации? Из меню пользователя? Из Apply Command?Shmuel wrote:перед исполнением введенной комстроки вызывает LuaMacro
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Re: lm:post2
Вроде когда-то обсуждалась идея о том, чтобы перед выполнением отправлять событие плагинам.
Каким-то плагинам надо вести историю, а какие-то могли бы трансформировать комстроку, или выполнять свои действия.
Каким-то плагинам надо вести историю, а какие-то могли бы трансформировать комстроку, или выполнять свои действия.
-
- Posts: 6819
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
Re: lm:post2
Сделать элементарно, но никто ещё не привёл пример полезности подмены комстроки.zg wrote:может: true — исполнять то, что есть, false — не иссполнять, string — исполнять то, что в строке?
Честно говоря, изначальной идеей был только перехват собственно комстроки.John Doe wrote:Из истории? Через ассоциации? Из меню пользователя? Из Apply Command?
Если что-то забудем, можно будет позже добавить. Необязательно, чтобы в первом же билде всё было учтено.John Doe wrote:Хочу чтобы всё было предусмотрено.
Насколько я понимаю, zg не против, другие разработчики могут высказать своё мнение.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Re: lm:post2
Собственные алиасы.Shmuel wrote:Сделать элементарно, но никто ещё не привёл пример полезности подмены комстроки.
Поиск файлов для запуска в нестандартных местах.
Запуск lua-скриптов без указания префикса + поиск их в заданных папках.
Различная обработка командной строки в зависимости от контекста. Например, файлы по одной и той же маске из какой-то папки надо запускать иначе, чем из другой.
...