В настоящее время нет способа регистрировать команды, которые выполняются из палитры команд, нет. Если я правильно помню, это было возможно в более старых сборках Sublime, но примерно в то время, когда палитра команд получила возможность принимать ввод для таких команд, как View Package File
, она перестала работать. Это может быть ответвлением механизма, который используется для запуска обработки ввода в палитре команд, но это всего лишь предположение.
Обычно плагин может использоваться для отслеживания чего-то подобного, потому что классы EventListener
имеют события для скажу вам до и после выполнения команд. Однако на трекере есть открытая проблема относительно палитры команд при запуске on_post_window_command , которая, вероятно, вызвана тем же, что и команды, не отображаемые в журнале.
В настоящее время единственный способ знать, какие команды и аргументы вызываются из палитры команд, - значит анализировать файл sublime-commands
, который их предоставляет.
В отличие от меню, команды в палитре команд не могут иметь динамические c заголовки, поэтому найти запись команды, которая имеет "caption"
для текста, который вы знаете, довольно просто. picking.
Сложнее всего определить, откуда поступает команда. В консоли sublime.find_resources('*.sublime-commands')
покажет вам список всех известных командных файлов, и вы можете открыть их с помощью View Package File
в палитре команд.
Обычно все, что поставляется с Sublime, находится в Default/Default.sublime-commands
и все, что добавлено пакетом, начинается с имени пакета, который его добавил, что может помочь в определении того, какой файл проверять.
Обратите внимание, что в палитре команд есть некоторые команды, которые добавляются Возвышенные и не приходят из командного файла; Команды, которые вставляют фрагменты и команды, которые изменяют синтаксис. Они определяются на лету, поскольку список синтаксисов и фрагментов может быть изменен.