Based on a comprehensive review of Symphony's architecture, features, and project goals, this document outlines recommended VSCode settings for the Symphony project. These settings are organized into three main categories to optimize the development experience and maintain consistency across the project.
These settings are essential for project consistency, development workflow, and maintaining the Symphony project standards:
{
// Core project settings
"editor.tabSize": 4,
"editor.insertSpaces": true,
"editor.detectIndentation": false,
"editor.formatOnSave": true,
"editor.defaultFormatter": null, // Will be overridden per-language
"editor.codeActionsOnSave": {
"source.fixAll": true,
"source.organizeImports": true
},
// File handling and consistency
"files.encoding": "utf8",
"files.eol": "\\\\n",
"files.insertFinalNewline": true,
"files.trimTrailingWhitespace": true,
"files.exclude": {
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/CVS": true,
"**/.DS_Store": true,
"**/Thumbs.db": true,
"**/node_modules/*/**": true,
"**/.cargo": true,
"**/target/debug/**": true
},
// Git integration settings
"git.enableSmartCommit": true,
"git.confirmSync": false,
"git.autofetch": true,
"git.fetchOnPull": true,
"git.branchPrefix": "symphony/",
"git.branchSortOrder": "alphabetically",
// Terminal settings for cross-platform consistency
"terminal.integrated.defaultProfile.windows": "PowerShell",
"terminal.integrated.defaultProfile.linux": "bash",
"terminal.integrated.defaultProfile.osx": "zsh",
"terminal.integrated.gpuAcceleration": "on",
// Workspace trust settings
"security.workspace.trust.enabled": true,
"security.workspace.trust.startupPrompt": "once",
"security.workspace.trust.untrustedFiles": "prompt"
}
These settings enhance development experience and are highly recommended for Symphony developers:
{
// Editor experience
"editor.wordWrap": "off",
"editor.rulers": [100],
"editor.bracketPairColorization.enabled": true,
"editor.guides.bracketPairs": true,
"editor.guides.bracketPairsHorizontal": "active",
"editor.guides.highlightActiveBracketPair": true,
"editor.guides.indentation": true,
"editor.guides.highlightActiveIndentation": true,
"editor.stickyScroll.enabled": true,
"editor.minimap.enabled": true,
"editor.minimap.renderCharacters": false,
"editor.minimap.maxColumn": 100,
"editor.minimap.showSlider": "always",
"editor.semanticHighlighting.enabled": true,
"editor.occurrencesHighlight": "multiFile",
"editor.linkedEditing": true,
"editor.foldingImportsByDefault": true,
// Markdown and documentation support
"markdown.preview.breaks": true,
"markdown.validate.enabled": true,
"markdown.updateLinksOnFileMove.enabled": "prompt",
"markdown.preview.typographer": true,
// Code intelligence
"editor.suggestSelection": "first",
"editor.inlineSuggest.enabled": true,
"editor.parameterHints.enabled": true,
"editor.quickSuggestions": {
"other": true,
"comments": false,
"strings": false
},
"editor.acceptSuggestionOnCommitCharacter": true,
"editor.acceptSuggestionOnEnter": "on",
"editor.inlayHints.enabled": "on",
// Search optimization
"search.exclude": {
"**/node_modules": true,
"**/target": true,
"**/.git": true,
"**/dist": true,
"**/build": true,
"**/*.code-search": true
},
"search.searchOnType": true,
"search.smartCase": true,
"search.followSymlinks": false,
"search.useGlobalIgnoreFiles": true,
"search.useIgnoreFiles": true,
// Explorer and UI configuration
"workbench.editor.showTabs": true,
"workbench.sideBar.location": "left",
"workbench.statusBar.visible": true,
"explorer.confirmDragAndDrop": false,
"explorer.confirmDelete": true,
"workbench.editor.enablePreview": false,
"workbench.commandPalette.history": 100,
"workbench.layoutControl.enabled": true,
"workbench.editor.tabSizing": "shrink",
// Symphony-specific musical theme settings
"workbench.colorCustomizations": {
"tab.activeBorder": "#8c61ff",
"activityBar.background": "#1e1e2e",
"sideBar.background": "#1e1e2e",
"editor.background": "#1a1a2a",
"statusBar.background": "#2a2a3a",
"statusBar.noFolderBackground": "#2a2a3a",
"statusBar.debuggingBackground": "#7c4dff"
}
}
These optional settings provide further customization for individual developers or specific workflows:
{
// Performance optimizations
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/.git/subtree-cache/**": true,
"**/node_modules/*/**": true,
"**/.hg/store/**": true,
"**/target/**": true,
"**/dist/**": true,
"**/build/**": true
},
"editor.largeFileOptimizations": true,
// Visual enhancements
"workbench.colorTheme": "Default Dark Modern", // Or "Symphony Dark" when created
"workbench.iconTheme": "material-icon-theme", // Better for musical metaphor
"workbench.productIconTheme": "material-product-icons",
"window.commandCenter": true,
"window.titleBarStyle": "custom",
"window.menuBarVisibility": "toggle",
// Productivity features
"editor.fontSize": 14,
"editor.fontFamily": "'Fira Code', Consolas, 'Courier New', monospace", // Fira Code has musical-looking ligatures
"editor.fontLigatures": true,
"editor.cursorSmoothCaretAnimation": "on",
"editor.cursorBlinking": "phase",
"editor.smoothScrolling": true,
"editor.mouseWheelZoom": true,
// Debug experience enhancement
"debug.inlineValues": "auto",
"debug.toolBarLocation": "docked",
"debug.showInStatusBar": "always",
"debug.focusWindowOnBreak": true,
"debug.openDebug": "openOnDebugBreak",
"debug.console.fontFamily": "'Fira Code', Consolas, 'Courier New', monospace",
"debug.console.fontSize": 13,
// Terminal customization
"terminal.integrated.fontSize": 14,
"terminal.integrated.fontFamily": "'Fira Code', Consolas, 'Courier New', monospace",
"terminal.integrated.cursorBlinking": true,
"terminal.integrated.persistentSessionScrollback": 5000,
"terminal.integrated.tabs.enabled": true,
"terminal.integrated.tabs.showActions": "always",
"terminal.integrated.tabs.showActiveTerminal": "always",
// IntelliSense tuning
"editor.snippetSuggestions": "inline",
"editor.tabCompletion": "on",
"editor.wordBasedSuggestions": "matchingDocuments",
"editor.suggest.preview": true,
"editor.suggest.showStatusBar": true,
// Symphony-specific settings
"workbench.startupEditor": "welcomePage", // Can be replaced with Symphony welcome
"workbench.tree.indent": 16, // Better for visualizing project structure as a "score"
"workbench.tree.renderIndentGuides": "always",
"workbench.view.alwaysShowHeaderActions": true
}
For specific languages used in Symphony, consider these settings:
{
// TypeScript/JavaScript settings
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"editor.tabSize": 2,
"editor.codeActionsOnSave": {
"source.organizeImports": true,
"source.fixAll.eslint": true
}
},
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"editor.tabSize": 2,
"editor.codeActionsOnSave": {
"source.organizeImports": true,
"source.fixAll.eslint": true
}
},
"typescript.updateImportsOnFileMove.enabled": "always",
"javascript.updateImportsOnFileMove.enabled": "always",
"typescript.preferences.importModuleSpecifier": "relative",
"typescript.preferences.quoteStyle": "single",
"javascript.preferences.quoteStyle": "single",
"typescript.suggest.completeFunctionCalls": true,
"javascript.suggest.completeFunctionCalls": true,
// Python settings
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true,
"editor.tabSize": 4,
"editor.insertSpaces": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
}
},
"python.analysis.typeCheckingMode": "basic",
"python.analysis.autoImportCompletions": true,
"python.testing.pytestEnabled": true,
"python.linting.enabled": true,
"python.linting.pylintEnabled": true,
"python.linting.flake8Enabled": true,
// Rust settings
"[rust]": {
"editor.defaultFormatter": "rust-lang.rust-analyzer",
"editor.formatOnSave": true,
"editor.tabSize": 4
},
"rust-analyzer.checkOnSave.command": "clippy",
"rust-analyzer.inlayHints.chainingHints.enable": true,
"rust-analyzer.inlayHints.typeHints.enable": true,
"rust-analyzer.cargo.allFeatures": true,
// JSON settings
"[json]": {
"editor.defaultFormatter": "vscode.json-language-features",
"editor.tabSize": 2,
"editor.formatOnSave": true
},
"[jsonc]": {
"editor.defaultFormatter": "vscode.json-language-features",
"editor.tabSize": 2,
"editor.formatOnSave": true
},
// HTML/CSS settings
"[html]": {
"editor.defaultFormatter": "vscode.html-language-features",
"editor.formatOnSave": true,
"editor.tabSize": 2
},
"[css]": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"editor.tabSize": 2
},
"[scss]": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"editor.tabSize": 2
},
// Markdown settings
"[markdown]": {
"editor.defaultFormatter": "yzhang.markdown-all-in-one",
"editor.formatOnSave": true,
"editor.wordWrap": "on",
"editor.quickSuggestions": {
"comments": false,
"strings": true,
"other": true
}
}
}
To complement these settings, the following extensions are recommended for Symphony development: