Сама настройка editor.formatOnSave только включает механизм автоформатирования. А за то, как именно будет выглядеть ваш код (ширина отступа, одинарные или двойные кавычки, переносы строк и т. д.), отвечают другие настройки — стиль форматирования.
Его можно задать на двух уровнях: глобально для редактора и индивидуально для конкретного языка или проекта.
[Уровень 1: глобальные настройки]
Этот уровень задает базовые правила для всех поддерживаемых языков.
1. Через графический интерфейс: откройте настройки (`Ctrl + ,`), найдите интересующий вас параметр (например, `Tab Size`) и измените его значение.
2. Через файл settings.json: самый гибкий и точный способ. Откройте командную палитру (`Ctrl+Shift+P`) и выполните команду "Preferences: Open Settings (JSON)". Затем добавьте нужные параметры.
Пример базовых настроек стиля:
{
// Отступ: 2 пробела
"editor.tabSize": 2,
"editor.insertSpaces": true,
// Включаем автоформатирование при сохранении
"editor.formatOnSave": true,
// Указываем основной инструмент для форматирования (например, Prettier)
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
[Уровень 2: настройка форматтера]
Самый важный момент. Настройки, перечисленные выше, отвечают за базовое поведение редактора. Но большинство разработчиков устанавливают для форматирования специальные расширения (Prettier, ESLint, Black для Python). У каждого из них есть собственный набор правил, который во многом переопределяет стандартное поведение VSCode.
Как настроить стиль для конкретного форматтера (на примере Prettier):
1. Создайте файл конфигурации: в корне вашего проекта создайте файл с именем .prettierrc (формат может быть `.json`, `.yaml`, `.js`, `.toml`).
2. Пропишите правила: например, файл .prettierrc.json:
{
"semi": false,
"singleQuote": true,
"printWidth": 100,
"tabWidth": 2
}
В этом примере настроено следующее:
"semi": false — не ставить точки с запятой в конце строк.
"singleQuote": true — везде использовать одинарные кавычки.
"printWidth": 100 — переносить строки, если их длина превышает 100 символов.
"tabWidth": 2 — размер отступа в 2 пробела.
Такой подход (файл .prettierrc в корне проекта) считается лучшей практикой, так как позволяет всем членам команды использовать единый стиль кода, независимо от их личных настроек VSCode.
[Уровень 3: индивидуальные настройки для разных языков]
VSCode позволяет гибко управлять форматированием: для JavaScript использовать одни правила, а для Python — другие. Для этого в файле settings.json используются блоки с именем языка в квадратных скобках.
Пример настройки settings.json:
{
// Глобальные настройки по умолчанию
"editor.tabSize": 4,
"editor.formatOnSave": false, // Глобально отключаем автоформат
// Настройки ТОЛЬКО для JavaScript
"[javascript]": {
"editor.formatOnSave": true, // Включаем автоформат для JS
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.tabSize": 2 // Используем отступ в 2 пробела
},
// Настройки ТОЛЬКО для Python
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.tabSize": 4 // Для Python оставляем 4 пробела
}
}
Если вы хотите изменить стиль форматирования:
1. Самый простой способ — установить расширение-форматтер (вроде Prettier) и создать для него файл-конфиг (.prettierrc) в корне проекта.
2. Если вы используете стандартный форматтер VSCode (например, встроенный в расширение для Python или Go), ищите соответствующие настройки в settings.json с префиксом языка (например, "[python]").