Аналог "Lynx like motion" из Midnight Commander

Здесь обсуждается всё, что касается макросов.
buniak_a_h
Posts: 3205
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 169 times
Been thanked: 468 times
Contact:

Улучшение макросов из поставки фара

Post by buniak_a_h »

Latest post of the previous page:

John Doe wrote: Thu 31 Oct, 2019 21:18 Если бы вы предложили конкретные измениния, то это соответствовало содержанию темы.
Может, такое подойдёт?

Смысл:
1. Переход вправо - только если под курсором папка и не .. (надо ли заходить в архивы по Right - не знаю…). Ну и уж всяко если APanel.Visible.
2. Вообще переходы допустимы только если на панели один столбец. Я определяю это через SQLite-чтение базы PanelModes.db; возможно, я неправ, и можно проще.
3. Переход вправо по возможности осуществляются не по PgDown, а через Panel.SetPath (в плагиновой панели - через panel.SetPnelDirectory)
Можно было бы (и, наверно, было бы правильно) ещё и ассоциации проверять.
Last edited by buniak_a_h on Sat 02 Nov, 2019 00:39, edited 2 times in total.
User avatar
HaRT
Moderator
Posts: 9936
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 141 times
Been thanked: 280 times

Улучшение макросов из поставки фара

Post by HaRT »

buniak_a_h wrote: Sat 02 Nov, 2019 00:34 Можно было бы (и, наверно, было бы правильно) ещё и ассоциации проверять.
На мой взгляд, было бы правильно проверять ассоциации и пытаться заходить в любой файл, если на CtrlPgDn не задана команда запуска.
Фар есть инструмент, а не нянька. © 2009 DrKnS
buniak_a_h
Posts: 3205
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 169 times
Been thanked: 468 times
Contact:

Улучшение макросов из поставки фара

Post by buniak_a_h »

HaRT wrote: Sat 02 Nov, 2019 00:57
buniak_a_h wrote: Sat 02 Nov, 2019 00:34 Можно было бы (и, наверно, было бы правильно) ещё и ассоциации проверять.
На мой взгляд, было бы правильно проверять ассоциации и пытаться заходить в любой файл, если на CtrlPgDn не задана команда запуска.
Я согласен, но я пока не умею получать и анализировать ассоциации.
buniak_a_h
Posts: 3205
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 169 times
Been thanked: 468 times
Contact:

Улучшение макросов из поставки фара

Post by buniak_a_h »

HaRT wrote: Sat 02 Nov, 2019 00:57
buniak_a_h wrote: Sat 02 Nov, 2019 00:34 Можно было бы (и, наверно, было бы правильно) ещё и ассоциации проверять.
На мой взгляд, было бы правильно проверять ассоциации и пытаться заходить в любой файл, если на CtrlPgDn не задана команда запуска.
Интересный получился макрос. Вроде, даже удобно. Пришлось приложить довольно много усилий для обеспечения "симметричности" навигации. Чтоб последовательность Right - Left выводила в исходный каталог. Поэтому проверка наличия ассоциации на PgDn для файла производится не в condition, а в action. В общем, проверьте …

Макрос работает на режимах с одним столбцом либо если указатель стоит в крайнем левом/правом столбце (если прокручивать уже некуда)


Panel.Lynx-mot.lua.7z
(1.5 KiB) Downloaded 29 times
Last edited by buniak_a_h on Sat 02 Nov, 2019 04:48, edited 2 times 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 »

buniak_a_h wrote: Sat 02 Nov, 2019 00:34 . Вообще переходы допустимы только если на панели один столбец. Я определяю это через SQLite-чтение базы PanelModes.db; возможно, я неправ, и можно проще
APanel.ColumnCount, PPanel.ColumnCount
User avatar
John Doe
Бюрократ
Posts: 13387
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 54 times
Been thanked: 350 times

Аналог "Lynx like motion" из Midnight Commander

Post by John Doe »

Переписал немного макросы предложенные @nightgryphon

Code: Select all

Macro {
  description="LYNX-style motion";
  area="Shell";
  key="Left";
  condition=function()
    return CmdLine.Empty and APanel.Current==".."
  end;
  action=function()
    Keys("CtrlPgUp")
  end;
}


Macro {
  description="LYNX-style motion";
  area="Shell";
  key="Right";
  condition=function()
    return CmdLine.Empty and APanel.Folder and APanel.Current~=".."
  end;
  action=function()
    Keys("CtrlPgDn")
  end;
}
Предлагаю ими и заменить штатные.
https://t.me/FarManager — Telegram чат
User avatar
John Doe
Бюрократ
Posts: 13387
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 54 times
Been thanked: 350 times

Аналог "Lynx like motion" из Midnight Commander

Post by John Doe »

Будем считать что предложение не поддержано.
https://t.me/FarManager — Telegram чат
Shmuel
Posts: 6401
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 401 times

Аналог "Lynx like motion" из Midnight Commander

Post by Shmuel »

John Doe wrote: Mon 22 Nov, 2021 11:21 Будем считать что предложение не поддержано.
Странный вывод. Скорее никого из посетителей за последний день этот макрос не интересует, поэтому нет откликов.
User avatar
John Doe
Бюрократ
Posts: 13387
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 54 times
Been thanked: 350 times

Аналог "Lynx like motion" из Midnight Commander

Post by John Doe »

Откликов вообще частенько не бывает и это нормально. В данном случае я сообщаю что поскольку собственного видения этого макроса у меня нет, то из своего PR я упомянутые улучшения пока исключил.
https://t.me/FarManager — Telegram чат
Post Reply

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