Page:
Настройка параметров VS Code после установки
Clone
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Настройка параметров VS Code после установки
1. Итоговый конфиг VS Code (~/.config/Code/User/settings.json)
{
// --- ПРОБЛЕМА С КЛАВИАТУРОЙ ---
// например, не работает обратный слеш на цифровой клавиатуре в xrdp
"keyboard.dispatch": "keyCode",
// --- НАВИГАЦИЯ (ОТКЛЮЧЕНО) ---
"workbench.editor.enablePreview": false, // Открытие файла только по дабл-клику
"workbench.editor.enablePreviewFromQuickOpen": false, // Выключает превью при поиске (Ctrl+P)
"list.openMode": "doubleClick", // Жестко задает дабл-клик для проводника
"explorer.compactFolders": false, // Запрещает сворачивать пустые папки в одну строку
"window.restoreWindows": "none", // Запрещает открывать последний проект или папку
"files.associations": "jsonc", // Разрешить комментарии в JSON
"explorer.autoReveal": false, // Запретить автоматическую синхронизацию открытого файла с его расположением в проводнике
"debug.console.collapseIdenticalLines": false, // Отключить сворачивание одинаковых строк в консоле отладки
// КАКОЙ ДОЛБАЁБ ВЫДУМЫВАЕТ ВСЮ ЭТУ ХУЙНЮ???
"explorer.fileNesting.enabled": true, // Еще одна фигня, которую приходится настраивать!
"explorer.fileNesting.expand": false, // Отвечает за группировку "связанных" файлов, как в Visual Studio
"workbench.editor.openPositioning": "last", // Открывать закладки файла в конце
// --- ШПИОНАЖ И ТЕЛЕМЕТРИЯ (ВЫРЕЗАНО) ---
"telemetry.telemetryLevel": "off", // Полный запрет на отправку данных в MS
"datLoss.telemetryLevel": "off",
"workbench.enableExperiments": false, // Запрет на скрытые тесты новых фич на тебе
"workbench.settings.enableNaturalLanguageSearch": false, // Поиск по настройкам без серверов MS
// --- ГИГИЕНА ПРОЕКТА (СКРЫВАЕМ МУСОР) ---
"files.exclude": {
"**/bin": true, // Скрыть скомпилированный мусор
"**/obj": true,
"**/TemplateEngineHost": true, // Скрыть артефакты Visual Studio
"**/.git": true // (Опционально) скрыть папку самого гита
},
"search.exclude": {
"**/bin": true, // Не искать по мусорным файлам
"**/obj": true
},
// --- GIT И АВТОМАТИЗАЦИЯ ---
"git.enabled": true,
"git.openRepositoryInParentFolders": "always", // Видеть репозиторий, даже если открыта вложенная папка
"security.workspace.trust.enabled": false // Убивает вопрос про "Доверяете ли вы авторам"
}
2. Горячие клавиши (~/.config/Code/User/keybindings.json)
Удобное сворачивание кода на цифровой блок:
- editor.foldAll - Свернуть всё (Fold All) - Shift + NumPad -
- editor.unfoldAll - Развернуть всё (Unfold All) - Shift + NumPad +
- editor.fold - Свернуть текущий блок - Ctrl - NumPad -
- editor.unfold - Развернуть текущий блок - Ctrl - NumPad
Управление закладками,
- bookmarks.toggle - Alt+F2 - установить/снять закладку. В Linux XFCE комбинация Alt+F2 используется, поэтому идем в Настройки -> Клавиатура и удаляем ее там.
[
// Отключить "Переход вперед
{
"key": "ctrl+alt+l",
"command": "-bookmarks.jumpToNext",
"when": "editorTextFocus"
},
// Включить F2
{
"key": "f2",
"command": "bookmarks.jumpToNext",
"when": "editorTextFocus"
},
// Отключить "Переход назад"
{
"key": "ctrl+alt+j",
"command": "-bookmarks.jumpToPrevious",
"when": "editorTextFocus"
},
// Включить Shift + F2
{
"key": "shift+f2",
"command": "bookmarks.jumpToPrevious",
"when": "editorTextFocus"
},
// Показать в панели проводника, очень полезная!
{
"key": "f4",
"command": "workbench.files.action.showActiveFileInExplorer",
"when": "editorTextFocus"
}
]
3. Настройки Git
Добавление имени пользователя и адреса электронной почты текущего пользователя:
git config --global user.name "user_name"
git config --global user.email "mail@example.com"
Для флага --global данные пишутся в файл ~/.gitconfig
[user]
name = user_name
email = mail@example.com
4. Сниппеты
Настройки сниппетов C# лежат тут ~/.config/Code/User/snippets/csharp.json
Свойство get/set + summary
{
"Свойство get/set + summary": {
"prefix": "pr",
"body": [
"/// <summary>",
"/// ${3:Описание ...}",
"/// </summary>",
"public ${1|string,Guid,bool,int,uint,long,ulong,decimal,DateTimeOffset,TimeSpan,DateOnly,TimeOnly|} $2 { get; set; }$0"
]
}
}
Документировани symmary
Встроенный сниппет добавляет к summary блок value (нахера???), поэтому используем свой
{
"Документировани symmary": {
"prefix": "summary",
"body": [
"/// <summary>",
"/// ${1:Описание ...}",
"/// </summary>"
]
}
}
Полное свойство с атрибутом Column
Принимает идентификатор snake_case, устанавливает атрибут [Column("<идентификатор>")], создает имя свойства в PascalCase
{
"Полное свойство с атрибутом Column": {
"prefix": "pp",
"body": [
"/// <summary>",
"/// ${4:Описание ...}",
"/// </summary>",
"[Column(\"$1\")]",
"public ${3|string,Guid,bool,int,uint,long,ulong,decimal,DateTimeOffset,TimeSpan,DateOnly,TimeOnly|} ${1/(_|^)([a-z0-9])|(_)/${2:/upcase}/g} { get; set; }$0"upcase}/g} { get; set; }$0"
]
}
}
Блок try/catch
{
"Блок try/catch": {
"prefix": "tr",
"body": [
"try",
"{",
"\tthrow new NotImplementedException();",
"}",
"catch (Exception ex)",
"{",
"\t$0throw;",
"}"
]
}
}
Блок throw new NotImplementedException()
{
"Блок throw new NotImplementedException()": {
"prefix": "thr",
"body": "throw new NotImplementedException();"
}
}