#visual-studio-code #tabs #formatting
Вопрос:
Я установил для своих вкладок пробелы и установил ширину вкладки на 2 из них. Когда я явно прошу vscode переформатировать мой код (javascript), он делает именно то, что я ожидаю. Когда я создаю новую строку в своем коде, она также автоматически отступает до 2 пробелов.
Однако, когда я сохраняю (вручную или автоматически), код переформатируется с 4 пробелами!!!
С yaml этого не происходит.
Я считаю, что я использую красивее (потому что так написано в строке состояния) на небольшом расстоянии от того места, где написано Spaces: 2
. В моих настройках.json есть следующее: "editor.tabSize": 2
. У меня также есть эта прелестная маленькая штучка:
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
Что, я думаю, означает, что он использует красивее. В нем есть тот же формат, который зарегистрирован для yaml (и, фактически, почти для всего остального).
Может ли кто-нибудь сказать мне, как остановить это раздражающее поведение, не теряя преимуществ автосохранения?
Ответ №1:
- Пожалуйста, посмотрите,
.editorconfig
существует ли в вашем проекте.
- Если это так, отредактируйте файл (см. https://editorconfig.org/) или вы можете обсудить это с автором, если это общий проект. Например.:
[*.js]
indent_style = space
indent_size = 2
- Или вообще отключить
.editorconfig
поддержку:
"prettier.useEditorConfig": false
- Без использования
.editorconfig
я не смог бы повторить вашу проблему (т. Е. Настроен размер вкладки = 2, переформатирован в 4).
Однако обходной путь был бы:
"editor.formatOnSave": false
или даже ограничиться javascript
только:
"[javascript]": { "editor.formatOnSave": false }
Это позволило бы сохранить функцию автоматического сохранения, но пропустить автоматическое форматирование.
- Подведите итоги по связанным вариантам:
"editor.tabSize":
"editor.detectIndentation":
"editor.formatOnSave":
"prettier.tabWidth":
"prettier.useEditorConfig":
"prettier.useTabs":
Ответ №2:
Просто отключите обнаружение отступов, как это
"editor.detectIndentation": false.
также используйте
"editor.formatOnSave": true
и
"prettier.tabWidth": 2,
Комментарии:
1. Это не имело никакого значения, извини
2. @SoftwareEngineer Я обновил свой ответ, пожалуйста, проверьте его
3. Пробовал это, с полным перезапуском и без него, и все равно это не имеет никакого значения. Спасибо.
4. С
"editor.detectIndentation": false
помощью , это работает на меня.