#visual-studio-code #vscode-extensions
#visual-studio-code #vscode-extensions
Вопрос:
Редактор кода, которым я пользуюсь последние 20 лет (codewright), позволяет установить «режим выбора». Когда это установлено, все движения курсора клавиатуры расширяют выделение. В VS Code вы можете расширить выбор, удерживая нажатой клавишу shift (например, Shift со стрелкой вниз), но я ищу способ сделать это без клавиши shift.
Я написал расширение, которое в основном выполняет это, но мне пришлось бы проделать гораздо меньше работы, если бы я мог создать новое условие для предложения «когда» в keybindings.json
. Например, я хотел бы изменить
{ "key": "shift down", "command": "cursorDownSelect",
"when": "editorTextFocus" },
к чему-то вроде
{ "key": "down", "command": "cursorDownSelect",
"when": "editorTextFocus || extensionSelectionMode" },
{ "key": "down", "command": "cursorDown",
"when": "editorTextFocus" },
Есть ли способ добавить такое условие из расширения?
Ответ №1:
Попробуйте использовать setContext
команду в вашем расширении:
vscode.commands.executeCommand('setContext', 'extensionSelectionMode', true)
Смотрите VSCode vim для примера этого в действии
Мы отслеживаем лучший API для настройки контекстов здесь:https://github.com/Microsoft/vscode/issues/10471
Комментарии:
1. При использовании языкового сервера этот вызов лучше размещать внутри сервера или клиента? Или это не имеет значения?