VSCode переопределяет ввод поведения в скобках - PullRequest
0 голосов
/ 29 октября 2019

Я пытался найти способ изменить поведение нажатия Enter в различных скобках () {} []. Я видел, что у кого-то есть это в видео (это было Sublime, но я также не нашел, как это сделать).

При нажатии Enter сейчас, изменение выглядит следующим образом:

{}

до

{
    [marker here]
}

Что я хотел бы сделать, это вставить дополнительные пустые строки в началеи получите это:

{

    [marker here]

}

Любые предложения о том, как это сделать?

1 Ответ

0 голосов
/ 02 ноября 2019

Вот связанный вопрос: Как реализовать сложный авто-отступ в VScode

Я попытался реализовать аналогичный OnTypeFormattingEditProvider, который изменяет пробелы в похожем стиле, как вы хотите,Легко вставить нужный пробел между парой скобок, но я не понял, как вставить некоторые перед курсором, а некоторые после курсора. Поэтому вместо того, чтобы создавать правки вставки и позволить их применять коду VS Code, я выбрал создание правок insertBeforeCursor и insertAfterCursor, применяя их с помощью workspace.applyEdit(...), а затем перемещая курсор с помощью commands.executeCommand('cursorMove', { to: 'left', value: insertAfterCursorText.length } ) и возвращая [] изметода provideOnTypeFormattingEdits.

См. метод applyAndMoveCursor в этой реализации форматера * типа 1016 *. Я был бы очень рад, если бы кто-то указал, как сконструировать правки и проинструктировать код VS, следует ли / не следует ли редактировать перемещать курсор.

И не забудьте включить форматирование кода VS по типу. editor.formatOnType настройка.

...