#10540·biome

Tracking issue: port eslint-plugin-svelte rules

Author: MoktoCreated Jun 2, 2026Updated Sep 17, 2026

Tracking the port of eslint-plugin-svelte rules to Biome. Grouped by the plugin's own categories. Stylistic rules largely overlap with Biome's formatter and may not all become lint rules.

Possible Errors

Rule Notes Difficulty
[ ] no-dom-manipulating needs bind:this variable tracking medium
[ ] no-dupe-else-if-blocks easy
[ ] no-dupe-style-properties easy
[ ] no-dupe-use-directives easy
[ ] no-nested-style-tag easy
[ ] no-not-function-handler needs type info for identifier expressions hard
[ ] no-object-in-text-mustaches easy
[ ] no-raw-special-elements easy
[ ] no-shorthand-style-property-overrides needs CSS shorthand→longhand mapping medium
[ ] no-store-async easy
[ ] no-top-level-browser-globals needs guard/control-flow analysis medium
[ ] no-unknown-style-directive-property needs CSS property database medium
[ ] prefer-svelte-reactivity needs mutation tracking after instantiation hard
[ ] require-store-callbacks-use-set-param easy
[ ] require-store-reactive-access cross-file stores need type info hard
[ ] valid-style-parse unknown lang= values need preprocessor awareness medium

Security

Rule Notes Difficulty
[ ] no-at-html-tags easy

Best Practices

Rule Notes Difficulty
[ ] block-lang easy
[ ] no-add-event-listener easy
[ ] no-at-const-tags easy
[ ] no-at-debug-tags easy
[ ] no-ignored-unsubscribe needs usage tracking for subscribe() return value medium
[ ] no-inline-styles easy
[ ] no-inspect easy
[ ] no-svelte-internal easy
[ ] no-unnecessary-state-wrap needs type info for reactive class detection hard
[ ] no-unused-props cross-file usage needs type system hard
[ ] no-useless-children-snippet easy
[ ] no-useless-mustaches easy
[ ] prefer-derived-over-derived-by easy
[ ] prefer-destructured-store-props needs data-flow for property access tracking hard
[ ] prefer-writable-derived needs $state+$effect pattern matching hard
[x] require-each-key done → useSvelteRequireEachKey (#10503)
[ ] require-optimized-style-attribute easy
[ ] require-stores-init easy
[ ] valid-each-key easy

Stylistic Issues

Rule Notes Difficulty
[ ] consistent-selector-style needs CSS scope analysis medium
[ ] derived-has-same-inputs-outputs easy
[ ] max-lines-per-block easy
[ ] no-extra-reactive-curlies easy
[ ] no-restricted-html-elements easy
[ ] prefer-class-directive easy
[ ] prefer-style-directive easy
[ ] require-event-prefix easy
[ ] shorthand-attribute easy
[ ] shorthand-directive easy
[ ] sort-attributes easy

SvelteKit

Rule Notes Difficulty
[ ] no-export-load-in-svelte-module-in-kit-pages needs SvelteKit file routing awareness medium
[ ] no-navigation-without-resolve medium
[ ] valid-prop-names-in-kit-pages needs SvelteKit routing config hard