mirror of
https://github.com/dense-analysis/ale.git
synced 2026-01-25 12:26:51 +08:00
Add better support for Haskell stack compiler tools (#1851)
* Add better support for Haskell stack compiler tools This commit adds support for `stack` as the executable of a tool. This follows a pattern that has been implemented for `bundler`'s tool chain. * Move hlint command to linter file * Add vader test for stack exec handling * Update ghc-mod to support stack execution `ghc-mod` was previously broken into 2 linters. 1. ghc_mod 2. stack_ghc_mod This additional linter is not necessary with proper support for executable variables and `stack exec` handling. * Support stack exec in hfmt * Support stack in hdevtools
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
Before:
|
||||
call ale#assert#SetUpLinterTest('haskell', 'ghc_mod')
|
||||
|
||||
After:
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(Default should use ghc-mod):
|
||||
AssertLinter
|
||||
\ 'ghc-mod',
|
||||
\ ale#Escape('ghc-mod') . ' --map-file %s=%t check %s'
|
||||
@@ -1,5 +1,9 @@
|
||||
Before:
|
||||
call ale#assert#SetUpLinterTest('haskell', 'hlint')
|
||||
|
||||
let g:ale_haskell_hlint_executable = 'hlint'
|
||||
let g:ale_haskell_hlint_options = ''
|
||||
|
||||
let b:base_opts = '--color=never --json -'
|
||||
|
||||
After:
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
Before:
|
||||
Save g:ale_haskell_hlint_executable
|
||||
|
||||
" Use an invalid global executable, so we don't match it.
|
||||
let g:ale_haskell_hlint_executable = 'xxxinvalid'
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/fixers')
|
||||
|
||||
After:
|
||||
@@ -17,7 +12,7 @@ Execute(The hlint callback should return the correct default values):
|
||||
AssertEqual
|
||||
\ {
|
||||
\ 'read_temporary_file': 1,
|
||||
\ 'command': ale#Escape('xxxinvalid')
|
||||
\ 'command': ale#Escape('hlint')
|
||||
\ . ' --refactor'
|
||||
\ . ' --refactor-options="--inplace"'
|
||||
\ . ' %t',
|
||||
|
||||
7
test/handler/test_haskell_stack_handler.vader
Normal file
7
test/handler/test_haskell_stack_handler.vader
Normal file
@@ -0,0 +1,7 @@
|
||||
Before:
|
||||
runtime ale/handlers/haskell_stack.vim
|
||||
|
||||
Execute(Escape stack should correctly identify a stack exec command):
|
||||
AssertEqual
|
||||
\ ale#Escape('stack') . ' exec ' . ale#Escape('hlint') . ' --',
|
||||
\ ale#handlers#haskell_stack#EscapeExecutable('stack', 'hlint')
|
||||
Reference in New Issue
Block a user