Хочу написать скрипт для быстрого вызова команд скриптов (на которые, например, в виду нечастого пользования не навешивается горячая клавиша). Функционал визуально аналогичен вызову окна Процедур и функций с фильтрацией от ТК.
Будет анализироваться файл SciptsSettings.tc, заполняться список команд.
Прошу создать API для возможности вызова команды выбранного в фильтре скрипта.
#1, ред. 26 июня 2024 16:03
bolsun Возможно реализовать? Было бы удобно под рукой иметь быстрый запуск команд скриптов. Тогда бы можно было не беспокоиться о количестве скриптов в турбокнопке, меню и т.д.
vigor изменил статус на Открыто
#2, 26 июня 2024 18:40
(1) vigor, это не просто. Скорее всего было бы удобнее добавить поле поиска в ТурбоМеню, что решит даную задачу.
#3, ред. 26 июня 2024 18:45
Напоминаю, что от моря команд еще эффективно спасает пока не сделанный в API обработчик "ПередДобавлениемКоманды", где будет делаться быстрый анализ применимости команды в текущем месте. С ним думаю сразу станет раза в 2 меньше средний список команд.
#4, 26 июня 2024 18:50
(3) tormozit, да но возможность поиска это не добавит
Тогда нужен удобный менеджер скриптов, возможно в виде дерева как в ТурбоПоиске
#5, ред. 26 июня 2024 18:53
Вот как это сделано в Rider - это аналог меню ТурбоКнопки
#6, ред. 26 июня 2024 18:57
(4) bolsun, частично задачу поиска решает фильтр в списке "Скрипты" окна настроек.
В любом случае дополнительно к найденной в списке команде было бы неплохо иметь подсветку текущей команды на макете реального меню. Тогда пользователь быстро запомнит где она в реальном меню и без труда ее потом найдет в нем глазами. Без этого пользователь будет обречен всегда искать нужную команду поиском либо запоминать ее сочетание клавиш.
В ИР кстати так и сделано во всех командных панелях.
#7, 26 июня 2024 23:05
(5) bolsun, в PHPstorm, например, есть go to action - это список всего с быстрым фильтром, + mnemonics в плагине TypeNGo. Но основной посыл - как-то быстро отфильтровав, выбрать нужную команду по первым клавишам. Снизив нагрузку на количество комбинаций клавиш, при этом не потеряв в скорости (в отличие от турбоменю или кнопки).
#8, ред. 06 июля 2024 09:39
(3) tormozit, Еще простой вариант контекстной фильтрации команд - декларативный. Т.е. в объявлении команды указываем список совместимых типов контекстов. Примерный список возможных контекстов:
Например
//@script_hotkey None АнализЗамера Анализ замера производительности // Список, Таблица
#9, ред. 06 июля 2024 09:45
(8) tormozit, это кстати позволит частично решить проблему вытеснения сочетаний клавиш штатных команд конфигуратора командами скриптов. https://turboconf.ru/Tasks/9566 . Ведь Турбоконф сможет для не подходящих по контексту команд сразу перевызывать сочетание клавиш в окне конфигуратора, т.е. позволять конфигуратору его обработать.
#10, 06 июля 2024 16:26
(8) tormozit, для команд как минимум есть аннотация &ТолькоТекстовыеДокументы
можно сделать аналогичную аннотацию &Доступность(Документ, Поле, и т.д.)
#11, ред. 06 июля 2024 16:39
(10) bolsun, аннотация &ТолькоТекстовыеДокументы есть, но на наличие пункта меню она почему то не влияет. А вот на захват сочетания клавиш она действительно влияет.
#12, ред. 06 июля 2024 16:54
(10) bolsun, у меня есть 3 команды, которые работают только со списками (через ТурбоКонф.ПолучитьИмяЭлемента). Для них была бы полезна директива &ТолькоСписки, которая была бы равнозначна проверке
#13, 06 июля 2024 18:24
(11) tormozit, слеши не нужны перед аннотацией
#14, ред. 06 июля 2024 18:26
(13) bolsun, для компиляции движком ОСкрипт - не нужны. Но для проверки модуля в моем редакторе скрипта - нужны.