Экспериментально: ProcessFarCommandLine

Здесь обсуждается всё, что касается макросов.
Shmuel
Posts: 4906
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 10 times
Been thanked: 118 times

Re: lm:post2

Postby Shmuel » Sat 03 May, 2014 16:15

Latest post of the previous page:

Закоммитил. Экспериментируйте.
Дальнейшее участие коллег из Far Group, лучше меня знающих код Фара, было бы весьма желательным.

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

Re: ProcessFarCommandLine

Postby John Doe » Sat 03 May, 2014 16:37

Code: Select all

Экспериментально:
Перед обработкой комстроки Фар передаёт её плагину LuaMacro, который вызывает глобальную функцию
ProcessFarCommandLine(CmdLine), если таковая существует. Если функция не существует, либо возвращает
false/nil/ничего, Фар продолжает обработку комстроки. Если возвращает стринг, то Фар обрабатывает
его как новое значение комстроки. Если возвращает true, дальнейшая обработка комстроки Фаром не
производится.
Как бы сделать возможным независимое функционирование нескольких таких функций.

Shmuel
Posts: 4906
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 10 times
Been thanked: 118 times

Re: ProcessFarCommandLine

Postby Shmuel » Sat 03 May, 2014 16:53

John Doe wrote:Как бы сделать возможным независимое функционирование нескольких таких функций.

Можно по-разному. Один из способов - ввести новый тип события: group=CommandLine.

Shmuel
Posts: 4906
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 10 times
Been thanked: 118 times

Re: Экспериментально: ProcessFarCommandLine

Postby Shmuel » Sat 03 May, 2014 18:34

Функция Фара, откуда идёт вызов LuaMacro, кроме CmdLine, получает ещё 7 булевых параметров:
  • AlwaysWaitFinish
  • SeparateWindow
  • DirectRun
  • WaitForIdle
  • RunAs
  • RestoreCmd
  • FromPanel
Возможно, некоторые из них, или все, имеет смысл тоже передавать плагину. На данный момент ещё не разобрался.

Smitis
Posts: 1427
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 9 times
Been thanked: 21 times
Contact:

Re: Экспериментально: ProcessFarCommandLine

Postby Smitis » Sat 03 May, 2014 19:28

Shmuel wrote:Функция Фара, откуда идёт вызов LuaMacro, кроме CmdLine, получает ещё 7 булевых параметров:
  • AlwaysWaitFinish
  • SeparateWindow
  • DirectRun
  • WaitForIdle
  • RunAs
  • RestoreCmd
  • FromPanel
Возможно, некоторые из них, или все, имеет смысл тоже передавать плагину. На данный момент ещё не разобрался.

Может просто передавать их одним параметром, как набор флагов, а там разберёмся?
Разум когда-нибудь победит.

User avatar
DrKnS
Posts: 4433
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 2 times
Been thanked: 101 times
Contact:

Re: Экспериментально: ProcessFarCommandLine

Postby DrKnS » Sat 03 May, 2014 19:52

Господа, на всякий случай, чтобы не было потом обид типа "ааа, мне мою кастомную сортировку сломали", хочу предупредить заранее: это внутренняя кухня, меняться там всё может (и будет) как угодно, когда угодно, и, разумеется, без предупреждений.

Shmuel
Posts: 4906
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 10 times
Been thanked: 118 times

Re: Экспериментально: ProcessFarCommandLine

Postby Shmuel » Sat 03 May, 2014 19:57

DrKnS wrote:хочу предупредить заранее: это внутренняя кухня, меняться там всё может (и будет) как угодно, когда угодно, и, разумеется, без предупреждений.

После того, как изменения сабжа устаканятся, они перестанут быть внутренней кухней, не? По крайней мере их API. Ведь, по сути дела, добавляется API.

User avatar
zg
zero-gravity
Posts: 5184
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 39 times
Contact:

Re: Экспериментально: ProcessFarCommandLine

Postby zg » Sat 03 May, 2014 20:04

Shmuel wrote:После того, как изменения сабжа устаканятся, они перестанут быть внутренней кухней, не? По крайней мере их API. Ведь, по сути дела, добавляется API.
если апи будет для всех плагинов, да. если только для luamacro — нет.

Shmuel
Posts: 4906
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 10 times
Been thanked: 118 times

Re: Экспериментально: ProcessFarCommandLine

Postby Shmuel » Sat 03 May, 2014 20:06

Тогда нет смысла это делать.

User avatar
zg
zero-gravity
Posts: 5184
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 39 times
Contact:

Re: Экспериментально: ProcessFarCommandLine

Postby zg » Sat 03 May, 2014 20:22

Shmuel wrote:Тогда нет смысла это делать.
почему?

Shmuel
Posts: 4906
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 10 times
Been thanked: 118 times

Re: Экспериментально: ProcessFarCommandLine

Postby Shmuel » Sat 03 May, 2014 20:27

Потому что (ИМХО):
1. Если пользователям предоставляется фича, она должна поддерживаться. Лично я не могу поручиться, что если кто-то её через месяц сломает, у меня будет время чинить.
2. LuaMacro стоИт особняком от других плагинов, это не просто "ещё один плагин". Его можно рассматривать, как часть Фара. И, естественно, не потому, что именно я им занимаюсь.

User avatar
zg
zero-gravity
Posts: 5184
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 39 times
Contact:

Re: Экспериментально: ProcessFarCommandLine

Postby zg » Sat 03 May, 2014 21:20

Shmuel wrote:1. Если пользователям предоставляется фича, она должна поддерживаться. Лично я не могу поручиться, что если кто-то её через месяц сломает, у меня будет время чинить.
хорошо, напиши мне, я починю.
Shmuel wrote:2. LuaMacro стоИт особняком от других плагинов, это не просто "ещё один плагин". Его можно рассматривать, как часть Фара. И, естественно, не потому, что именно я им занимаюсь.
вот именно поэтому нет смысла что-то там замораживать и как бы выносить наружу.

Shmuel
Posts: 4906
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 10 times
Been thanked: 118 times

Re: Экспериментально: ProcessFarCommandLine

Postby Shmuel » Sat 03 May, 2014 21:32

zg wrote:хорошо, напиши мне, я починю.
Заявление хорошее, особенно если удалить из него среднюю часть.
zg wrote:вот именно поэтому нет смысла что-то там замораживать и как бы выносить наружу.
А как же не выносить наружу, то-есть для макросов, API функции ProcessFarCommandLine ?

User avatar
zg
zero-gravity
Posts: 5184
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 39 times
Contact:

Re: Экспериментально: ProcessFarCommandLine

Postby zg » Sat 03 May, 2014 23:29

Shmuel wrote:
zg wrote:хорошо, напиши мне, я починю.
Заявление хорошее, особенно если удалить из него среднюю часть.
я не пользуюсь всем функционалом фара в жизни. в ProcessFarCommandLine тоже не вижу пока для себя какой-либо пользы. поэтому если оно сломается, сам я скорее всего не замечу, сорри.
Shmuel wrote:
zg wrote:вот именно поэтому нет смысла что-то там замораживать и как бы выносить наружу.
А как же не выносить наружу, то-есть для макросов, API функции ProcessFarCommandLine ?
вот всё что касается ProcessFarCommandLine конечно выносится, и выносить надо аккуратно и сто раз подумав. я например не очень понимаю кому и зачем в ProcessFarCommandLine может понадобится одно из значений:
  • AlwaysWaitFinish
  • SeparateWindow
  • DirectRun
  • WaitForIdle
  • RunAs
  • RestoreCmd
  • FromPanel

Smitis
Posts: 1427
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 9 times
Been thanked: 21 times
Contact:

Re: Экспериментально: ProcessFarCommandLine

Postby Smitis » Sun 04 May, 2014 14:38

А в чём причина отката и прекращение поддержки ProcessFarCommandLine?
Разум когда-нибудь победит.

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

Re: Экспериментально: ProcessFarCommandLine

Postby John Doe » Mon 05 May, 2014 09:27

Да, жаль. Я даже не успел попробовать.
Из обсуждения причина не ясна.
Ведь если что когда поломается - есть кому чинить. А для сообщений об ошибках есть мантис.

Smitis
Posts: 1427
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 9 times
Been thanked: 21 times
Contact:

Экспериментально: ProcessFarCommandLine

Postby Smitis » Fri 29 Apr, 2016 10:22

После обсуждения в Подружить Far и bash (Cygwin и другие) и с появлением http://bugs.farmanager.com/view.php?id=3223 может стоит вернуть ProcessFarCommandLine?
Теоретически, это решило бы проблему использования альтернативных оболочек - проанализировали comspec, выполнили необходимые преобразования и выполнили через win.system, нет - вернули строку Far-у и там уже включается стандартный механизм?
Разум когда-нибудь победит.


Return to “Обсуждение макросов”

Who is online

Users browsing this forum: No registered users and 6 guests