Запуск макросов кнопкосочетаниями, нажатыми в меню выбора макроса.

Здесь обсуждается всё, что касается макросов.
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

Запуск макросов кнопкосочетаниями, нажатыми в меню выбора макроса.

Post by Ann »

Latest post of the previous page:

citRiks wrote: Thu 11 Feb, 2021 21:00key2proxy.lua
Как я понял, исходя из предварительного знакомства, то, что кроме самого макроса, нужно устанавливать ещё 2 модуля, говорит (скорее, кричит) явно не в пользу key2proxy по сравнению с key2Process.

А то, что демоверсия макроса пока что обрабатывает только 9 строк меню выбора, оставляя остальные в исходном состоянии, полагаю, лишь временное ограничение.

Попытка выставления вторых ключей в меню слева (сразу вслед за автоматическими хоткеями, выставляемыми самим меню выбора), вроде бы хорошая придумка. Но пока что она не очень вразумительно оформлена:
– местами вторые ключи слипаются с хоткеями меню выбора;
– эта часть строки (участок вторых ключей) не выровнена влево;
– отводимое под этот участок строки место пока что не подстраивается под длину максимального шортката в меню;
– допустимость указания в поле key2 нескольких ключей может весьма негативно сказаться на имидже этого участка строки ввиду возможного чрезмерного растягивания длины данного участка;
– вертикальные линии │, отделяющие участок вторых ключей от описательной части строки (вместо естественных пробелов), по моему убеждению, выглядят как мусор в строке.
demo.png
Отсутствие регулирования ширины меню выбора может сделать неудобочитаемым описание (в поле description) действия макроса.

Однозначно позитивным новшеством key2proxy по сравнению с key2Process, на мой взгляд, является возможность прокрутить описание макроса с помощью нажатия мышью на стрелочки туда » и обратно «. Только вот прокручивать надо бы не всю строку целиком, а лишь её description-участок, оставляя колонки хоткеев и вторых ключей фиксированного размера.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Запуск макросов кнопкосочетаниями, нажатыми в меню выбора макроса.

Post by citRiks »

Ann wrote: Sun 14 Feb, 2021 15:55 А то, что демоверсия макроса пока что обрабатывает только 9 строк меню выбора, оставляя остальные в исходном состоянии, полагаю, лишь временное ограничение.
да, это надо починить, не попадают под санкции те макросы кто с меньшим приоритетом, но это неправильно
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Запуск макросов кнопкосочетаниями, нажатыми в меню выбора макроса.

Post by citRiks »

Ann wrote: Sun 14 Feb, 2021 15:55 Однозначно позитивным новшеством key2proxy по сравнению с key2Process, на мой взгляд, является возможность прокрутить описание макроса с помощью нажатия мышью на стрелочки туда » и обратно «. Только вот прокручивать надо бы не всю строку целиком, а лишь её description-участок, оставляя колонки хоткеев и вторых ключей фиксированного размера.
ну это обычное поведение обычного меню :)
то что прокручивается НЕ сохраняя табличную структуру - это тоже обычное поведение.
Так как меню это не таблица а строки, а палочки это не разделители а просто символ.
(могу сделать настойку "убрать раздел. символ" если сильно надо)
Поэтому едет в стороны сьезжая.
Это в принципе чинится, но влечет за собой несколько пару сотен строк сложного кода как минимум,
и по сравнению с остальным эти псевдотаблицы - наименьшая проблема.
Для представления таблиц именно как таблиц, я считаю что надо использовать или диалоги или панели
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Запуск макросов кнопкосочетаниями, нажатыми в меню выбора макроса.

Post by citRiks »

Ann wrote: Sun 14 Feb, 2021 15:55 Как я понял, исходя из предварительного знакомства, то, что кроме самого макроса, нужно устанавливать ещё 2 модуля, говорит (скорее, кричит) явно не в пользу key2proxy по сравнению с key2Process.
пока нет авто-компоновки кода в один кусок, для любого мало-мальски сложного при этом полезного при этом качественного придется использовать модули.
повторное использование кода нужно, от этого никуда не деться, значит будут модули и зависимости.
Ну в общем я не хотел показывать, вы настаивали, а теперь критика )) ладно, попробую пережить и это..
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

