Skip to content

📋 Tracking issue: port eslint-plugin-svelte rules #10540

Description

@Mokto

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Fields

    No fields configured for Umbrella.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions