Какие «команды» можно выполнить через editor.codeActionsOnSave?

Я не могу найти никакой четкой документации по этому поводу, поэтому надеюсь, что кто-нибудь знает ответ. Может ли параметр vscode editor.codeActionsOnSave указывать на произвольные команды, определенные расширениями vscode, или вы можете использовать только такие вещи, как source.organizeImports? Я пытаюсь запустить команду из расширения, которая работает при запуске с помощью сочетания клавиш (в данном случае vsSharper.sortUsings), но когда я добавляю либо

"editor.codeActionsOnSave": [ "vsSharper.sortUsings" ]

или

"editor.codeActionsOnSave": {
 "vsSharper.sortUsings": "always"
}

в моем файле settings.json команда не запускается, и мои операторы использования не сортируются по расширению. Однако я не понимаю, почему, поскольку в документации этого другого расширения, кажется, указано, что это должно быть возможно (этот параметр указывает на команду расширения): https://biomejs.dev/reference/vscode/#fix-on-save

Попробуйте запустить их как source.vsSharper.sortUsings. Расширения могут заставить свои команды работать как codeActions, но они должны это делать — это происходит не со всеми командами, созданными расширением. Если в README об этом ничего не сказано, возможно, они не сделали того, что было необходимо.

Mark 12.04.2024 05:09

Или попробуйте sourceOrganizeImports.vsSharper.sortUsings. Судя по дистрибутивному коду, они действительно создают codeActions.

Mark 12.04.2024 05:32

Я добавил некоторый код в свое расширение vscode, чтобы перечислить зарегистрированные действия кода для C#, и запустил его в отладчике, и я вижу его как vsSharper.sortUsings (imgur.com/a/DiJ3ecZ), и я вижу его зарегистрированным как вы тоже указали, в коде dist. Почти начинаю задаваться вопросом, есть ли у меня какая-то другая проблема, которая мешает этому работать. Также попробовал ваши предложения, но они тоже не сработали (даже попробовал source.organizeImports.vsSharper.sortUsings на случай, если в вашем предложении была опечатка). Буду продолжать копать и отчитываться.

Jeremy C. 12.04.2024 17:03

Приятно знать, что расширения не поддерживают это автоматически из коробки, спасибо за разъяснения по этому поводу!

Jeremy C. 12.04.2024 17:04
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
78
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Какие «команды» можно выполнить через editor.codeActionsOnSave?

Никто. Действия кода и команды — это две разные вещи. Если только разработчик расширения не заставляет реализацию действия кода выполнять то же самое, что и команда/вызывать команду.

Для реализации расширения некоторыми из связанных API являются CodeActionProvider<T> и RegisterCommand.

Если вы хотите узнать, какие действия с кодом предоставляет расширение, проверьте его документацию. Если они не задокументированы, вы потенциально можете найти информацию об этом, прочитав исходный код, но поскольку провайдер может делать все, что захочет (например, делать внешние вызовы JS, например, к двоичному файлу программы без отладочной информации), вы с этим тоже может не повезти. Попробуйте также активировать подсказки в теле editor.codeActionsOnSave в settings.json.

Другие вопросы по теме