- Breaking change: ESLint 8+ is now required
- Support destructuring in
{@const}
tag
- Support
{@const}
tag
- Add injected globals when there's no instance script when using TypeScript
- Allow
$$Props
,$$Slots
,$$Events
interface/type usage - Improve type inference for autosubscribed stores
- Silence false positives for
<svelte:fragment let:x>
- Use TS 4.5
preserveValueImports
if it's available - Improve default setting for
svelte3/ignore-styles
: Now ignores styles if its tag has alang
ortype
attribute - Improve fix range handling
- Filter
no-undef
messages about$$Generic
- Support lazy-loading TypeScript compiler
- Support non-CommonJS format of ESLint configuration file when using TypeScript by specifying
true
in configuration - Improve logic for finding the correct
Linter
instance in a workspace with multiple directories - Improve filtering of
@typescript-eslint/indent
and@typescript-eslint/quotes
messages like what already happens withindent
andquotes
- Fix erroneous messages when a component only writes to a store
- Silence some incorrect
unsafe-member-access
errors - see README for current limitations
- Fix erroneous errors from two-way binding in TypeScript components
- Fix erroneous warnings from the removal of
import
s in TypeScript components
- Add TypeScript support
- Breaking change: Node 10+ is now required
- There are no specific changes yet that will not work on Node 8, but tests will no longer be run on Node 8, and there are no guarantees about it
- Fix erroneous
no-unused-vars
for variables that are assigned to in the template, but are only used in the script
- Fix mishandling of blocks whose last line consists of only the expected indentation
- Fix regression when using
linebreak-style
with Windows line endings
- Named code blocks were in fact a breaking change, sorry!
- They're now disabled by default, but can be enabled with
svelte3/named-blocks
- Expose the parts of each linted component as separate named code blocks
module.js
,instance.js
, andtemplate.js
- Add
svelte3/compiler
setting to allow overriding which instance of the Svelte compiler is used
- Fix
let:
handling on regular elements as well - Separate
then
andcatch
scopes in{#await}
- Fix handling of the scope created by
let:
directives
- Fix attribute parsing edge case in
svelte3/ignore-styles
callback
- Respect
no-self-assign
rule unless self-assignment is to a top-level variable known to the compiler - Better handling of identifiers containing unicode characters
- Respect
quotes
rule unless inside a template expression which is inside an attribute or directive enclosed in quotes - Respect
no-unused-expressions
rule again (which is now safe thanks to a previous refactor)
- Stop using inline configuration comments internally, to avoid issues with
--no-inline-config
and--report-unused-disable-directives
- Handle
then
andcatch
scope in{#await}
- Enforce semicolon rules in template expressions
- Fix parsing of template expressions that are object literals
- Don't produce multiple messages for template expressions wrapped in parentheses
- Preserve linting messages about labels other than
$
- Actually fix ignoring of rules in the template
- Disregard
eol-last
rule - Disregard
no-unused-expressions
rule in the template - Fix bug where rules intended to only be ignored in the template were being ignored in the entire file
- Require Svelte v3.2+ and ESLint 6+
- Reworked configuration:
svelte3/enabled
has been removed in favor of registering asvelte3/svelte3
processor that you need to enable on filessvelte3/ignore-warnings
now only takes a callback which is passed the warning objectsvelte3/compiler-options
now only takes a compiler options objectsvelte3/ignore-styles
now only takes a preprocessor-style callbacksvelte3/lint-template
has been removed, and template linting is now always enabled
- Fix a weird edge case where fixes to problems could be lost in certain cases
- Internal improvements to AST walk
- Avoid mutating the AST while linting, which can have adverse effects
- Pass a second argument to the
svelte3/ignore-warnings
function that contains the entire warning object - Disregard
no-labels
rule andno-restricted-syntax
rule in places where it disallows labels
- Experimental support for linting expressions in the template, behind the
svelte3/lint-template
setting. This feature requires Svelte 3.2.0
- Svelte v3 release party!
- Fix regression with specifying an array of warnings to ignore
- Add
svelte3/compiler-options
setting to control how the compiler is called during linting
- Proper fix for not wiping tag names that begin with
<style
- With
svelte3/ignore-warnings
, don't wipe elements whose tag names merely begin with<style
- The plugin is now published to npm
- Better handling for files linted in Windows/CRLF
linebreak-style
- Work around issues caused by ESLint issues with fixes that replace more of the file than necessary
- Make sure fixes for issues at the beginning and end of the scripts do not change text outside of the scripts
- Reworked configuration to be more flexible:
svelte3/ignore
has been renamed tosvelte3/ignore-warnings
svelte3/extensions
has been removed andsvelte3/enabled
has been added (which works differently but is more powerful)
svelte3/ignore-styles
has been added as an immediate solution for components with styles written in something other than normal CSS
- Support and require at least beta 4
- Add
svelte3/ignore
setting for ignoring specific compiler warnings
- Include the position of the end of a compiler error message, when available
- Don't warn about
export let
s with default values and no other reassignments when usingprefer-const
- Add handling of store auto-subscriptions and other injected variables
- Require alpha 21
- Initial release