feat: Add Deno fmt fixer

This commit is contained in:
Mohammed Chelouti 2020-12-27 01:18:53 +01:00
parent 33f2f8ddcd
commit 4f2666265a
4 changed files with 50 additions and 0 deletions

View file

@ -32,6 +32,11 @@ let s:default_registry = {
\ 'suggested_filetypes': ['python'],
\ 'description': 'Fix PEP8 issues with black.',
\ },
\ 'deno': {
\ 'function': 'ale#fixers#deno#Fix',
\ 'suggested_filetypes': ['typescript'],
\ 'description': 'Fix TypeScript using deno fmt.',
\ },
\ 'dfmt': {
\ 'function': 'ale#fixers#dfmt#Fix',
\ 'suggested_filetypes': ['d'],

View file

@ -0,0 +1,17 @@
function! ale#fixers#deno#Fix(buffer) abort
let l:executable = ale#handlers#deno#GetExecutable(a:buffer)
if !executable(l:executable)
return 0
endif
let l:options = ' fmt -'
if ale#Var(a:buffer, 'deno_unstable')
let l:options = l:options . ' --unstable'
endif
return {
\ 'command': ale#Escape(l:executable) . l:options
\}
endfunction

View file

@ -0,0 +1,9 @@
" Author: Mohammed Chelouti - https://github.com/motato1
" Description: Handler functions for Deno.
call ale#Set('deno_executable', 'deno')
call ale#Set('deno_unstable', 0)
function! ale#handlers#deno#GetExecutable(buffer) abort
return ale#Var(a:buffer, 'deno_executable')
endfunction

View file

@ -0,0 +1,19 @@
Before:
runtime autoload/ale/handlers/deno.vim
After:
unlet! g:ale_deno_executable
call ale#linter#Reset()
Execute(Default executable should be detected correctly):
AssertEqual
\ 'deno',
\ ale#handlers#deno#GetExecutable(bufnr(''))
Execute(User specified executable should override default):
let g:ale_deno_executable = '/path/to/deno-bin'
AssertEqual
\ '/path/to/deno-bin',
\ ale#handlers#deno#GetExecutable(bufnr(''))