Можно ли автоиндексировать только текущую строку в коде Visual Studio?

В Atom (и многих других редакторах) имеется команда автоотдела, которая позволяет автоподчинить строку, в которой находится курсор. Есть ли эквивалент в коде Visual Studio?

Я знаю, что есть действие форматирования в Visual Studio Code, но из того, что я видел, его можно использовать только для:

  • отформатируйте выделение (ctrl-K ctrl-F)
  • отформатируйте документ отверстия (ctrl + shift + I)

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

В принципе, я хотел бы настроить ключ [TAB], чтобы при нажатии [TAB] он автоматически отступал только от линии, в которой находится курсор:

  • если в строке ничего не написано, просто поместите курсор в нужное место, чтобы при начале записи код был правильно отступом.
  • если в строке уже есть что-то написанное, это позволяет отредактировать строку

Является ли это возможным?

Ответы

Ответ 1

Позвольте мне смиренно предположить, что вы ищете решение не в том месте.

Я бы предложил следующую настройку:

  "editor.formatOnType": true,

Вы сосредоточились на "вкладке", выполняющей правильный отступ. Но с этим параметром вам совсем не нужно нажимать клавишу табуляции. Просто введите строку с нормальным возвратом в конце. Код Visual Studio затем будет отступать (и форматировать) эту строку правильно.

Ответ 2

Поэтому я просмотрел исходный код и, похоже, в настоящее время нет настроек, чтобы это произошло. В отрывке много работы

https://github.com/Microsoft/vscode/issues/17868

VSCode использует редактор Monaco под капотом

https://github.com/Microsoft/monaco-editor/issues/612

Текущие конфигурации python расположены в

https://github.com/Microsoft/vscode/tree/master/extensions/python

Я попытался, но понимание того, как все это интегрируется и работает вместе, чтобы исправить одну проблему с отступом, было просто потрясающим. Поэтому я просто хотел бы открыть запрос расширения с помощью VScode и позволить экспертам позвонить и выполнить задание

Ответ 3

Если вы установите расширение emacs-tab, вы можете сделать это:

{
    "key": "tab",
    "command": "emacs-tab.reindentCurrentLine",
    "when": "editorTextFocus"
}

Что, насколько я понимаю, делает именно то, что вы хотите (и не форматирует строку другими способами, например, разрывает ее, если она слишком длинная, и т.д.).