From f546106c7a4e286f1289b872d0e808bb28d5043c Mon Sep 17 00:00:00 2001 From: "Braden M. Kelley" Date: Sun, 12 May 2024 21:43:16 -0700 Subject: [PATCH] fix(biome): send correct language to lsp proxy Since Biome understands `typescriptreact` and `javascriptreact` as languages, we can send the `filetype` to the LSP, rather than only sending `typescript` for both `ts` and `tsx` files, or `javascript` for `js` and `jsx` files. fixes: #4752 --- ale_linters/javascript/biome.vim | 1 + ale_linters/typescript/biome.vim | 1 + autoload/ale/handlers/biome.vim | 4 +++ test/fixers/test_biome_fixer_callback.vader | 4 +++ test/linter/test_biome.vader | 35 +++++++++++++++++++++ test/linter/test_typescript_biome.vader | 14 --------- 6 files changed, 45 insertions(+), 14 deletions(-) create mode 100644 test/linter/test_biome.vader delete mode 100644 test/linter/test_typescript_biome.vader diff --git a/ale_linters/javascript/biome.vim b/ale_linters/javascript/biome.vim index 71a081143b..61f7c8f4c7 100644 --- a/ale_linters/javascript/biome.vim +++ b/ale_linters/javascript/biome.vim @@ -4,6 +4,7 @@ call ale#linter#Define('javascript', { \ 'name': 'biome', \ 'lsp': 'stdio', +\ 'language': function('ale#handlers#biome#GetLanguage'), \ 'executable': function('ale#handlers#biome#GetExecutable'), \ 'command': function('ale#handlers#biome#GetCommand'), \ 'project_root': function('ale#handlers#biome#GetProjectRoot'), diff --git a/ale_linters/typescript/biome.vim b/ale_linters/typescript/biome.vim index 763a254c99..301157441a 100644 --- a/ale_linters/typescript/biome.vim +++ b/ale_linters/typescript/biome.vim @@ -4,6 +4,7 @@ call ale#linter#Define('typescript', { \ 'name': 'biome', \ 'lsp': 'stdio', +\ 'language': function('ale#handlers#biome#GetLanguage'), \ 'executable': function('ale#handlers#biome#GetExecutable'), \ 'command': function('ale#handlers#biome#GetCommand'), \ 'project_root': function('ale#handlers#biome#GetProjectRoot'), diff --git a/autoload/ale/handlers/biome.vim b/autoload/ale/handlers/biome.vim index cec984586b..3cd3b5da90 100644 --- a/autoload/ale/handlers/biome.vim +++ b/autoload/ale/handlers/biome.vim @@ -24,6 +24,10 @@ function! ale#handlers#biome#GetCommand(buffer) abort \ . (!empty(l:options) ? ' ' . l:options : '') endfunction +function! ale#handlers#biome#GetLanguage(buffer) abort + return getbufvar(a:buffer, '&filetype') +endfunction + function! ale#handlers#biome#GetProjectRoot(buffer) abort let l:biome_file = ale#path#FindNearestFile(a:buffer, 'biome.json') diff --git a/test/fixers/test_biome_fixer_callback.vader b/test/fixers/test_biome_fixer_callback.vader index 632a7ec4f7..b45ebca4d4 100644 --- a/test/fixers/test_biome_fixer_callback.vader +++ b/test/fixers/test_biome_fixer_callback.vader @@ -1,4 +1,8 @@ Before: + Save g:ale_biome_options + + let g:ale_biome_options = '' + call ale#assert#SetUpFixerTest('typescript', 'biome') After: diff --git a/test/linter/test_biome.vader b/test/linter/test_biome.vader new file mode 100644 index 0000000000..c2cd9407d3 --- /dev/null +++ b/test/linter/test_biome.vader @@ -0,0 +1,35 @@ +Before: + Save g:ale_biome_options + + let g:ale_biome_options = '' + + call ale#assert#SetUpLinterTest('typescript', 'biome') + call ale#test#SetFilename('test.ts') + +After: + call ale#assert#TearDownLinterTest() + +Execute(The default biome command should be correct): + AssertLinter 'biome', ale#Escape('biome') . ' lsp-proxy' + +Execute(The biome command should accept options): + let g:ale_biome_options = '--foobar' + + AssertLinter 'biome', ale#Escape('biome') . ' lsp-proxy --foobar' + +Execute(Uses the filetype as the language): + call ale#test#SetFilename('test.ts') + set filetype=typescript + AssertLSPLanguage 'typescript' + + call ale#test#SetFilename('test.tsx') + set filetype=typescriptreact + AssertLSPLanguage 'typescriptreact' + + call ale#test#SetFilename('test.js') + set filetype=javascript + AssertLSPLanguage 'javascript' + + call ale#test#SetFilename('test.jsx') + set filetype=javascriptreact + AssertLSPLanguage 'javascriptreact' diff --git a/test/linter/test_typescript_biome.vader b/test/linter/test_typescript_biome.vader deleted file mode 100644 index 95b8fe82eb..0000000000 --- a/test/linter/test_typescript_biome.vader +++ /dev/null @@ -1,14 +0,0 @@ -Before: - call ale#assert#SetUpLinterTest('typescript', 'biome') - call ale#test#SetFilename('test.ts') - -After: - call ale#assert#TearDownLinterTest() - -Execute(The default biome command should be correct): - AssertLinter 'biome', ale#Escape('biome') . ' lsp-proxy' - -Execute(The biome command should accept options): - let b:ale_biome_options = '--foobar' - - AssertLinter 'biome', ale#Escape('biome') . ' lsp-proxy --foobar'