{ "eslint.workingDirectories": [ { "mode": "auto", }, ], "js/ts.tsdk.path": "node_modules/typescript/lib", "typescript.tsdk": "node_modules/typescript/lib", // We prefer to use type-only imports, so we want the autoimporter to do that by default. "js/ts.preferences.preferTypeOnlyAutoImports": true, "js/ts.preferences.autoImportFileExcludePatterns": [ // Avoid suggesting autoimports for the 'previous' version packages which are used for typetesting. "**/node_modules/**/@fluid*/*-previous", "**/node_modules/**/@fluid*/*-previous/*", ], "typescript.preferences.preferTypeOnlyAutoImports": true, "typescript.preferences.autoImportFileExcludePatterns": [ // Avoid suggesting autoimports for the 'previous' version packages which are used for typetesting. "**/node_modules/**/@fluid*/*-previous", "**/node_modules/**/@fluid*/*-previous/*", ], // Autodetecting tasks on a repo this size makes 'Tasks: Run Build Task' unusably slow. // (See https://github.com/Microsoft/vscode/issues/34387) "js/ts.tsc.autoDetect": "off", "typescript.tsc.autoDetect": "off", "npm.autoDetect": "off", "files.associations": { "**/tools/pipelines/**/*.yml": "azure-pipelines", // good-fences' fence files support comments, so detect them as "jsonc" instead of "json": "fence.json": "jsonc", ".git-blame-ignore-revs": "ignore", }, // Leverage the 1ES Pipeline templates schema for syntax check in YAML files if possible. // Only works if signed in to the Azure Pipelines extension with a @microsoft.com account. "azure-pipelines.1ESPipelineTemplatesSchemaFile": true, "deno.enable": false, "deno.lint": false, "deno.unstable": false, // Custom dictionary for 'streetsidesoftware.code-spell-checker' extension. "cSpell.words": [ "boop", "contoso", "corecursive", "debuggability", "denormalized", "endregion", "fluidframework", "handlecache", "handletable", "incrementality", "injective", "insertable", "losslessly", "mitigations", "mocharc", "multinomial", "nonfinite", "privateremarks", "pseudorandomly", "reconnections", "revertibles", "Routerlicious", "runtimes", "snapshotlegacy", "snapshotting", "testconsumer", "Tinylicious", "tombstoned", "TSDoc", "unacked", "unaugmented", "undoprovider", "unsequenced", "validatable", ], // Enable biome as default formatter, and disable rules that disagree with it "editor.defaultFormatter": "biomejs.biome", "editor.insertSpaces": false, // Also configure the formatter on a per-language basis for some common languages/file-types, to make sure it is applied // even if someone's User Settings specify a different formatter at this level (which overrides the root-level // 'editor.defaultFormatter'). "[json]": { "editor.defaultFormatter": "biomejs.biome", }, "[javascript]": { "editor.defaultFormatter": "biomejs.biome", }, "[typescript]": { "editor.defaultFormatter": "biomejs.biome", }, // Handle trailing whitespace and newlines for all files, in a way that matches how we configure the repo-wide formatter. // They're specified here so they apply to files we don't format explicitly (e.g. yml files). // Note they don't affect indentation, so they shouldn't inadvertently break yml files like other formatter rules might. "files.insertFinalNewline": true, "files.trimFinalNewlines": true, "files.trimTrailingWhitespace": true, // Don't search for the biome executable in the path, as it's not a globally installed tool. "biome.searchInPath": false, // Customizations for VSCode search results. // These entries should probably be kept more or less in sync with the .gitignore file. // They are added here because when doing a search in VSCode and using the "files to include" feature, the underlying // ripgrep command will give higher precedence to including any files that match the patterns from "files to include" // than to excluding files that match the patterns in the .gitignore file, which sometimes results in search results // with a lot of unnecessary matches. // By adding some patterns here too, VSCode passes them explicitly to ripgrep as additional patterns to exclude, with // a higher priority than the "files to include" patterns. // Note that they should be prefixed with "**/" compared to their respective entries in .gitignore. "search.exclude": { "**/*.js.map": true, "**/*build.log": true, "**/*.tsbuildinfo": true, "**/_api-extractor-temp": true, // exclude built `dist` folders "**/dist/*": true, // exclude built `.next` folders (from NextJS' local dev server) "**/.next/*": true, // exclude built `lib` folders but preserve ./common/lib // paths with packages container "**/packages/**/lib/*": true, // other sets known to build `lib` "{common/lib,examples,experimental}/**/lib/*": true, "**/nyc/*": true, "**/*.log": true, "**/DS_Store": true, }, "search.followSymlinks": false, }