#visual-studio-code #indentation
#visual-studio-code #отступ
Вопрос:
У меня есть файл, использующий уровень отступа в 4 столбца и предполагающий, что символ табуляции соответствует 8 пробелам, вот так (я использую .
для представления пробела и <------>
для символа табуляции):
class Foo {
....void bar() {
<------>if (boz) {
<------>....return x;
<------>}
....}
}
Это характерно для определенных стилей кодирования, таких как соглашения Oracle о кодировании для Java:
В качестве единицы отступа следует использовать четыре пробела. Точная конструкция отступа (пробелы или табуляции) не указана. Табуляции должны быть установлены ровно через каждые 8 пробелов (не через 4).
У меня возникли проблемы с правильным отображением этого с помощью VSCode:
- Если я установлю
editor.tabSize
значение 4, то он будет плохо отображаться как
class Foo {
....void bar() {
<-->if (boz) {
<-->....return x;
<-->}
....}
}
- Если я установлю
editor.tabSize
значение 8, то текст будет отображаться правильно, но направляющие отступа неверны (отсутствует направляющая дляvoid bar()
уровня отступа):
Что еще более важно, автоматический ввод отступов (нажатие клавиши «tab» или «на лету» при нажатии кнопки «return» после {
символа) теперь состоит из 8 столбцов, что делает редактор практически бесполезным.
Очевидный обходной путь — использовать только пробелы для отступов, но это неприменимо при открытии ранее существующего файла.
Есть ли способ настроить отображение направляющих для отступов через каждые 4 столбца, сохраняя при этом отображение вкладок через каждые 8 столбцов?
В спецификации файла конфигурации кросс-редактора editorconfig это соответствует свойствам tab_width
и indent_size
, которые я хотел бы иметь возможность изменять независимо.
Я бывший пользователь Emacs, и это будет соответствовать, например, tab-width
и c-basic-offset
.
Комментарии:
1. По теме: marketplace.visualstudio.com/items?itemName=spywhere.guides и hudochenkov.com/posts/spaces-to-tabs … и, к сожалению, это только для VS.
2. не могли бы вы предоставить информацию о версии для OS и VS Code?
3. Это VSCode 1.48 в Ubuntu 20.04.
4. Хорошо, я нашел проблему: github.com/microsoft/vscode/issues/10339 . Был открыт некоторое время, но исправление, похоже, не планируется.
Ответ №1:
Проблема, упомянутая в комментариях в 2020 году, microsoft/vscode
выпуск 10339, наконец, была закрыта в ноябре 2022 года (!)
PR 155450 позволяет иметь отдельные значения для отступа и ширины отображения символов табуляции, что является общим требованием некоторых старых проектов и / или стилей кодирования.
В дополнение к добавлению поддержки
editor.indentSize
свойства, параметры отступа в строке состояния были обновлены, чтобы разрешить независимую настройкуeditor.indentSize
иeditor.tabSize
.
Итак:
editor.indentSize
: Количество пробелов, используемых для отступа или ‘ tabSize
‘ для использования значения из editor.tabSize
.
Этот параметр переопределяется в зависимости от содержимого файла, когда editor.detectIndentation
включен.
Это должно быть доступно в ближайшее время в VSCode Insiders и выпущено с VSCode 1.74 (ноябрь 2022).
Ответ №2:
К сожалению, на данный момент нет настройки или расширения, которые основывались бы только на (пробелах / табуляциях текущего размера табуляции).