VS Code: workspace настройки
Workspace-настройки VS Code — конфигурация редактора уровня проекта, хранящаяся в .vscode/settings.json и переопределяющая глобальные настройки пользователя.
Зачем нужно
User settings применяются глобально ко всем проектам. Workspace settings специфичны для репозитория: форматтер, линтер, отступы могут различаться между проектами. Коммит .vscode/settings.json в репозиторий обеспечивает одинаковую среду для всей команды.
Где используется
- Командная разработка — единые настройки для всех
- Проекты с разными требованиями (tabSize 2 vs 4, разные форматтеры)
- Рекомендации расширений для нового участника команды
- Настройки задач и отладчика для конкретного проекта
Структура .vscode/
.vscode/
settings.json — настройки редактора для проекта
extensions.json() — рекомендуемые расширения
launch.json() — конфигурации отладчика
tasks.json() — задачи (build, test, run)
settings.json — ключевые опции
{
// Форматирование
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.tabSize": 2,
"editor.insertSpaces": true,
"editor.wordWrap": "on",
// Форматтер по типу файла
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter"
},
"[markdown]": {
"editor.defaultFormatter": "yzhang.markdown-all-in-one",
"editor.wordWrap": "on"
},
// ESLint — автофикс при сохранении
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
// TypeScript
"typescript.tsdk": "node_modules/typescript/lib",
"typescript.preferences.importModuleSpecifier": "relative",
// Файловые исключения (не показывать в Explorer)
"files.exclude": {
"node_modules": true,
"dist": true,
".git": true
},
// Поиск — исключить из индексации
"search.exclude": {
"**/node_modules": true,
"**/dist": true,
"**/*.lock": true
},
// Терминал
"terminal.integrated.defaultProfile.windows": "Git Bash",
"terminal.integrated.defaultProfile.linux": "bash",
// Git
"git.autofetch": true,
"git.confirmSync": false
}
extensions.json() — рекомендуемые расширения
// .vscode/extensions.json()
{
"recommendations": [
"esbenp.prettier-vscode", // Prettier
"dbaeumer.vscode-eslint", // ESLint
"ms-vscode.vscode-typescript-next", // TypeScript
"eamodio.gitlens", // GitLens
"bradlc.vscode-tailwindcss", // Tailwind CSS
"ms-azuretools.vscode-docker" // Docker
],
"unwantedRecommendations":
}
При открытии проекта VS Code предложит установить рекомендованные расширения.
Приоритет настроек
1. Default settings (VS Code)
2. User settings (~/.config/Code/User/settings.json)
3. Workspace settings (.vscode/settings.json) ← перекрывает User
4. Folder settings (multi-root workspace)
Частые ошибки
- Коммит
.vscode/settings.jsonс личными настройками (путь к Python, шрифт) — конфликтует у других - Добавление
.vscode/в.gitignoreполностью — теряются общекомандные настройки - Нет
extensions.json— новые участники команды не знают, какие расширения нужны editor.formatOnSave: trueбез указанияdefaultFormatter— VS Code спрашивает каждый раз
Связанные темы
- _MOC Инструменты
- VS Code -- настройка settings.json
- VS Code -- установка и настройка
- VS Code -- расширения для начинающих
- VS Code -- задачи (Tasks)