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

Здесь обсуждается всё, что касается макросов.
citRiks
Posts: 1307
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 387 times
Been thanked: 80 times

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

Post by citRiks »

Latest post of the previous page:

На всякий случай еще раз упоминаю, что скрипт ЗАВИСИТ от Sqlite3.exe, увы.
Лучше бы не зависел, так как чем меньше зависимостей тем лучше,
но руки все не доходят, а производительность вполне Ок и на моих совсем дохлых компьютерах тоже.

В приаттаченном REG-файле - избавление от некоторых побочных эффектов связанных с запусками sqlite3.exe,
причем без добавления других побочных эффектов :)
Attachments
Disable_UNC_Path_Warn.reg
(458 Bytes) Downloaded 11 times
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
citRiks
Posts: 1307
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 387 times
Been thanked: 80 times

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

Post by citRiks »

только страх опозориться перед потомками заставляет меня делать нормальный QA.
Добавлена функциональность позволяющая различать смену физической директории,
и директории в плагине, в архиве например.
Баги починены, перезалито.

UPD
аттачмент удален, здесь и далее будет храниться здесь:
https://github.com/dr-dba/far-lua-direc ... ange-event
Last edited by citRiks on Sat 16 Jan, 2021 12:12, edited 2 times in total.
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
User avatar
HaRT
Moderator
Posts: 9695
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 124 times
Been thanked: 253 times

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

Post by HaRT »

citRiks wrote: Mon 05 Oct, 2020 16:53 items - это активные панельные элементы, по одному справа и слева
А для чего они? Те, что можно получить прямо от Фара, чем-то плохи? Я-то скриптом не пользуюсь, но другим может оказаться полезно знать.
citRiks wrote: Mon 05 Oct, 2020 19:30 В одном символе показывает или hardlink если он есть, или symbolic линк если он есть, или выставленный archive bit если он есть.
В одном знакоместе можно довольно наглядно показывать любую комбинацию значений 5 атрибутов/флагов.
Фар есть инструмент, а не нянька. © 2009 DrKnS
citRiks
Posts: 1307
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 387 times
Been thanked: 80 times

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

Post by citRiks »

HaRT wrote: Tue 06 Oct, 2020 00:25А для чего они? Те, что можно получить прямо от Фара, чем-то плохи?
По многим причинам, но наверное все эти причины исходят из, как минимум, полезности консистентности, а как максимум - необходимости консистентности.
Если в двух словах - на момент обработки события текущие предметы (айтемы) курсор, и даже директории, могут уже отличаться от обрабатываемового события,
событие оно на то и событие чтобы быть несколько асинхронным, даже если рассинхрон всего лишь несколько милисекунд.
курсор может и за милисекунду уехать куда угодно, а нам надо на момент события где он был, а не где он сейчас.
Но и кроме консистентности, вопрос что эффективнее.
Т.е., например, создателю скрипта полезнее держать все данные в одной структуре, чтобы не бегать по разным углам пересобирая и обрабатывая данные.
Но, это полезно не только скриптописателю, но еще и самому ЦПУ, меньше пересобирать все, и больше делать чего-то может быть, более полезного.
Далее, получить набор данных вместе сразу в одной табличке полезно не только лишь всем, но еще и тому кому придется расширять возможности этого скрипта, для чего он и написан.
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
citRiks
Posts: 1307
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 387 times
Been thanked: 80 times

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

Post by citRiks »

HaRT wrote: Tue 06 Oct, 2020 00:25 В одном знакоместе можно довольно наглядно показывать любую комбинацию значений 5 атрибутов/флагов.
Да интересно, надо будет разобраться. я правда забыл упомянуть что в моем контент-колумне показываются пустые папки, большая буква Е - папака совсем пустая, малеьнкая буква Е - с другими пустыми директориями
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
buniak_a_h
Posts: 2561
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 139 times
Been thanked: 332 times
Contact:

Индивидуальные преднастройки для сортировки конкретных каталогов

Post by buniak_a_h »

citRiks wrote: Fri 15 Jan, 2021 21:50 Здесь все прекрасно и уже давно работает, (почти) без таймера, без загрузки CPU:
Я пытался посмотреть, наткнулся на макрос, повешенный на Enter - и это меня срубило. Возможно, теперь этого уже нету, но было.
citRiks
Posts: 1307
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 387 times
Been thanked: 80 times

Индивидуальные преднастройки для сортировки конкретных каталогов

Post by citRiks »

buniak_a_h, весьма и весьма согласен что макрос на Enter это безобразие.
Но конкретно здесь, этот макрос - он как бы обманка, condition всегда возвращает false.
Но зато при этом, без всяких посторнних эффектов,
в condition мы получаем индикацию что возможно была смена директории,
и далее проверяем это в таймере.
Таким образом, это одноразовый "умный" таймер, а не который постоянно долбится глупый.
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
buniak_a_h
Posts: 2561
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 139 times
Been thanked: 332 times
Contact:

Индивидуальные преднастройки для сортировки конкретных каталогов

Post by buniak_a_h »

А если смена папки возникает в результате исполнения скрипта?
Вы видели моё панельное дерево. Там есть авто-смена папки при "шагании" по дереву. Будет отрабатывать Ваш макрос? А при far.Host.SetDirectory,
panel.SetPanelDirectory, whereis:имя_файла?
Last edited by buniak_a_h on Fri 15 Jan, 2021 23:58, edited 1 time in total.
buniak_a_h
Posts: 2561
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 139 times
Been thanked: 332 times
Contact:

Индивидуальные преднастройки для сортировки конкретных каталогов

Post by buniak_a_h »

P/S. По поводу whereis: : я так часто этим пользуюсь, что замакросил по одному хоткею в начало строки вставляется whereis:, а потом Keys"End Enter". Будет работать?
citRiks
Posts: 1307
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 387 times
Been thanked: 80 times

Индивидуальные преднастройки для сортировки конкретных каталогов

Post by citRiks »

buniak_a_h wrote: Fri 15 Jan, 2021 23:57 А если смена папки возникает в результате исполнения скрипта?
Эммм.. там основной механизм это ContentColumn.
Надо чтобы был какой-нибудь любой ContentColumn
Потому что ContentColumn реагирует на любое изменение при любом переходе,
и к нему можно приделать реакцию на переход
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
citRiks
Posts: 1307
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 387 times
Been thanked: 80 times

Индивидуальные преднастройки для сортировки конкретных каталогов

Post by citRiks »

buniak_a_h wrote: Sat 16 Jan, 2021 00:04 что замакросил по одному хоткею в начало строки вставляется whereis:, а потом Keys"End Enter". Будет работать?
Есть подозрение что будет работать и без ContentColumn, если вышлите макрос то проверю
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
buniak_a_h
Posts: 2561
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 139 times
Been thanked: 332 times
Contact:

Индивидуальные преднастройки для сортировки конкретных каталогов

Post by buniak_a_h »

citRiks wrote: Sat 16 Jan, 2021 09:15 если вышлите макрос то проверю
Макрос изначально был клавиатурным, потом переписан в стационарные:
  1. Macro {
  2.   area="Shell"; key="CtrlShiftW"; Description="WhereIs:..."; flags="NotEmptyCommandLine";
  3.   action = function()
  4.   Far.DisableHistory(1)
  5.  Keys('CtrlHome w h e r e i s : Enter')
  6.   end;
  7. }
Last edited by buniak_a_h on Sat 16 Jan, 2021 09:51, edited 1 time in total.
citRiks
Posts: 1307
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 387 times
Been thanked: 80 times

Индивидуальные преднастройки для сортировки конкретных каталогов

Post by citRiks »

buniak_a_h, проверил, все правильно и мгновенно детектиться, без таймера и без ContentColumn
все же я рекомендую ContentColumn и постоянный таймер раз в две секунды для перестраховки
Last edited by citRiks on Sat 16 Jan, 2021 10:25, edited 1 time in total.
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
citRiks
Posts: 1307
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 387 times
Been thanked: 80 times

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

Post by citRiks »

будет храниться здесь:
https://github.com/dr-dba/far-lua-direc ... ange-event
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
citRiks
Posts: 1307
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 387 times
Been thanked: 80 times

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

Post by citRiks »

Novosedoff wrote: Mon 18 Jan, 2021 01:56 Спасибо за наводку. Только, боюсь, моей технической квалификации недостаточно, чтобы понять как пользоваться указанным скриптом для моей задачи, а инструкция к скрипту, кроме деталей по установке, никаких дополнительных деталей, к сожалению, не даёт..
я когда-нибудь (надеюсь в течении месяца) доберусь допилить туда сохраняемые настройки, делов там очень мало, толко у меня и времени к сожалению еще меньше
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
Post Reply

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