Page 2 of 4

Индицировать привязку шортката к нативной команде Фара.

Posted: Wed 02 Aug, 2017 21:47
by sToLp

Latest post of the previous page:

Shmuel wrote:
Wed 02 Aug, 2017 20:53
Если вызывать макрос "напрямую", например, ShiftF5, и в появившемся меню нажать Enter, то работает.
Если же вызвать одно из "предыдущих" меню, например, ShiftF4 и переходить к следующим двойными нажатиями RCtrl, то переходы осуществляются, но при нажатии Enter ничего, кроме закрытия меню не происходит.
Действительно. Похоже, что я таки поспешил. Если в "новом" меню нажать AltF4, то редактор открывается на нужном макрофайле. Но там банальная Keys"Akey". А ведь после перехода это уже не то... Буду думать сам и уповаю на Вашу помощь.

Индицировать привязку шортката к нативной команде Фара.

Posted: Thu 03 Aug, 2017 04:31
by sToLp
Частично вопрос решён переделкой таблицы макросов, эмулирующих НАТИВНЫЕ (внутренние) команды Far.
В соответствующем посте код макроса и вложенный файл обновлены.

Индицировать привязку шортката к нативной команде Фара.

Posted: Fri 04 Aug, 2017 22:23
by sToLp
В вышеприведённой комбинации групп макросов, эмулирующих нативные команды Far, сделал следующие косметические изменения:

а) участки кода mf.print("lua:mf.postmacro(eval,") mf.print(replace) mf.print(",2)") заменил на print('"lua:mf.postmacro(eval,'..replace..',2)"') ;

б) макрос с ключом, не назначенным на внутреннюю команду, теперь при активации выдаёт сообщение об этом с возможностью возврата в меню;

