diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 000000000000000..75f549ad6d9a4e1 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,24 @@ +{ + "recommendations": [ + // Linting / Formatting + "rust-lang.rust-analyzer", + "esbenp.prettier-vscode", + "dbaeumer.vscode-eslint", + "usernamehw.errorlens", + + // Testing + "orta.vscode-jest", + + // PR management / Reviewing + "github.vscode-pull-request-github", + + // Showing todo comments + "gruntfuggly.todo-tree", + + // Collaborating + "ms-vsliveshare.vsliveshare", + + // Debugging + "ms-vscode.vscode-js-profile-flame" + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json index 306e2cb06dd865a..43daf375695185b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,15 +1,54 @@ { + // Formatting using Prettier by default for all languages + "editor.defaultFormatter": "esbenp.prettier-vscode", + // Formatting using Prettier for JavaScript, overrides VSCode default. + "[javascript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + // Formatting using Rust-Analyzer for Rust. + "[rust]": { + "editor.defaultFormatter": "rust-lang.rust-analyzer" + }, + // Linting using ESLint. "eslint.validate": [ "javascript", "javascriptreact", - { "language": "typescript", "autoFix": true }, - { "language": "typescriptreact", "autoFix": true } + "typescript", + "typescriptreact" ], - "debug.javascript.unmapMissingSources": true, + // Disable Jest autoRun as otherwise it will start running all tests the first time. "jest.autoRun": "off", + + // Debugging. + "debug.javascript.unmapMissingSources": true, + "files.exclude": { "**/node_modules": false, "node_modules": true, "*[!test]**/node_modules": true - } + }, + + // Ensure enough terminal history is preserved when running tests. + "terminal.integrated.scrollback": 10000, + + // Configure todo-tree to exclude node_modules, dist, and compiled. + "todo-tree.filtering.excludeGlobs": [ + "**/node_modules", + "**/dist", + "**/compiled" + ], + // Match TODO-APP in addition to other TODOs. + "todo-tree.general.tags": [ + "BUG", + "HACK", + "FIXME", + "TODO", + "XXX", + "[ ]", + "[x]", + "TODO-APP" + ], + + // Disable TypeScript surveys. + "typescript.surveys.enabled": false }