Skip to content

2.15.0 (2023-07-18)

Compare
Choose a tag to compare
@strager strager released this 19 Jul 03:03
· 986 commits to master since this release

Downloads

Added

  • LSP server: quick-lint-js can now receive configuration options via the
    initialize request. See LSP configuration
    documentation
    for
    details.
  • x = x; now reports E0383. (Implemented by Austin Garcia.)
  • ... without something following it now reports either E0708 ("unexpected
    '...'; expected expression") or E0709 ("expected variable name after
    '...'"). (Implemented by Isaac Nonato.)
  • TypeScript support (still experimental):
    • namespace A.B {} syntax (with .) is now supported.
    • static public myMethod() {} now reports E0380 ("'public' access
      specifier must precede 'static'"). (Implemented by Leszek Nowicki.)
    • class C { \u{63}onstructor() {} } now reports E0381 ("Typescript does
      not allow keywords to contain escape sequence"). (Implemented by Jait
      Jacob
      .)
    • export declare is now supported.

Fixed

  • Emacs (Flycheck): Using C-x C-; to comment a line now runs quick-lint-js
    (instead of leaving old diagnostics on the screen). This requires that you
    update your Emacs file: add new-line to the
    flycheck-check-syntax-automatically variable.
  • export default abstract; is now parsed correctly as the export of a variable
    named abstract.
  • export default async (newline) function f() {} is now parsed correctly as
    the export of a variable named async followed by the declaration of a
    non-async function named f.
  • TypeScript support (still experimental):
    • E0034 ("redeclaration of variable") is no longer incorrectly reported
      in various cases, including the following:
      • class A {} namespace A {}
      • function f<T>(T) {}
      • type X = null; var X;
      • namespace ns{} namespace ns{}
    • export = a b now reports E0027 ("missing semicolon after statement").
    • module 'name' { import ... } no longer falsely reports E0362 ("cannot
      import a module from inside a 'declare namespace'").
    • module 'name'; no longer falsely reports E0356 ("missing body for
      TypeScript namespace").