Запуск макроса по событию смены директории

Здесь обсуждается всё, что касается макросов.
User avatar
John Doe
Бюрократ
Posts: 13387
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 54 times
Been thanked: 350 times

Запуск макроса по событию смены директории

Post by John Doe »

Latest post of the previous page:

Никогда этим не пользовался, и что ему давать на вход? И будет ли оно быстрее отрабатывать?
На вход xml. Сделайте export, и посмотрите что именно (ещё не факт что в экспорте будет то что вам надо, я не проверял)
Быстрее вряд ли заработает, но зато не будет иметь зависимостей.
gene.pavlovsky
Posts: 166
Joined: Tue 16 Feb, 2010 17:55
Has thanked: 11 times
Been thanked: 8 times

Запуск макроса по событию смены директории

Post by gene.pavlovsky »

В экспорте все конфиги. Но если всё лишнее убрать и оставить только <localconfig>, импорт работает нормально.
На скорую руку протестил
100x far -import - 2.85 s
100x sqlite3 - 2.43 s
Оставлю как есть. Если у кого нету sqlite3.exe, и принципиально не хочется ставить, могут доработать с far -import. Благо там всего навсего надо подменить ф-цию CommitPanelState()
User avatar
zg
zero-gravity
Posts: 5878
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 158 times
Contact:

Запуск макроса по событию смены директории

Post by zg »

зачем такие сложные приседания с sqlite и far /import? чем far.CreateSettings не угодил?
John Doe wrote:Особенно если в Энциклопедии действительно будет сказано о недопустимости или нежелательности тех или иных действий.
я всё помню и вам не верю.
User avatar
John Doe
Бюрократ
Posts: 13387
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 54 times
Been thanked: 350 times

Запуск макроса по событию смены директории

Post by John Doe »

zg wrote: и вам не верю.
В чём?
User avatar
zg
zero-gravity
Posts: 5878
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 158 times
Contact:

Запуск макроса по событию смены директории

Post by zg »

там процитировано.
User avatar
John Doe
Бюрократ
Posts: 13387
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 54 times
Been thanked: 350 times

Запуск макроса по событию смены директории

Post by John Doe »

Спрашиваю именно потому, что не процитировано ничего такого, чему можно "поверить" или "не поверить".

А если за пределами цитаты, то было вот:
John Doe wrote: Имхо, на багтрекере не так много подобных примеров, а те что всё-таки есть (и будут) не должно быть сложно закрыть, с соответствующей формулировкой.
Можно согласиться, или не согласиться, но и тут отсутствует что либо, что бы я предлагал принять на веру.
User avatar
zg
zero-gravity
Posts: 5878
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 158 times
Contact:

Запуск макроса по событию смены директории

Post by zg »

John Doe wrote: Спрашиваю именно потому, что не процитировано ничего такого, чему можно "поверить" или "не поверить".
как нет? вы утверждаете, что достаточно в энциклопедии запретить чем-то пользоваться и проблем не будет, не?
gene.pavlovsky
Posts: 166
Joined: Tue 16 Feb, 2010 17:55
Has thanked: 11 times
Been thanked: 8 times

Запуск макроса по событию смены директории

Post by gene.pavlovsky »

zg wrote: зачем такие сложные приседания с sqlite и far /import? чем far.CreateSettings не угодил?
В фаре столько всего полезно зарыто, а найти непросто. Поэтому и спрашивал тут.
Пробую CreateSettings. Как пользоваться, если честно, непонятно. Документации кот наплакал.

Code: Select all

local dbg = require "dbgprint".filter("FAR:"," ")
local inspect = require "inspect"

Macro {
	area="Shell"; key="RCtrlT"; description="Debug test";
	action = function()
		local obj = far.CreateSettings('far')
		dbg.print(inspect(obj:Enum()))
		far.FreeSettings()
	end;
}
obj:Enum() возвращает nil. Какие ему параметры передавать?
User avatar
zg
zero-gravity
Posts: 5878
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 158 times
Contact:

Запуск макроса по событию смены директории

Post by zg »

