Как регистрировать команды, которые запускаются через палитру команд в Sublime Text 3 - PullRequest
0 голосов
/ 22 марта 2020

Я знаю, что команды могут быть зарегистрированы, перейдя в консоль View -> Show Console и набрав

sublime.log_commands(True)

Однако команды, запускаемые через палитру команд, не регистрируются, а просто показывает:

command: show_overlay {"overlay": "command_palette"}

Есть ли способ протоколировать команды, запускаемые через палитру?

1 Ответ

1 голос
/ 23 марта 2020

В настоящее время нет способа регистрировать команды, которые выполняются из палитры команд, нет. Если я правильно помню, это было возможно в более старых сборках 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 и все, что добавлено пакетом, начинается с имени пакета, который его добавил, что может помочь в определении того, какой файл проверять.

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

...