fix(linter): show the escaped span for no-useless-escape (#790)

closes #782
This commit is contained in:
Boshen 2023-08-25 15:21:17 +08:00 committed by GitHub
parent 1a591c7a2d
commit 33ea85813e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 64 additions and 62 deletions

View file

@ -68,7 +68,9 @@ fn check(ctx: &LintContext<'_>, start: u32, offsets: &[usize]) {
for offset in offsets {
let offset = start as usize + offset;
let c = source_text[offset..].chars().next().unwrap();
ctx.diagnostic(NoUselessEscapeDiagnostic(c, Span::new(offset as u32, offset as u32)));
let offset = offset as u32;
let len = c.len_utf8() as u32;
ctx.diagnostic(NoUselessEscapeDiagnostic(c, Span::new(offset - 1, offset + len)));
}
}

View file

@ -5,373 +5,373 @@ expression: no_useless_escape
⚠ eslint(no-useless-escape): Unnecessary escape character '#'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = /\#/;
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character ';'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = /\;/;
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '\''
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = "\'";
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '#'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = "\#/";
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character 'a'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = "\a"
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character 'B'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = "\B";
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '@'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = "\@";
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character 'a'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = "foo \a bar";
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '"'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = '\"';
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '#'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = '\#';
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '$'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = '\$';
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character 'p'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = '\p';
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character 'p'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = '\p\a\@';
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character 'a'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = '\p\a\@';
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '@'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = '\p\a\@';
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character 'd'
╭─[no_useless_escape.tsx:1:1]
1 │ <foo attr={"\d"}/>
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '`'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = '\`';
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '"'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = `\"`;
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '\''
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = `\'`;
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '#'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = `\#`;
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '`'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = '\`foo\`';
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '`'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = '\`foo\`';
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '"'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = `\"${foo}\"`;
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '"'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = `\"${foo}\"`;
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '\''
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = `\'${foo}\'`;
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '\''
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = `\'${foo}\'`;
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '#'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = `\#${foo}`;
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character ' '
╭─[no_useless_escape.tsx:1:1]
1 │ let foo = '\ ';
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character ' '
╭─[no_useless_escape.tsx:1:1]
1 │ let foo = /\ /;
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '$'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = `\$\{{${foo}`;
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '{'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = `\$\{{${foo}`;
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '$'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = `\$a${foo}`;
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '{'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = `a\{{${foo}`;
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '-'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = /[ab\-]/
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '-'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = /[\-ab]/
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '?'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = /[ab\?]/
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '.'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = /[ab\.]/
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '|'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = /[a\|b]/
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '-'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = /\-/
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '-'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = /[\-]/
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '$'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = /[ab\$]/
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '('
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = /[\(paren]/
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '['
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = /[\[]/
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '/'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = /[\/]/
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character 'B'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = /[\B]/
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '-'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = /[a][\-b]/
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '-'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = /\-[]/
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character '^'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = /[a\^]/
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character 'e'
╭─[no_useless_escape.tsx:1:1]
1 │ `multiline template
2 │ literal with useless \escape`
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character 'e'
╭─[no_useless_escape.tsx:1:1]
1 │ `multiline template
2 │ literal with useless \escape`
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character 'e'
╭─[no_useless_escape.tsx:1:1]
1 │ `template literal with line continuation \
2 │ and useless \escape`
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character 'e'
╭─[no_useless_escape.tsx:1:1]
1 │ `template literal with line continuation \
2 │ and useless \escape`
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character 'a'
╭─[no_useless_escape.tsx:3:1]
3 │
4 │ \and useless escape`
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character 'a'
╭─[no_useless_escape.tsx:3:1]
3 │ \
4 │ \and useless escape`
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character 'a'
╭─[no_useless_escape.tsx:1:1]
1 │ `\a```
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character ''
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = /\([^\\]+)\$|\(([^\)\)]+)\)$/;
·
· ───
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character ''
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = /\([^\\]+)\$|\(([^\)\)]+)\)$/;
·
· ───
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character ''
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = /\([^\\]+)\$|\(([^\)\)]+)\)$/;
·
· ───
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character ''
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = /\([^\\]+)\$|\(([^\)\)]+)\)$/;
·
· ───
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character ')'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = /\([^\\]+)\$|\(([^\)\)]+)\)$/;
·
· ──
╰────
⚠ eslint(no-useless-escape): Unnecessary escape character ')'
╭─[no_useless_escape.tsx:1:1]
1 │ var foo = /\([^\\]+)\$|\(([^\)\)]+)\)$/;
·
· ──
╰────