Как конвертировать вкладки в пробелы при сохранении? - PullRequest
0 голосов
/ 05 февраля 2020

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

Я видел много других сообщений для удаления trim.trailingWhitespace, но это не то, что я ищу за. Я также использую преобразование из вкладок в пробелы при нажатии клавиши Tab. Но это, опять же, не моя проблема.

Мне нужно сохранить файл и автоматически изменить все вкладки на пробелы, как это делает Qt Creator.

Ответы [ 2 ]

2 голосов
/ 06 февраля 2020

Это будет зависеть от языка. Вам необходимо установить / настроить языковой форматер c, а затем включить параметр "editor.formatOnSave", который будет буквально применять правила форматирования при сохранении файлов.

Этот ответ предназначен для Python и JavaScript потому что это то, что я обычно использую.


Для JavaScript я использую расширение Prettier .
(У него есть плагинов для других языков но я в основном использовал его для JS.)

Затем добавьте их в свои настройки . json:

// Set the default setting
"editor.formatOnSave": false,

// Then toggle depending on the language
"[javascript]": {
    "editor.formatOnSave": true
},

По умолчанию Prettier уже предоставляет некоторые правила форматирования по умолчанию. Но вы можете указать свой собственный файл конфигурации , чтобы указать свой собственный (или специфицированный для проекта c) набор правил форматирования.

.
├── ...
├── .prettierrc.js
├── test.js
...
└── <<other files>>

In .prettierr c. js:

// prettier.config.js or .prettierrc.js
module.exports = {
    useTabs: false,
    tabWidth: 4
};

Эта конфигурация Prettier указывает не использовать вкладки и использовать уровень отступа 4 пробела. Теперь, с этой настройкой, когда вы сохраняете файл, он автоматически меняет вкладки на пробелы (это то, что я понимаю, это то, что вы хотите). Есть также другие параметры форматирования .

Вы будете знать, что расширение работает, потому что в строке состояния отображается «Prettier»:

enter image description here


Для Python, VS Код в настоящее время поддерживает 3 провайдера форматирования ):

  • "autopep8"
  • "yapf"
  • "черный".

Я использую "autopep8".

Установите autopep8 в вашей среде. Затем в VS Code обязательно выберите среду с autopep8. Затем добавьте это в свои настройки. json:

// Set the default setting
"editor.formatOnSave": false,

"[python]": {
    "editor.formatOnSave": true
},

"python.formatting.provider": "autopep8",
"python.formatting.autopep8Args": [
    // "--ignore=W191, E101, E111"  // Uncomment to disable fixing indentation
],

Здесь autopep8 форматирует код в соответствии с руководством по стилю PEP8 , которое уже рекомендует пробелы над вкладками . Так что все, что нужно сделать, это включить его.


Возможно, вас также заинтересуют настройки кода VS, связанные с пробелами (чтобы в первую очередь вкладки не помещались в файл):

"editor.detectIndentation": false,
"editor.insertSpaces": true,
"editor.tabSize": 4,
0 голосов
/ 08 февраля 2020

Всякий раз, когда я сталкиваюсь с проблемой отступов, я go онлайн и гугл "украсить python код", а 2-я или 3-я ссылка в учебном пособии помогает мне ( ссылка ). Просто вставьте свой код, и он (в большинстве случаев) полностью исправит его для вас или покажет ошибки лучше, чем интерпретатор.

...