Skip to content

Commit a76bf1c

Browse files
committed
feat: enable TypeScript by default
Enable TypeScript in the following UIs: * CLI * Vim plugins * ALE * CoC (untested) * nvim-lspconfig * Visual Studio Code extension * Web demo Also document how to enable TypeScript in the following UIs: * Emacs plugins * Flymake * Sublime Text The following UIs aren't working with TypeScript yet: * Emacs plugins * Eglot #1146 * Flycheck #1148 * LSP Mode #1147 * Kate #1149
1 parent b80b256 commit a76bf1c

File tree

22 files changed

+92
-210
lines changed

22 files changed

+92
-210
lines changed

docs/CHANGELOG.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,17 @@ Semantic Versioning.
88

99
## Unreleased
1010

11+
### Added
12+
13+
* TypeScript is now supported by default in the CLI and in all editor plugins.
14+
* Exception: [Emacs with Eglot](https://github.com/quick-lint/quick-lint-js/issues/1146)
15+
* Exception: [Emacs with Flycheck](https://github.com/quick-lint/quick-lint-js/issues/1148)
16+
* Exception: [Emacs with LSP Mode](https://github.com/quick-lint/quick-lint-js/issues/1147)
17+
* Exception: [Kate](https://github.com/quick-lint/quick-lint-js/issues/1149)
18+
1119
### Fixed
1220

13-
* TypeScript support (still experimental):
21+
* TypeScript support:
1422
* Assigning to a variable with the same name as an `import`ed type no longer
1523
falsely reports [E0185][] ("assignment to imported variable").
1624
* Interface index signature variables can now be named contextual keywords

docs/cli.adoc

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -172,25 +172,15 @@ Added in quick-lint-js version 0.3.0.
172172
* *default* (default): infer the _languageid_ from the file's extension:
173173
** *.js*: *javascript-jsx*
174174
** *.jsx*: *javascript-jsx*
175-
** (anything else): *javascript-jsx*
176-
* *experimental-default*: infer the _languageid_ from the file's extension (EXPERIMENTAL; subject to change in future versions of quick-lint-js):
177-
** *.js*: *javascript-jsx*
178-
** *.jsx*: *javascript-jsx*
179-
** *.d.ts*: *experimental-typescript-definition*
180-
** *.ts*: *experimental-typescript*
181-
** *.tsx*: *experimental-typescript-jsx*
175+
** *.d.ts*: *typescript-definition*
176+
** *.ts*: *typescript*
177+
** *.tsx*: *typescript-jsx*
182178
** (anything else): *javascript-jsx*
183179
* *javascript*: the latest ECMAScript standard with proposed features.
184180
* *javascript-jsx*: like *javascript* but with JSX (React) extensions.
185-
* *experimental-typescript*: the latest TypeScript version.
186-
(EXPERIMENTAL.
187-
Subject to change in future versions of quick-lint-js.)
188-
* *experimental-typescript-definition*: the latest TypeScript version (.d.ts file).
189-
(EXPERIMENTAL.
190-
Subject to change in future versions of quick-lint-js.)
191-
* *experimental-typescript-jsx*: like *experimental-typescript* but with JSX (React) extensions.
192-
(EXPERIMENTAL.
193-
Subject to change in future versions of quick-lint-js.)
181+
* *typescript*: the latest TypeScript version.
182+
* *typescript-definition*: the latest TypeScript version (.d.ts file).
183+
* *typescript-jsx*: like *typescript* but with JSX (React) extensions.
194184

195185
If *--language* is given twice, then the _languageid_ for the first *--language* option applies only to the input files between the two *--language* options, and the _languageid_ for the second *--language* option apples only to the input files after the second *--language* option.
196186
See the <<Example>> section for an example.

docs/lsp.adoc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,19 +88,19 @@ command-line option
8888
|`javascript-jsx`
8989

9090
|`tsx`
91-
|`experimental-typescript-jsx`
91+
|`typescript-jsx`
9292

9393
|`typescript`
9494
|See below
9595

9696
|`typescriptsource`
97-
|`experimental-typescript`
97+
|`typescript`
9898

9999
|`typescriptdefinition`
100-
|`experimental-typescript-definition`
100+
|`typescript-definition`
101101

102102
|`typescriptreact`
103-
|`experimental-typescript-jsx`
103+
|`typescript-jsx`
104104

105105
|(any)
106106
|See below

plugin/emacs/flymake-quicklintjs.el

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,6 @@
3939
:group 'flymake-quicklintjs
4040
:type '(repeat string))
4141

42-
(defcustom flymake-quicklintjs-experimental-typescript nil
43-
"Enable experimental TypeScript support (EXPERIMENTAL; subject to change in future versions of quick-lint-js)."
44-
:group 'flymake-quicklintjs
45-
:type '(boolean))
46-
4742
(defvar-local flymake-quicklintjs--proc nil
4843
"Internal variable for `flymake-quicklintjs'")
4944

@@ -81,9 +76,6 @@ REPORT-FN is Flymake's callback."
8176
(if file
8277
`("--stdin-path" ,file)
8378
()))
84-
,@(if flymake-quicklintjs-experimental-typescript
85-
`("--language=experimental-default")
86-
())
8779
"--stdin" "--output-format=emacs-lisp"
8880
,@flymake-quicklintjs-args)
8981
:sentinel

plugin/vim/quick-lint-js.vim/ale_linters/typescript/quick_lint_js.vim

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,7 @@
55
" https://github.com/dense-analysis/ale
66

77
call quick_lint_js_ale#init_variables()
8-
9-
if g:ale_javascript_quick_lint_js_experimental_typescript
10-
call quick_lint_js_ale#define_linter('typescript')
11-
endif
8+
call quick_lint_js_ale#define_linter('typescript')
129

1310
" quick-lint-js finds bugs in JavaScript programs.
1411
" Copyright (C) 2020 Matthew "strager" Glazar

plugin/vim/quick-lint-js.vim/autoload/quick_lint_js_ale.vim

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ function! quick_lint_js_ale#init_variables() abort
99
call ale#Set('javascript_quick_lint_js_use_global', get(g:, 'ale_use_global_executables', v:true))
1010

1111
call ale#Set('javascript_quick_lint_js_tracing_directory', '')
12-
13-
call ale#Set('javascript_quick_lint_js_experimental_typescript', v:false)
1412
endfunction
1513

1614
function! quick_lint_js_ale#define_linter(filetype) abort

plugin/vim/quick-lint-js.vim/doc/quick-lint-js.txt

Lines changed: 7 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,8 @@ If you enable |g:ale_linters_explicit|, add the following code to
8181
8282
let b:ale_linters = ['quick-lint-js']
8383
84-
To lint TypeScript as well, enable
85-
|g:ale_javascript_quick_lint_js_experimental_typescript| and also add the
86-
following code to `~/.vim/ftplugin/typescript.vim` (UNIX) or
84+
To lint TypeScript as well, also add the following code to
85+
`~/.vim/ftplugin/typescript.vim` (UNIX) or
8786
`~/vimfiles/ftplugin/typescript.vim` (Windows):
8887

8988
let b:ale_linters = ['quick-lint-js']
@@ -138,12 +137,9 @@ files.
138137
g:ale_javascript_quick_lint_js_experimental_typescript
139138
*g:ale_javascript_quick_lint_js_experimental_typescript*
140139
*b:ale_javascript_quick_lint_js_experimental_typescript*
141-
Type: |Boolean|
142-
Default: `v:false`
143140

144-
Set this variable to `v:true` to lint TypeScript and TypeScript JSX files, not
145-
just JavaScript and JSX files. (EXPERIMENTAL. Subject to change in future
146-
versions of quick-lint-js.) (Introduced in quick-lint-js version 2.11.0.)
141+
This variable is unused. It was removed in quick-lint-js version
142+
3.0.0.
147143

148144
==============================================================================
149145
3.2. Configuring for coc.nvim *quick-lint-js-configure-coc-nvim*
@@ -182,13 +178,9 @@ snippet into your |coc-configuration| then tweaking it according to
182178
g:coc_quick_lint_js_experimental_typescript
183179
*g:coc_quick_lint_js_experimental_typescript*
184180
*b:coc_quick_lint_js_experimental_typescript*
185-
Type: |Boolean|
186-
Default: `v:false`
187181

188-
Set this variable to `v:true` to lint TypeScript and TypeScript JSX files, not
189-
just JavaScript and JSX files. Must be set before loading the quick-lint-js
190-
Vim plugin. (EXPERIMENTAL. Subject to change in future versions of
191-
quick-lint-js.) (Introduced in quick-lint-js version 2.11.0.)
182+
This variable is unused. It was removed in quick-lint-js version
183+
3.0.0.
192184

193185
==============================================================================
194186
3.3. Configuring for nvim-lspconfig *quick-lint-js-configure-nvim-lspconfig*
@@ -235,23 +227,11 @@ Set this option to a table of strings containing the operating system command
235227
for quick-lint-js. You must include the `"--lsp-server"` option.
236228

237229
filetypes *quick-lint-js-configure-nvim-lspconfig-filetypes*
238-
Default: `{"javascript", "javascriptreact"}`
230+
Default: `{"javascript", "javascriptreact", "typescript", "typescriptreact"}`
239231

240232
Set this option to a table of strings to enable quick-lint-js for different
241233
|filetype|s.
242234

243-
To lint TypeScript and TypeScript JSX files, not just JavaScript and JSX
244-
files, add `"typescript"` and `"typescriptreact"` to `filetypes`
245-
(EXPERIMENTAL. Subject to change in future versions of quick-lint-js.)
246-
(Introduced in quick-lint-js version 2.11.0.): >
247-
248-
require('lspconfig/quick_lint_js').setup {
249-
filetypes = {
250-
"javascript", "javascriptreact",
251-
"typescript", "typescriptreact",
252-
},
253-
}
254-
255235
settings.quick-lint-js.tracing-directory
256236
*quick-lint-js-configure-nvim-lspconfig-tracing-directory*
257237
Type: |String|

plugin/vim/quick-lint-js.vim/lua/lspconfig/quick_lint_js.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ local quick_lint_js_config = {
1313
-- Keep these in sync with
1414
-- plugin/vim/quick-lint-js.vim/doc/quick-lint-js.txt.
1515
cmd = {"quick-lint-js", "--lsp-server"},
16-
filetypes = {"javascript", "javascriptreact"},
16+
filetypes = {"javascript", "javascriptreact", "typescript", "typescriptreact"},
1717
root_dir = function(fname)
1818
local root = lspconfig_util.path.dirname(fname)
1919
lspconfig_util.path.traverse_parents(fname, function(dir, _path)

plugin/vim/quick-lint-js.vim/plugin/quick-lint-js.vim

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,7 @@
44
" Register quick-lint-js with coc.nvim (Conquer of Completion).
55
" https://github.com/neoclide/coc.nvim
66

7-
let s:enable_typescript = get(g:, 'coc_quick_lint_js_experimental_typescript', v:false)
8-
9-
let s:filetypes = ['javascript', 'javascriptreact', 'json']
10-
if s:enable_typescript
11-
call add(s:filetypes, 'typescript')
12-
call add(s:filetypes, 'typescriptreact')
13-
endif
7+
let s:filetypes = ['javascript', 'javascriptreact', 'typescript', 'typescriptreact', 'json']
148

159
try
1610
call coc#config('languageserver', {

plugin/vscode/package.json

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,6 @@
2828
"type": "object",
2929
"title": "quick-lint-js",
3030
"properties": {
31-
"quick-lint-js.experimental-typescript": {
32-
"scope": "window",
33-
"type": "boolean",
34-
"default": false,
35-
"description": "Lint TypeScript and TypeScript JSX files, not just JavaScript and JSX files. (Requires restart.) (EXPERIMENTAL. Subject to change in future versions of quick-lint-js.)"
36-
},
3731
"quick-lint-js.logging": {
3832
"scope": "window",
3933
"type": "string",

0 commit comments

Comments
 (0)