Как читать far:config из макроса/плагина?

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

Re: Как читать far:config из макроса/плагина?

Post by Shmuel » Thu 05 Sep, 2013 18:03

Latest post of the previous page:

Acerbic wrote:итак, посоветуйте хак что ли, читать/писать закрытые настройки far:config из плагина. Конкретно хочу "Cmdline.PromptFormat"

Code: Select all

lm:post far.Message(Far.Cfg_Get("Cmdline","PromptFormat"))
1. Писать таким образом нельзя, только читать.
2. Закрытые настройки не являются частью API плагинов и их формат может измениться в один прекрасный день без предупреждения.

Acerbic
Posts: 80
Joined: Wed 07 Apr, 2010 12:30
Been thanked: 2 times

Re: Как читать far:config из макроса/плагина?

Post by Acerbic » Thu 05 Sep, 2013 18:09

Shmuel wrote:

Code: Select all

lm:post far.Message(Far.Cfg_Get("Cmdline","PromptFormat"))
1. Писать таким образом нельзя, только читать.
Да про это я в курсе. Хотелось бы писать тоже.
Shmuel wrote: 2. Закрытые настройки не являются частью API плагинов и их формат может измениться в один прекрасный день без предупреждения.
И пусть не являются, пусть могут быть без предупреждения изменены. Я предпочту иметь плагин который работает до какого-то неизвестного момента в будущем, а потом потребует исправлений, чем вообще не иметь этого плагина. Разве не логично? Всё равно стоит открыть.

Я предпочёл бы конечно иметь "легальную" возможность писать-читать, но за неимением таковой спрашиваю, может у людей есть хак какой. Типа сканера памяти или хуки там хитрые - что-то за пределами моих возможностей, но вдруг кто-то уже столкнулся и решил вопрос?

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

Re: Как читать far:config из макроса/плагина?

Post by zg » Thu 05 Sep, 2013 21:10

Acerbic wrote:Хотелось бы писать тоже.
зачем?

Shmuel
Posts: 5747
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 205 times

Re: Как читать far:config из макроса/плагина?

Post by Shmuel » Thu 05 Sep, 2013 21:37

Acerbic wrote:Я предпочёл бы конечно иметь "легальную" возможность писать-читать, но за неимением таковой спрашиваю, может у людей есть хак какой. Типа сканера памяти или хуки там хитрые - что-то за пределами моих возможностей, но вдруг кто-то уже столкнулся и решил вопрос?
Ну, например, можно действовать в этом направлении.

Acerbic
Posts: 80
Joined: Wed 07 Apr, 2010 12:30
Been thanked: 2 times

Re: Как читать far:config из макроса/плагина?

Post by Acerbic » Fri 06 Sep, 2013 11:54

zg wrote:
Acerbic wrote:Хотелось бы писать тоже.
зачем?
Была идея реализовать через Cmdline.PromptFormat
Динамическое усечение приглашения для ввода по мере набора команды в комстроке.
т.е. если пустая строка ввода выглядит как

Code: Select all

D:\...am Files\Far3_x86\Plugins\FastFind Enhanced>                                                   ↑
то при наборе команды при приближении к границе, скажем за 5 символов от края,

Code: Select all

D:\...am Files\Far3_x86\Plugins\FastFind Enhanced>hackpentagon.exe -silent -overridenukes 1 -targ    ↑
приглашение начинает усекаться, вплоть до одного символа ">"

Code: Select all

>hackpentagon.exe -silent -overridenukes 1 -target "peopleihate.lst" -broadcast "dienowbastards.avi" ↑
и уже если после этого не хватает места, тогда прокрутка (лучше бы, конечно, поднять панели на 1 строчку вверх, и писать команду с переносом, на 2х строках, но это вообще уже запредельная мечта).
Shmuel wrote:Ну, например, можно действовать в этом направлении.
топик идёт по кругу. Этот вариант я счёл безблагодатным в самом первом посте - БД не отражает текущее состояние FAR.

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

Re: Как читать far:config из макроса/плагина?

Post by zg » Fri 06 Sep, 2013 21:55

Acerbic wrote:Была идея реализовать через Cmdline.PromptFormat
Динамическое усечение приглашения для ввода по мере набора команды в комстроке.
это не будет работать. приглашение не перечитывается после ввода каждого символа.

Acerbic
Posts: 80
Joined: Wed 07 Apr, 2010 12:30
Been thanked: 2 times

Re: Как читать far:config из макроса/плагина?

Post by Acerbic » Sat 07 Sep, 2013 12:57

zg wrote:это не будет работать. приглашение не перечитывается после ввода каждого символа.
Сколько негатива. :ROFL:

Вот я запустил сканер памяти, навострил его на фаровский процесс и нашёл в нём строку, содержащую этот PromptFormat и подредактировал - на следующем же вводе в комстроку подхватилось и новое приглашение стало видно. Вообще же, как я заметил, приглашение обновляется если и не на каждый ввод, то на каждый 3й как минимум. Уж наверняка - когда его перерисовка требуется явно, скажем, при смене пути, или после того, как был отрисован диалог. Вот кстати и решение: буду рисовать бессодержательный пустой диалог без подложки и сразу закрывать его, когда потребуется обновить ком строку. Или вдруг окажется, что вызов RedrawPanel обновляет и комстроку. Короче, решаемо.

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

Re: Как читать far:config из макроса/плагина?

Post by zg » Sat 07 Sep, 2013 15:12

Acerbic wrote:Вообще же, как я заметил, приглашение обновляется если и не на каждый ввод, то на каждый 3й как минимум.
если происходит только ввод, т.е. не срабатывает автодополнение, в промежутках не показывается диалоги и т.д., не гасятся показываются панели, то приглашение не обновляется вообще, даже при скролинге командной строки.

Acerbic
Posts: 80
Joined: Wed 07 Apr, 2010 12:30
Been thanked: 2 times

Re: Как читать far:config из макроса/плагина?

Post by Acerbic » Sun 08 Sep, 2013 16:13

суть в том, что это обходимые препятствия.

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

Re: Как читать far:config из макроса/плагина?

Post by zg » Sun 08 Sep, 2013 16:27

тут всё отвечено. тему закрываю.

Locked

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