Запуск макросов кнопкосочетаниями, нажатыми в меню выбора макроса.

Post by Ann »

citRiks wrote: Mon 15 Feb, 2021 14:27повторное использование кода нужно, от этого никуда не деться, значит будут модули и зависимости
И что же такого-то если иногда в том или в ином макросе повторится код, который есть и в других макросах или модулях? Вы же сами ведь писали, что желательно объединение луа-скрипта и его зависимостей в один скрипт. Или Вы только за автоматическое объединение ратовали?

Я же со своей стороны могу лишь повториться:
Ann wrote: Fri 12 Feb, 2021 15:46Разумеется, мне было бы удобнее (а начинающему знакомиться с макросами Фара и тем более) просто положить скрипт в %FarProfile%\Macros\scripts\ и всё. И затем лишь периодически обновлять его. Вместо того, чтобы при каждом обновлении озабочиваться не забыть о том, чтобы и прилагаемый модуль (хорошо, если один, а не несколько) попал в %FarProfile%\Macros\modules\ и в соответствующую подпапку. А иногда ещё нужно не забывать и вносить записи в _macroinit.lua
citRiks wrote: Mon 15 Feb, 2021 14:27я не хотел показывать, вы настаивали, а теперь критика ))
Да уж, некорректное с моей стороны отношение. Виноват я, прошу меня простить! Это я спутал: Вы писали про StackTracePlus@Xer0X, что есть гораздо более усовершенствованная версия, а я, будучи в некоторой запарке, непроизвольно перенёс это на key2proxy. Обрадовался даже чуток, а потом из-за этого у меня случилось некоторое разочарование. И вот я поддался своим эмоциям и напортачил. Но к Вам это точно не имеет никакого отношения. Забудьте, пожалуйста, и не вспоминайте. Впредь постараюсь быть более аккуратным.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Запуск макросов кнопкосочетаниями, нажатыми в меню выбора макроса.

Post by citRiks »

Ann wrote: Mon 15 Feb, 2021 17:48 что же такого-то если иногда в том или в ином макросе повторится код, который есть и в других макросах или модулях? Вы же сами ведь писали, что желательно объединение луа-скрипта и его зависимостей в один скрипт. Или Вы только за автоматическое объединение ратовали?
да, только автоматическое имеется ввиду конечно.
когда неупорядоченно, все в одном скрипте,
то получается одна длинная простыня, а это хуже осознается,
физически сложно дублировать постоянно все вспомогательные функции,
а потом вычищать если оказалось что не нужное
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Запуск макросов кнопкосочетаниями, нажатыми в меню выбора макроса.

Post by buniak_a_h »

Ann wrote: Mon 15 Feb, 2021 17:48 И что же такого-то если иногда в том или в ином макросе повторится код, который есть и в других макросах или модулях?
Главное - сложности сопровождения. Найдена ошибка. Исправлена в 2-х местах, а ещё в двух - забыто. Это - главное, а не экономия места_на_диске/размера_словарей/электроэнергии/и т.п.
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

Запуск макросов кнопкосочетаниями, нажатыми в меню выбора макроса.

Post by Ann »

IgorZ,

А нельзя ли, по возможности, Ваш великолепный key2Process.lua преобразовать так чтобы не нужно было о нём делать запись в _macroinit.lua?

Т.е. по принципу, как это сделано в модуле double.lua.

Это было бы желательно для ещё большего удобства применения модуля key2Process.lua и в связи со следующей рекомендацией:
Shmuel wrote: Fri 19 Mar, 2021 23:40Вызов модуля из _macroinit.lua иногда может потребоваться, но вообще это плохая практика. Модули должны вызываться при их первом использовании, то есть как правило изнутри ф-ции action макросов. Это снижает потребление памяти и убыстряет загрузку макросов
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Запуск макросов кнопкосочетаниями, нажатыми в меню выбора макроса.