в) теперь роль метки диапазона прокрутки меню вместо вычурной формы {esc{F12 исполняет хоткей &q.

В соответствующем посте код макросов и вложенный файл обновлены.

Кстати по поводу пользовательских горячих клавиш в меню выбора макросов. Сейчас после их назначения пользователем порядковые номера/литеры таких пунктов затеняется, деактивируются. Но лично мне как пользователю было бы удобнее, чтобы они всё также оставались бы активными. Если это практически возможно.

Индицировать привязку шортката к нативной команде Фара.

Posted: Sat 05 Aug, 2017 02:13
by Shmuel
sToLp wrote:
Fri 04 Aug, 2017 22:23
Кстати по поводу пользовательских горячих клавиш в меню выбора макросов. Сейчас после их назначения пользователем порядковые номера/литеры таких пунктов затеняется, деактивируются. Но лично мне как пользователю было бы удобнее, чтобы они всё также оставались бы активными. Если это практически возможно.
Активными их можно было бы оставить (путём назначения на каждый из них AccelKey). Но выделяться другим цветом они при этом не будут. Реализация функции Menu в Фаре (как она есть на текущий момент) не позволяет подсветить более одного символа в тексте пункта.

Индицировать привязку шортката к нативной команде Фара.

Posted: Sat 05 Aug, 2017 05:38
by sToLp
Shmuel

А раз так, то не целесообразнее ли было бы порядковые обозначения пунктов не подсвечивать вовсе? И пусть бы они были постоянно активными. В Главном меню, например, множество вполне активных не подсвеченных хоткеев/шорткатов.

Добавлено: И поскольку, если будете вносить корректировку в форму меню "Исполнить макрос", посмотрите, пожалуйста, ещё насчёт вывода в заголовок указаний макрообласти, из которой вызвано меню, и вызвавшего его ключа. Хотелось бы воспользоваться этим уже при составлении данных макросов.

Индицировать привязку шортката к нативной команде Фара.

Posted: Sat 05 Aug, 2017 07:36
by Shmuel
sToLp, можете поместить виш на мантис.

Индицировать привязку шортката к нативной команде Фара.

Posted: Sat 05 Aug, 2017 10:42
by sToLp
Shmuel wrote:
Sat 05 Aug, 2017 07:36
sToLp, можете поместить виш на мантис.
Спасибо!
0003464

Индицировать привязку шортката к нативной команде Фара.

Posted: Sun 06 Aug, 2017 14:59
by sToLp
При анонсировании прототипа группы макросов, которые путём эмулирования отображают наличие или отсутствие нативных (внутренних) команд Far, по поводу их возможного пересечения с другими макросами мною было сделано следующее предположение:
sToLp wrote:
Wed 02 Aug, 2017 17:49
По идее, их применение не должно бы препятствовать имеющимся уже у пользователя макросам.
Однако возможны случаи, когда пользователь переопределяет ключи внутренних команд для задействования других команд. Как пример тому, известные переназначения ключа F8. Команду "Удалить" коллеги запускают ключом Del, а на F8 навешивают запуск браузера.

И подобные ключи могут пересекаться с ключами группы макросов, индицирующих нативные команды Far.

Для сглаживания возможного неудобства предполагаю сделать следующее. Поле sortptiority в подготавливаемых мню макросах выстаить равным 10, а не 100 как пока что. И таким образом индицирующие макросы переместятся с первой позиции в меню на предпоследнюю, чтобы вывести наверх возможные макросы пользователя. А также, наверное, составляю дополнительный макрос.

Дополнительный вспомогательный макрос нужен для исключения воспрепятствования работе макроса пользователя, назначенного на ключ, задействованный также и в группе макросов, преднамеренно эмулирующих нативные команды. Предполагаю, что он будет активировать в меню 'Исполнить макрос' первую позицию. В расчёте на то, что она предположительно соответствует макросу, запускаемому ключом нативной команды, который переназначен пользователем под предусмотренную им команду.

И тогда при повторном нажатии того же ключа будет активироваться макрос пользователя, а не макрос вышеозначенной группы.

Для составления допмакроса желательна реализация виша, ссылка на который приведена в предыдущем посте. Поэтому пока что подожду его реализации.

Добавлено: указанный виш реализован, и теперь, вероятно, дополнительный макрос не потребуется, т.к. новая, более совершенная, форма меню "Исполнить макрос" позволяет, кажется, обойтись и без него. Но посмотрим, что покажет практика.

Индицировать привязку шортката к нативной команде Фара.

Posted: Sun 06 Aug, 2017 20:00
by sToLp
С ранее опубликованными макросами обнаружилась пока что совсем не понятная мне заноза. При наличии в них флагов flags="NoPluginPanels EmptyCommandLine"; и непустой комстроке Far после их активации зависает. Если флаги из макросов убрать, то макросы срабатывают нормально и зависания Far не случаются.


Индицировать привязку шортката к нативной команде Фара.

Posted: Sun 06 Aug, 2017 21:26
by Shmuel
sToLp wrote:
Sun 06 Aug, 2017 20:00
При наличии в них флагов flags="NoPluginPanels EmptyCommandLine"; и непустой комстроке Far после их активации зависает
У вас там происходит зацикливание - из макроса запускается снова макрос, из того снова запускается макрос и т.д. Где-то у вас ошибка в логике этих макросов.
Попутно замечу, что аргумент Flags в функции far.Message указан не в соответствии с описанием данного параметра в документации.

Индицировать привязку шортката к нативной команде Фара.

Posted: Mon 07 Aug, 2017 00:04
by sToLp
Shmuel wrote:
Sun 06 Aug, 2017 21:26
У вас там происходит зацикливание - из макроса запускается снова макрос, из того снова запускается макрос и т.д. Где-то у вас ошибка в логике этих макросов.
Попутно замечу, что аргумент Flags в функции far.Message указан не в соответствии с описанием данного параметра в документации.
Благодарю Вас за подсказку!
Умозрительно оба момента осознал и убедился в том, что верно осознал, попробовав на черновом макросе.

Индицировать привязку шортката к нативной команде Фара.

Posted: Tue 08 Aug, 2017 21:33
by sToLp
Блок макросов, эмулирующих НАТИВНЫЕ команды Far, назначенные на ключи линейки функциональных клавиш с модификатором Shift в области Shell в диапазоне ShiftEsc — ShiftF12.

Макросы составлены с учётом обновлённой формы заголовка меню:
╔══ Исполнить макрос: макрообласть | ключ ══╗.
(см. shmuel 07.08.2017 15:25:23 +0200 - build 611).



Теперь это уже не прототип, а один из тех блоков, из которых предполагается составить комплект макросов, индицирующих (демонстрирующих) нативные (внутренние) команды Far, а также ключи (хоткеи и шорткаты), на которые такие команды не назначены в макрообласти Shell.

Индицировать привязку шортката к нативной команде Фара.

Posted: Wed 09 Aug, 2017 06:26
by Shmuel
Нажимаю ShiftEsc, появляется меню. Нажимаю дважды RCtrl или LCtrl - ничего не меняется.

Индицировать привязку шортката к нативной команде Фара.

Posted: Wed 09 Aug, 2017 13:39
by sToLp
Shmuel,

Публикации макросов делаю в т.ч. чтобы, по возможности, оперативно выявлять и решать неожиданные проблемы с ними. Но в данном случае я пока ума не приложу в чём может быть причина того, о чём Вы сообщили.

А как с ShiftF3, например, или другим подобными ключами? Из вызываемых ими меню переходы осуществляются?

Сам я попросился на чужую машину (правда, система та же — десятка x64, других пока у нас нет под руками) и установил на ней свежескачанную рубордовскую сборку FarUE3 от уважаемого Victor_VG. Затем убрал из "C:\Program Files (x86)\Far3\Far\Profile\Macros\scripts"\ все макросы и положил туда скачанный с моего предыдущего поста файл. Загрузил Far, вызвал макрос по ShiftEsc и убедился, что по двойным RCtrl и LCtrl переходы нормально работают.

Индицировать привязку шортката к нативной команде Фара.

Posted: Wed 09 Aug, 2017 14:04
by Shmuel
sToLp wrote:
Wed 09 Aug, 2017 13:39
Но в данном случае я пока ума не приложу в чём может быть причина того, о чём Вы сообщили.
Причина - некорректная работа, если в Фаре выбран английский язык интерфейса.

Индицировать привязку шортката к нативной команде Фара.

Posted: Wed 09 Aug, 2017 19:08
by sToLp
Shmuel wrote:
Wed 09 Aug, 2017 14:04
Причина - некорректная работа, если в Фаре выбран английский язык интерфейса.
Очень благодарен Вам за помощь! Макросы обновлены.

Индицировать привязку шортката к нативной команде Фара.

Posted: Thu 10 Aug, 2017 19:19
by sToLp
Макросы в очередной раз обновлены.

Те два макроса из группы макросов, которые в предыдущих вариантах непосредственно обеспечивали переходы между меню "Исполнить макрос", теперь преобразованы в один. Это сделано для существенного облегчения последующего конструирования аналогичных макросов. Вероятно, данное обновление этого блока макросов завершающее.

Теперь это уже не прототипы, а один из тех блоков, из которых предполагается составить комплект макросов макрообласти Shell, индицирующих (демонстрирующих) нативные (внутренние) команды Far, а также ключи (хоткеи и шорткаты), на которые такие команды не назначены.