Skip to content

Instantly share code, notes, and snippets.

@ricealexander
Last active August 18, 2021 20:44
Show Gist options
  • Save ricealexander/c402e44150c1e62357d2568179716b5e to your computer and use it in GitHub Desktop.
Save ricealexander/c402e44150c1e62357d2568179716b5e to your computer and use it in GitHub Desktop.
VSCode settings with rationale
// Project settings should contain only settings that have an impact on the codebase
// These settings may change how editor interacts with files. All settings that have to do
// with UI or opinionated editor behavior that doesn't affect code should go in user settings
// Editor Settings
// editor.insertSpaces, editor.tabSize: Prefer 2️⃣space indentation
// ESLint Settings
// editor.codeActionsOnSave Auto-correct ESLint code
// File Settings
// files.autoSave: πŸ”Ή(Optional) I usually prefer disabling autoSave, but onWindowChange can be nice
// files.eol: LF (\n) is the proper end-of-line πŸ”š character
// files.insertFinalNewLine: One practice is to end all files with a blank line
// files.trimTrailingWhitespace: Trailing whitespace is never intentional
// Search Preferences
// search.followSymlinks: πŸ’ (If Needed) Improves search performance ⚑️ for huge repositories
{
"editor.insertSpaces": true,
"editor.tabSize": 2,
"editor.codeActionsOnSave": {
"source.fixAll": false,
"source.fixAll.eslint": true
},
"files.autoSave": "onWindowChange",
"files.eol": "\n",
"files.insertFinalNewline": true,
"files.trimTrailingWhitespace": true,
"search.followSymlinks": false,
}
// Editor settings should contain non-project-specific settings
// These should handle UI and Extensions, things that don't necessarily affect individual projects
// Settings file is located at C:\Users\<username>\AppData\Roaming\Code\User\settings.json
// CodeSnap - https://marketplace.visualstudio.com/items?itemName=adpyke.codesnap
// A great extension for screenshotting selected code
// configure to remove stylistic effects so it exactly mirrors the editor
// Editor Minimap - https://code.visualstudio.com/updates/v1_10#_preview-minimap
// editor.minimap.renderCharacters: Set to false, the minimap uses pretty, colored bars
// editor.minimap.maxColumn: Controls minimap width
// editor.minimap.showSlider: Prefer visible minimap slider
// Editor Settings - https://vscode.readthedocs.io/en/latest/getstarted/settings#copy-of-default-settings
// editor.copyWithSyntaxHighlighting Copy from editor as plain text
// editor.detectIndentation: disable due to indentation bugs when tabSize is unset πŸ›πŸπŸœ
// editor.emptySelectionClipboard: CTRL+C should not copy line when nothing is selected.
// 🐝🐜🐞 This also disables CTRL+X for copying a line, which makes this setting frustrating.
// editor.fontFamily, editor.fontLigatures: Fira Code is a great Ligature Font
// editor.renderWhitespace: 'all' shows all whitespace, 'none' shows none, 'boundary' is an elegant compromise
// editor.wordWrap: Prefer word-wrap by default, `Alt+Z` can toggle this
// Intellisense Settings - Intellisense should display suggestions but NEVER auto-apply them.
// editor.acceptSuggestionOnCommitCharacter
// editor.acceptSuggestionOnEnter
// editor.tabCompletion
// ESLint Settings
// eslint.alwaysShowStatus: Always display ESLint on status bar for better debugging
// Explorer Settings
// explorer.confirmDelete Do Not Prompt when deleting files from file tree
// explorer.confirmDragAndDrop Do Not Prompt when dragging files to file tree
// explorer.openEditors.visible Limit max number of Open Editors in Explorer so it doesn't get unruly
// Files Settings
// Use LF as default line-endings
// Search Settings
// search.exclude Exclude specific directories from search
// Telemetry I do not trust Microsoft to determine relevant data nor to make telemetry performant
// telemetry.enableCrashReporter Do not send crash reports
// telemetry.enableTelemetry Do not allow Microsoft Telemetry
// Workbench Settings
// workbench.colorTheme: πŸ”Ή(Optional) Sometimes I prefer Cobalt2 them
// gitDecoration.ignoredResourceForeground πŸ”Ή(Optional) When using Cobalt2 theme, .gitignored-resources should NOT be red πŸ”΄
// workbench.iconTheme: The BEST icon theme
{
"codesnap.boxShadow": "none",
"codesnap.containerPadding": "0",
"codesnap.roundedCorners": false,
"codesnap.showLineNumbers": true,
"codesnap.showWindowControls": false,
"codesnap.showWindowTitle": false,
"codesnap.target": "container",
"codesnap.transparentBackground": true,
"editor.minimap.renderCharacters": false,
"editor.minimap.maxColumn": 150,
"editor.minimap.showSlider": "always",
"editor.copyWithSyntaxHighlighting": false,
"editor.detectIndentation": false,
"editor.emptySelectionClipboard": false,
"editor.fontFamily": "'Fira Code', Consolas, 'Courier New', monospace",
"editor.fontLigatures": true,
"editor.renderWhitespace": "boundary",
"editor.acceptSuggestionOnCommitCharacter": false,
"editor.acceptSuggestionOnEnter": "off",
"editor.tabCompletion": "off",
"eslint.alwaysShowStatus": true,
"explorer.confirmDelete": false,
"explorer.confirmDragAndDrop": false,
"explorer.openEditors.visible": 5,
"files.associations": {
"_redirects": "ini",
".htmlhintrc": "jsonc"
},
"files.eol": "\n",
"search.exclude": {
"**/.cache": true,
"**/.git": true,
"**/dist": true,
"**/node_modules": true
},
"telemetry.enableCrashReporter": false,
"telemetry.enableTelemetry": false,
"workbench.colorTheme": "Cobalt2",
"workbench.colorCustomizations": {
"gitDecoration.ignoredResourceForeground": "#727272"
},
"workbench.iconTheme": "material-icon-theme"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment