Добавить возможность вызвать команду стороннего скрипта через API

vigor Открыто Средний

Хочу написать скрипт для быстрого вызова команд скриптов (на которые, например, в виду нечастого пользования не навешивается горячая клавиша). Функционал визуально аналогичен вызову окна Процедур и функций с фильтрацией от ТК.
Будет анализироваться файл SciptsSettings.tc, заполняться список команд.
Прошу создать API для возможности вызова команды выбранного в фильтре скрипта.

Комментарии

vigor
#1, ред. 26 июня 2024 16:03

bolsun Возможно реализовать? Было бы удобно под рукой иметь быстрый запуск команд скриптов. Тогда бы можно было не беспокоиться о количестве скриптов в турбокнопке, меню и т.д.
vigor изменил статус на Открыто


bolsun
#2, 26 июня 2024 18:40

(1) vigor, это не просто. Скорее всего было бы удобнее добавить поле поиска в ТурбоМеню, что решит даную задачу.


tormozit
#3, ред. 26 июня 2024 18:45

Напоминаю, что от моря команд еще эффективно спасает пока не сделанный в API обработчик "ПередДобавлениемКоманды", где будет делаться быстрый анализ применимости команды в текущем месте. С ним думаю сразу станет раза в 2 меньше средний список команд.


bolsun
#4, 26 июня 2024 18:50

(3) tormozit, да но возможность поиска это не добавит
Тогда нужен удобный менеджер скриптов, возможно в виде дерева как в ТурбоПоиске


bolsun
#5, ред. 26 июня 2024 18:53

Вот как это сделано в Rider - это аналог меню ТурбоКнопки


tormozit
#6, ред. 26 июня 2024 18:57

(4) bolsun, частично задачу поиска решает фильтр в списке "Скрипты" окна настроек.

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

В ИР кстати так и сделано во всех командных панелях.


vigor
#7, 26 июня 2024 23:05

(5) bolsun, в PHPstorm, например, есть go to action - это список всего с быстрым фильтром, + mnemonics в плагине TypeNGo. Но основной посыл - как-то быстро отфильтровав, выбрать нужную команду по первым клавишам. Снизив нагрузку на количество комбинаций клавиш, при этом не потеряв в скорости (в отличие от турбоменю или кнопки).


tormozit
#8, ред. 06 июля 2024 09:39

(3) tormozit, Еще простой вариант контекстной фильтрации команд - декларативный. Т.е. в объявлении команды указываем список совместимых типов контекстов. Примерный список возможных контекстов:

  • Любой (по умолчанию)
  • Модуль
  • Запрос
  • Документ
  • Кнопка
  • Меню
  • Неизвестный
  • Поле
  • ПолеСоСписком
  • Список
  • Таблица
  • Флажок
  • ЭлементМеню
  • ЭлементСписка

Например
//@script_hotkey None АнализЗамера Анализ замера производительности // Список, Таблица


tormozit
#9, ред. 06 июля 2024 09:45

(8) tormozit, это кстати позволит частично решить проблему вытеснения сочетаний клавиш штатных команд конфигуратора командами скриптов. https://turboconf.ru/Tasks/9566 . Ведь Турбоконф сможет для не подходящих по контексту команд сразу перевызывать сочетание клавиш в окне конфигуратора, т.е. позволять конфигуратору его обработать.


bolsun
#10, 06 июля 2024 16:26

(8) tormozit, для команд как минимум есть аннотация &ТолькоТекстовыеДокументы
можно сделать аналогичную аннотацию &Доступность(Документ, Поле, и т.д.)


tormozit
#11, ред. 06 июля 2024 16:39

(10) bolsun, аннотация &ТолькоТекстовыеДокументы есть, но на наличие пункта меню она почему то не влияет. А вот на захват сочетания клавиш она действительно влияет.


tormozit
#12, ред. 06 июля 2024 16:54

(10) bolsun, у меня есть 3 команды, которые работают только со списками (через ТурбоКонф.ПолучитьИмяЭлемента). Для них была бы полезна директива &ТолькоСписки, которая была бы равнозначна проверке

	Если Истина
		И ЗначениеЗаполнено(ТипЭлементаИнтерфейса) 
		И ТипЭлементаИнтерфейса <> ТипЭлемента.Неизвестный // ячейка таблицы
		И ТипЭлементаИнтерфейса <> ТипЭлемента.ЭлементСписка


bolsun
#13, 06 июля 2024 18:24

(11) tormozit, слеши не нужны перед аннотацией


tormozit
#14, ред. 06 июля 2024 18:26

(13) bolsun, для компиляции движком ОСкрипт - не нужны. Но для проверки модуля в моем редакторе скрипта - нужны.


Для вставки изображения или файла, перетащите его в поле редактора или вставьте файл из буфера