{ "$schema": "./node_modules/@biomejs/biome/configuration_schema.json", "vcs": { "enabled": true, "clientKind": "git", "root": ".", "useIgnoreFile": true, "defaultBranch": "main" }, "files": { "ignoreUnknown": true, "includes": [ "**", // Build output "!**/dist/**/*", "!**/lib/**/*", "!**/examples/**/build/**/*", "!**/*.done.build.log", // Webpack output "**/webpack/**", // compat-workspaces — machine-generated, not subject to formatting "!**/test-version-utils/compat-workspaces/**/package.json", "!**/test-version-utils/compat-workspaces/generated-versions.cjs", // test collateral "!**/_package.json", "!**/fluid-runner/src/test/localOdspSnapshots/**", "!**/fluid-runner/src/test/telemetryExpectedOutputs/**", "!**/snapshots/**/*.json", "!**/snapshots/content", "!**/domain-schema-compatibility-snapshots/*/*.json", // Generated files "!**/src/**/test/types/**/*.generated.ts", "!**/src/packageVersion.ts", "!**/src/layerGenerationState.ts", // Dependencies "!**/node_modules/**/*", // Used by API-Extractor "!**/_api-extractor-temp/**/*", "!**/api-report/**/*", "!**/*.api.md", // Templates "!**/.changeset/templates/", "!**/*.hbs", // Test json // Note: This ignore must remain in the root config because biome scans for config files // regardless of includes patterns, and the test data contains Biome 1.x configs. "!**/build-tools/packages/build-tools/src/test/data/**", "!**/experimental/dds/tree/src/test/documents/**", "!**/packages/dds/map/src/test/mocha/snapshots/**/*.json", "!**/packages/dds/matrix/src/test/results/**/*.json", "!**/packages/dds/merge-tree/src/test/literature/**/*.txt", "!**/packages/dds/merge-tree/src/test/results/**/*.json", "!**/packages/dds/sequence/src/test/snapshots/**/*.json", "!**/packages/dds/sequence/src/test/results/**/*.json", "!**/packages/dds/sequence/src/test/fuzz/**/*.json", "!**/packages/dds/tree/src/test/snapshots/**/*.json", "!**/packages/dds/tree/src/test/shared-tree/fuzz/failures/**/*.json", "!**/packages/drivers/odsp-driver/src/test/**/*.json", "!**/packages/framework/attributor/src/test/attribution/documents/**/*.json", "!**/packages/test/snapshots/content/**", "!**/packages/tools/fluid-runner/src/test/localOdspSnapshots/**", "!**/packages/tools/fluid-runner/src/test/telemetryExpectedOutputs/**", "!**/tools/api-markdown-documenter/src/test/snapshots/**", // TODO: why does examples/apps/tree-cli-app/*.json not work? "!**/data/**/*.json", // tree entrypoint files are generated and may not conform to formatting rules "!**/packages/dds/tree/src/entrypoints/*.ts", // Generated type-tests "!**/*.generated.ts", // Generated bundle analysis files "!**/bundleAnalysis/**", // Generated oclif manifest files "!**/oclif.manifest.json", // es5 build output "!**/packages/framework/data-object-base/es5", // Test coverage reports "!**/coverage/**/*", "!**/nyc/**/*", // Git configuration file "!**/.git-blame-ignore-revs", // Generated by policy-check "!**/assertionShortCodesMap.ts", // These are actually templates, not pure YAML files "!**/templates/**/*.yaml", // These files are auto-generated according to the comments in the files "!**/charts/**/Chart.yaml", // Reports generated by dependency-cruiser "!**/.dependency-cruiser-known-violations.json", // Reports generated by our benchmark tests "!**/.timeTestsOutput/**", "!**/.memoryTestsOutput/**", "!**/.customBenchmarksOutput/**", // local-server-stress-tests results "!**/packages/test/local-server-stress-tests/results/**", // The paths below are not formatted by Biome. We ignore them explicitly so other tools that read this ignore // list, like fluid-build, know to ignore these files as well. "!**/*.md", "!**/.gitignore", "!**/.npmignore", "!**/LICENSE", "!**/.changeset/**", // Paths below are outside the client release group and aren't configured for biome. "!**/common/build/**", "!**/common/lib/**", "!**/website/**", "!**/server/**", "!**/tools/benchmark/**", "!**/tools/getkeys/**", "!**/tools/pipelines/**", "!**/tools/test-tools/**" ], "maxSize": 2097152 }, "assist": { "actions": { "source": { "organizeImports": "off" } } }, "linter": { "enabled": false, "rules": { "recommended": true } }, "formatter": { "enabled": true, "includes": ["**", "!**/dist/**", "!**/lib/**"], // Enabling this will cause Biome to format code that is not valid, which can sometimes make the code even worse // syntactically. This is especially annoying when using format-on-save, so we disable it by default. "formatWithErrors": false, "indentStyle": "tab", "lineWidth": 95, "lineEnding": "lf" }, "javascript": { "formatter": { "arrowParentheses": "always", "jsxQuoteStyle": "double", "semicolons": "always", "trailingCommas": "all", "quoteProperties": "preserve", "quoteStyle": "double", "bracketSpacing": true } }, "json": { "formatter": { "indentStyle": "tab" } }, "overrides": [ { // @fluid-experimental/tree FORMATTING // This configuration is used to format the @fluid-experimental/tree package, which uses different settings than // most projects. This override is needed to ensure that the formatter is applied correctly when run from the root // of the repo. // // This configuration should be kept up-to-date with the settings in `experimental/dds/tree/biome.jsonc`. "includes": ["**/experimental/dds/tree/**"], "formatter": { "lineWidth": 120 }, "javascript": { "formatter": { "jsxQuoteStyle": "single", "trailingCommas": "es5", "quoteStyle": "single" } } }, { // JSONC WITHOUT TRAILING COMMAS // JSONC is not a standard, and support for trailing commas is not universal. For // simplicity and safety, we parse most JSONC files in a liberal way -- allowing comments and trailing commas, but // format them conservatively without trailing commas. // // See also: https://github.com/microsoft/vscode/issues/102061 "includes": [ "**/*.jsonc", // Tools reading api-extractor config files do not consistently support trailing commas. "**/api-extractor*.json", // Tools reading tsdoc config files do not consistently support trailing commas. "**/tsdoc*.json", // fence.json files don't support trailing commas "**/fence.json", // These files contain comments, but are not JSONC files "**/tools/api-markdown-documenter/src/**/test/test-data/**" ], "json": { "parser": { "allowComments": true, "allowTrailingCommas": true }, "formatter": { "trailingCommas": "none" } } }, { // JSONC WITH TRAILING COMMAS // These JSONC files are known to support trailing commas. "includes": [ // vscode config files all support trailing commas. "**/.vscode/**/*.json", // tsconfig files support trailing commas. "**/tsconfig*.json" ], "json": { "parser": { "allowComments": true, "allowTrailingCommas": true }, "formatter": { "trailingCommas": "all" } } }, { // PACKAGE.JSON // These settings are used to format package.json files in the way npm itself does, with the exception of using // tabs instead of spaces. "includes": ["**/package.json"], "json": { "formatter": { "lineWidth": 1 } } } ] }