Post by IgorZ »

Ann wrote: Sat 27 Mar, 2021 08:28 IgorZ,
А нельзя ли, по возможности, Ваш великолепный key2Process.lua преобразовать так чтобы не нужно было о нём делать запись в _macroinit.lua?
Нет. В словах Шмуэля Вы не обратили внимание на "как правило". key2Process - то самое исключение. Для работы с новым полем key2Process подменяет внутреннюю функцию LuaMacro. Это надо делать до вызова Macro. Поэтому возможны два варианта: единственный раз вызывать из _macroinit.lua, или добавлять его вызов в начало каждого файла с макросами, использующими поле key2, при этом помимо самого вызова делая проверку, не вызывался ли уже key2Process ранее. Второй вариант сложнее и затратнее. Кроме того, первый вариант, на мой взгляд, правильнее идеологически, поскольку key2Process - модуль к LuaMacro, а не к отдельному макросу.
Last edited by IgorZ on Mon 29 Mar, 2021 07:38, edited 1 time in total.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Запуск макросов кнопкосочетаниями, нажатыми в меню выбора макроса.

Post by John Doe »

IgorZ wrote: Mon 29 Mar, 2021 07:17 или добавлять его вызов в начало каждого файла с макросами, использующими поле key2, при этом помимо самого вызова делая проверку, не вызывался ли уже key2Process ранее
В текущем виде да.
Но можно не лезть в нутро luamacro, а просто возвращать "усовершенствованную" функцию Macro.
Такой подход наоборот упростил бы код `key2Process`(но конечно не всем тут понравится необходимость вызова в каждом макрофайле).
https://t.me/FarManager — Telegram чат
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

Запуск макросов кнопкосочетаниями, нажатыми в меню выбора макроса.

Post by Ann »

John Doe, IgorZ,
John Doe wrote: Mon 29 Mar, 2021 12:26не всем понравится необходимость вызова [модуля] в каждом макрофайле
Полагаю, что речь не о разрастании макрофайла на несколько строк, а о чём-то вроде лаконичного кондишна? В последнем случае персонально я был очень даже за. Ведь небольшое дополнение кода для макрофайла часто бывает даже весьма полезно. Поскольку, имхо, такой способ на практике лишь дополнительно облегчает наглядность понимания самого кода.

А тем, кто слишком привык "старым" способом пользоваться, никто ведь не запретит и далее его применять?
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Запуск макросов кнопкосочетаниями, нажатыми в меню выбора макроса.

Post by John Doe »

Ann wrote: Mon 29 Mar, 2021 14:34 Полагаю, что речь не о разрастании макрофайла на несколько строк,

Code: Select all

local Macro = require "key2Process"
https://t.me/FarManager — Telegram чат
User avatar
Ann
Posts: 478
Joined: Tue 26 Jun, 2007 11:05
Has thanked: 141 times
Been thanked: 45 times

Запуск макросов кнопкосочетаниями, нажатыми в меню выбора макроса.

Post by Ann »

Ann wrote: Sat 27 Mar, 2021 08:28 IgorZ,

А нельзя ли, по возможности, Ваш великолепный key2Process.lua преобразовать так чтобы не нужно было о нём делать запись в _macroinit.lua?
John Doe wrote: Mon 29 Mar, 2021 12:26не всем понравится необходимость вызова [модуля] в каждом макрофайле
John Doe wrote: Mon 29 Mar, 2021 14:52
Ann wrote: Mon 29 Mar, 2021 14:34 Полагаю, что речь не о разрастании макрофайла на несколько строк,

Code: Select all

local Macro = require "key2Process"
А ведь так совсем шикарно будет.

Имхо, это очень незначительная дань за отвязку модуля key2Process от _macroinit.lua.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Запуск макросов кнопкосочетаниями, нажатыми в меню выбора макроса.

Post by IgorZ »

Сделал. Полной гарантии работы не даю, но в типичных ситуациях, вроде, работает корректно.
Post Reply

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