Эти параметры деактивированы по умолчанию, но сильно влияют на пользовательский опыт. Добавьте понравившиеся в собственную конфигурацию или скопируйте их к себе полностью (F1
-> Open User Settings (JSON)
).
Вручную просмотрены и проверены все (более 2000) доступные в версии 1.90
(май 2024) параметры, за исключением категорий Специальные возможности, GIT, Терминал, JavaScript Debugger и TypeScript. Некоторые параметры терминала и GIT добавлялись сами по себе в процессе работы.
{
///
//// параметры, которые могут бесить
///
// отступы
"editor.detectIndentation": false, // отключение автоматического определения отступов для каждого файла - будут использоваться установленные отступы, а не используемые в файле
"editor.insertSpaces": false, // использование табов вместо пробелов - полезно, т.к. разработчикам с изменённой длиной отступов легче работать с файлом, содержащим табы
"editor.indentSize": 4, // обычная длина отступа пробелами (необходимо указать после отключения detectIndentation)
"editor.tabSize": 2, // уменьшенный отступ для табов (влезет больше текста)
"editor.stickyTabStops": true, // отступ несколькими пробелами будет выделяться полностью
// шрифты
// "editor.fontLigatures": true, // подключение лигатур из Cascadia Code / Fira Code (<= == === => ~~>)
// "editor.fontFamily": "'Cascadia Code', Consolas, 'Courier New', monospace", // подключение Cascadia Code (предустановлено в Windows 11)
// "editor.fontFamily": "'Fira Code Retina', Consolas, 'Courier New', monospace", // подключение Fira Code (FiraCode-VF.ttf: https://github.com/tonsky/FiraCode/wiki/Installing)
// "editor.fontFamily": "'Comic Mono', Consolas, 'Courier New', monospace", // подключение Comic Mono (ComicMono.ttf: https://dtinth.github.io/comic-mono-font)
// редактор
"editor.wordWrap": "on", // перенос строк, если они не влазят на экране (аналогично шорткату Alt+Z)
// "files.autoSave": "onWindowChange", // автосохранение при переходе к другому окну
// "editor.formatOnPaste": true, // автоформатирование при вставке
"editor.copyWithSyntaxHighlighting": false, // отключение копировании подсветки синтаксиса
// редактор различий (относится к GIT)
"diffEditor.codeLens": false, // отключение отображения использований кода (CodeLens) в редакторе различий
// "diffEditor.renderSideBySide": false, // показ различий без разделения экрана
// "diffEditor.ignoreTrimWhitespace": true, // не показывать замену пробелов на табы (и наоборот) в редакторе различий
// панель открытых редакторов
"workbench.editor.pinnedTabsOnSeparateRow": true, // закреплённые вкладки на отдельной строке
"workbench.editor.preventPinnedEditorClose": "never", // разрешить закрывать закреплённые вкладки
"workbench.startupEditor": "newUntitledFile", // новый текстовый файл без названия вместо домашней страницы
// "workbench.startupEditor": "readme", // показ readme, если доступно, при открытии папки (открывается не во временной вкладке, приходится вручную закрывать)
// "workbench.editor.wrapTabs": true, // вкладки на нескольких строках вместо прокрутки
// "workbench.editor.titleScrollbarSizing": "large", // большой ползунок для горизонтальной прокрутки открытых вкладок (удобно при использовании мыши, неудобно при использовании тачпада)
// "explorer.autoReveal": false, // не показывать файл в проводнике при открытии вкладки с ним
// другое
"window.openFoldersInNewWindow": "on", // открытие нового окна при открытии папки/рабочей области
"terminal.integrated.defaultProfile.windows": "Command Prompt", // cmd вместо Powershell в Windows
// "workbench.activityBar.location": "top", // показывать панель действий сверху (невозможно скрыть повторным нажатием)
// "search.useIgnoreFiles": false, // включение поиска по всем файлам (по умолчанию игнорируются файлы, указанные в .ignore и .gitignore)
///
//// полезные параметры
///
// оптимизации
"telemetry.telemetryLevel": "off", // отключение телеметрии
"workbench.enableExperiments": false, // отключение A/B тестов экспериментальных фичей
"editor.experimental.asyncTokenization": true, // анализ файла в отдельном воркере для повышения производительности
// отключение бесячего
"security.workspace.trust.enabled": false, // отключение вопроса о доверии при открытии новых рабочих областей
"workbench.layoutControl.enabled": false, // отключение кнопок управления макетом редактора
"window.enableMenuBarMnemonics": false, // отключение перехода к вкладкам меню через alt
"window.customMenuBarAltFocus": false, // отключение возможности входа в меню при зажатии alt
"explorer.confirmDragAndDrop": false, // отключение подтверждения перемещения
"explorer.confirmDelete": false, // отключение подтверждения удаления
// украшательства
"window.dialogStyle": "custom", // красивые диалоговые окна
"editor.cursorSmoothCaretAnimation": "on", // плавная анимация перемещения курсора
"editor.cursorBlinking": "smooth", // плавная анимация мигания курсора
"editor.smoothScrolling": true, // плавная прокрутка по PgUp/PgDn
"workbench.list.smoothScrolling": true, // плавная прокрутка колесом мыши списков на боковой панели
// удобства в окне редактирования
"editor.guides.bracketPairs": true, // цветная линия-помощник для отступов между {} в коде
"editor.renderWhitespace": "boundary", // показ лишних (нееденичных) пробелов
"editor.scrollBeyondLastLine": false, // отключение прокрутки дальше, чем конец файла
"editor.scrollPredominantAxis": false, // прокрутка тачпадом лишь по одной оси одновременно
"editor.renderLineHighlight": "all", // выделение строки, в которой находится курсор, горизонтальными полосами по всей длине
"editor.defaultColorDecorators": true, // показ пикера цветов не только в CSS
"editor.inlayHints.enabled": "onUnlessPressed", // отключение показа типов и названий переменных для передаваемых свойств при зажатии Ctrl+Alt
"editor.definitionLinkOpensInPeek": true, // открытие описания фичи без разделения экрана при нажатии Ctrl+ЛКМ по участку кода
// удобства вне окна редактирования
"editor.minimap.showSlider": "always", // показывать область просмотра на миникарте без наведения мыши
"search.searchEditor.defaultNumberOfContextLines": null, // сохранение количества строк контекста для Search Editor
"debug.onTaskErrors": "showErrors", // открытие вкладки проблем при ошибке компиляции
"debug.showBreakpointsInOverviewRuler": true, // показ точек останова на ползунке справа
"debug.showSubSessionsInToolBar": true, // улучшенный вывод дочерних процессов в дебаггере (тут понятнее: https://youtu.be/OK2cdq9HXMw)
"workbench.editor.decorations.colors": false, // отключение кричащих цветов в названии файла при наличии ошибок и изменений (всё ещё отображаются справа от названия)
// улучшения редактирования
"editor.emptySelectionClipboard": false, // отключение копирования строки при отсутствии выделения (при случайном нажатии)
"editor.linkedEditing": true, // автоматическое изменение парных параметров (например тегов HTML)
"editor.smartSelect.selectLeadingAndTrailingWhitespace": false, // отключение выделения пробелов при Smart Select (Shift + Alt + L/R arrows)
"files.trimFinalNewlines": true, // удалять лишние Enter в конце файла при сохранении
"files.trimTrailingWhitespace": true, // удалять лишние пробелы при сохранении
"[markdown]": { // фикс для Markdown (там дополнительные пробелы можно использовать для отступов)
"files.trimTrailingWhitespace": false
},
// улучшения подсказок
"editor.suggest.preview": true, // показывает продолжение ввода серым цветом, будто подсказка уже применена
"editor.acceptSuggestionOnEnter": "off", // не подтверждать подсказку по Enter (только Tab)
"editor.acceptSuggestionOnCommitCharacter": false, // не подтверждать подсказку при вводе спецсимвола
"editor.suggestSelection": "recentlyUsed", // предлагать на основе последних использований
"editor.suggest.localityBonus": true, // подсказывать близкие к курсору слова
"editor.suggest.matchOnWordStartOnly": false, // показывать больше соответствий в IntelliSense
"editor.occurrencesHighlight": "multiFile", // подсвечивает выделенный текст во всех открытых на экране редакторах
// странно, что не включено по умолчанию
"files.autoGuessEncoding": true, // автоопределение кодировки при открытии файла
"workbench.list.defaultFindMode": "filter", // автоматическая фильтрация при поиске в древовидных списках
"explorer.openEditors.sortOrder": "alphabetical", // включение сортировки открытых редакторов (включается слева в настройках проводника (тык на три точки))
"timeline.pageOnScroll": true, // автоматическая подгрузка более старых изменений во временную шкалу (она тоже слева) при скролле
"explorer.incrementalNaming": "smart", // инкрементировать число в названии при создании копии вместо добавления `copy`
"explorer.fileNesting.enabled": true, // вложение дочерних файлов (тут понятнее: https://code.visualstudio.com/updates/v1_64#_explorer-file-nesting)
// терминал
"terminal.integrated.scrollback": 10000, // увеличение количества строк в 10 раз (важно при работе с Serial)
"terminal.integrated.rightClickBehavior": "default", // контекстное меню при нажатии ПКМ
"terminal.integrated.confirmOnExit": "hasChildProcesses", // подтверждать выход из VSCode при выполнении задачи
// GIT и вкладка системы управления версиями
"scm.alwaysShowRepositories": true, // отображение названия текущего репозитория
"git.confirmSync": false, // отключение необходимости подтверждать синхронизацию
"git.enableSmartCommit": true, // отключение необходимости подтверждать фиксацию изменений
"git.closeDiffOnOperation": true, // закрывать редактор различий после выполнения операции
"git.terminalGitEditor": true, // ввод изменений в VSCode, а не в Vim/редакторе по умолчанию
// Markdown
"markdown.occurrencesHighlight.enabled": true, // общая подсветка ссылок на один заголовок
"markdown.validate.enabled": true, // подчёркивание битых ссылок на файлы и заголовки
"markdown.updateLinksOnFileMove.enabled": "prompt", // спрашивать об изменении ссылки при перемещении/переименовании файла
"markdown.experimental.updateLinksOnPaste": true, // умное копирование ссылок - они будут ссылаться на те же файлы
// Notebook
"search.experimental.closedNotebookRichContentResults": true, // поиск по закрытым файлам
"notebook.cellToolbarVisibility": "hover", // показ панели добавления нового блока при наведении, без клика
"notebook.lineNumbers": "on", // показ номера строк в ячейках с кодом
"jupyter.askForKernelRestart": false, // отключение подтверждения при перезагрузке ядра Jupyter
///
//// полезные расширения
///
// привязка к типам файлов
"workbench.editorAssociations": {
"*.bin": "hexEditor.hexedit" // открытие .bin в расширении Hex Editor
},
// Java
"java.inlayHints.parameterNames.enabled": "all", // показ названий параметров в подсказках для методов и функций
"files.exclude": { // добавляется автоматически расширением
"**/.classpath": true,
"**/.project": true,
"**/.settings": true,
"**/.factorypath": true
},
// Rust
"debug.allowBreakpointsEverywhere": true, // без этого невозможно установить брейкпоинты (по крайней мере так было в 2022-ом)
// markdownlint
"markdownlint.config": {
"MD033": false, // разрешить HTML
},
// Draw.io integration
"hediet.vscode-drawio.theme": "Kennedy", // выбор стандартной белой темы
// Code Spell Checker
"cSpell.language": "en,ru",
"": "", // нужно чтоб комментарии не ломались при добавлении новых параметров
}