gene.pavlovsky wrote:obj:Enum() возвращает nil. Какие ему параметры передавать?
надо настройки свои открывать, а не фаровские.
gene.pavlovsky
Posts: 166
Joined: Tue 16 Feb, 2010 17:55
Has thanked: 11 times
Been thanked: 8 times

Запуск макроса по событию смены директории

Post by gene.pavlovsky »

zg wrote:надо настройки свои открывать, а не фаровские.
В смысле? Я хочу сохранить текущие диры и файлы на панелях в фаровский localconfig.
Last edited by gene.pavlovsky on Fri 11 Nov, 2016 02:07, edited 1 time in total.
User avatar
zg
zero-gravity
Posts: 5878
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 158 times
Contact:

Запуск макроса по событию смены директории

Post by zg »

в чём принципиальность сохранения именно в localconfig.db? чем, скажем, PluginsData\4EBBEFC8-2084-4B7F-94C0-692CE136894D.db принципиально хуже?
User avatar
John Doe
Бюрократ
Posts: 13387
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 54 times
Been thanked: 350 times

Запуск макроса по событию смены директории

Post by John Doe »

zg wrote: как нет? вы утверждаете, что достаточно в энциклопедии запретить чем-то пользоваться и проблем не будет, не?
Я утверждаю (1) некоторое количество некорректных тикетов на мантисе не создают проблем и (2) если что-то или невозможность чего-то описана в документации, то закрывать такие тикеты можно не тратя время на объяснения, стандартной формулировкой типа "см. документацию".

А так да, не каждый читает документацию, а из тех кто читает - не все верно интерпретируют. И чем больше возможностей предоставляет инструмент тем больше возможностей отстрелить себе ногу.
User avatar
John Doe
Бюрократ
Posts: 13387
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 54 times
Been thanked: 350 times

Запуск макроса по событию смены директории

Post by John Doe »

zg wrote: в чём принципиальность сохранения именно в localconfig.db? чем, скажем, PluginsData\4EBBEFC8-2084-4B7F-94C0-692CE136894D.db принципиально хуже?
Это возможно, если скрипт при старте фара будет самостоятельно восстанавливать нужные пути на панелях.
gene.pavlovsky
Posts: 166
Joined: Tue 16 Feb, 2010 17:55
Has thanked: 11 times
Been thanked: 8 times

Запуск макроса по событию смены директории

Post by gene.pavlovsky »

John Doe wrote:
zg wrote: в чём принципиальность сохранения именно в localconfig.db? чем, скажем, PluginsData\4EBBEFC8-2084-4B7F-94C0-692CE136894D.db принципиально хуже?
Это возможно, если скрипт при старте фара будет самостоятельно восстанавливать нужные пути на панелях.
Именно так. Написать подобный скрипт не проблема, но как этот скрипт узнает, что при явном запуске `Far.exe dir1 dir2` не надо восстанавливать состояние из конфига? При текущем решении с localconfig-ом это работает автоматически.
gene.pavlovsky
Posts: 166
Joined: Tue 16 Feb, 2010 17:55
Has thanked: 11 times
Been thanked: 8 times

Запуск макроса по событию смены директории

Post by gene.pavlovsky »

John Doe wrote:И чем больше возможностей предоставляет инструмент тем больше возможностей отстрелить себе ногу.
Абсолютно с этим согласен. Не раз слышал (в нескольких проектах) "мы эту фичу делать не будем, т.к. переживаем, что юзеры отстрелят себе ногу" - тогда как уже есть средства отстрелить себе всё туловище.
Last edited by gene.pavlovsky on Fri 11 Nov, 2016 11:22, edited 1 time in total.
User avatar
John Doe
Бюрократ
Posts: 13387
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 54 times
Been thanked: 350 times

Запуск макроса по событию смены директории

Post by John Doe »

gene.pavlovsky wrote: но как этот скрипт узнает, что при явном запуске `Far.exe dir1 dir2` не надо восстанавливать состояние из конфига?
Скрипт может работать (например) только если far.exe запущен без параметров.
Или наоборот, работать только если задан определённый параметр.
(просто идеи, в порядке мозгового штурма)
Post Reply

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