fix(biome): send correct language to lsp proxy (#4773)

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
This commit is contained in:
Braden Kelley 2024-06-23 22:32:24 -07:00 committed by GitHub
parent f2aef2f510
commit 5606606b32
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 23 additions and 0 deletions

View File

@ -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'),

View File

@ -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'),

View File

@ -25,6 +25,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')

View File

@ -16,3 +16,20 @@ 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'