Close #1439 - Add an :ALEInfoToFile command
This commit is contained in:
parent
1123669839
commit
7cf3ddf6c4
7
.gitignore
vendored
7
.gitignore
vendored
@ -1,6 +1,7 @@
|
|||||||
/init.vim
|
|
||||||
/doc/tags
|
|
||||||
.*
|
|
||||||
!.editorconfig
|
!.editorconfig
|
||||||
*.obj
|
*.obj
|
||||||
|
.*
|
||||||
|
/doc/tags
|
||||||
|
/init.vim
|
||||||
|
/test/ale-info-test-file
|
||||||
tags
|
tags
|
||||||
|
@ -211,3 +211,14 @@ function! ale#debugging#InfoToClipboard() abort
|
|||||||
|
|
||||||
call s:Echo('ALEInfo copied to your clipboard')
|
call s:Echo('ALEInfo copied to your clipboard')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! ale#debugging#InfoToFile(filename) abort
|
||||||
|
let l:expanded_filename = expand(a:filename)
|
||||||
|
|
||||||
|
redir => l:output
|
||||||
|
silent call ale#debugging#Info()
|
||||||
|
redir END
|
||||||
|
|
||||||
|
call writefile(split(l:output, "\n"), l:expanded_filename)
|
||||||
|
call s:Echo('ALEInfo written to ' . l:expanded_filename)
|
||||||
|
endfunction
|
||||||
|
@ -1869,6 +1869,9 @@ ALEInfoToClipboard *ALEInfoToClipboard*
|
|||||||
The command `:ALEInfoToClipboard` can be used to output ALEInfo directly to
|
The command `:ALEInfoToClipboard` can be used to output ALEInfo directly to
|
||||||
your clipboard. This might not work on every machine.
|
your clipboard. This might not work on every machine.
|
||||||
|
|
||||||
|
`:ALEInfoToFile` will write the ALE runtime information to a given filename.
|
||||||
|
The filename works just like |:w|.
|
||||||
|
|
||||||
|
|
||||||
ALEReset *ALEReset*
|
ALEReset *ALEReset*
|
||||||
ALEResetBuffer *ALEResetBuffer*
|
ALEResetBuffer *ALEResetBuffer*
|
||||||
|
@ -259,6 +259,8 @@ command! -bar ALELint :call ale#Queue(0, 'lint_file')
|
|||||||
command! -bar ALEInfo :call ale#debugging#Info()
|
command! -bar ALEInfo :call ale#debugging#Info()
|
||||||
" The same, but copy output to your clipboard.
|
" The same, but copy output to your clipboard.
|
||||||
command! -bar ALEInfoToClipboard :call ale#debugging#InfoToClipboard()
|
command! -bar ALEInfoToClipboard :call ale#debugging#InfoToClipboard()
|
||||||
|
" Copy ALE information to a file.
|
||||||
|
command! -bar -nargs=1 ALEInfoToFile :call ale#debugging#InfoToFile(<f-args>)
|
||||||
|
|
||||||
" Fix problems in files.
|
" Fix problems in files.
|
||||||
command! -bar ALEFix :call ale#fix#Fix()
|
command! -bar ALEFix :call ale#fix#Fix()
|
||||||
|
@ -105,6 +105,8 @@ Before:
|
|||||||
AssertEqual a:expected_list, split(l:output, "\n")
|
AssertEqual a:expected_list, split(l:output, "\n")
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
call ale#test#SetDirectory('/testplugin/test')
|
||||||
|
|
||||||
After:
|
After:
|
||||||
Restore
|
Restore
|
||||||
|
|
||||||
@ -123,6 +125,8 @@ After:
|
|||||||
unlet! g:ale_testft2_testlinter2_bar
|
unlet! g:ale_testft2_testlinter2_bar
|
||||||
delfunction CheckInfo
|
delfunction CheckInfo
|
||||||
|
|
||||||
|
call ale#test#RestoreDirectory()
|
||||||
|
|
||||||
Given nolintersft (Empty buffer with no linters):
|
Given nolintersft (Empty buffer with no linters):
|
||||||
Execute (ALEInfo with no linters should return the right output):
|
Execute (ALEInfo with no linters should return the right output):
|
||||||
call CheckInfo([
|
call CheckInfo([
|
||||||
@ -251,6 +255,33 @@ Execute (ALEInfo should return appropriately named global variables):
|
|||||||
\ 'let g:ale_testft_testlinter1_foo = ''abc''',
|
\ 'let g:ale_testft_testlinter1_foo = ''abc''',
|
||||||
\] + g:globals_lines + g:command_header)
|
\] + g:globals_lines + g:command_header)
|
||||||
|
|
||||||
|
Execute (ALEInfoToFile should write to a file correctly):
|
||||||
|
if filereadable(g:dir . '/ale-info-test-file')
|
||||||
|
call delete(g:dir . '/ale-info-test-file')
|
||||||
|
endif
|
||||||
|
|
||||||
|
let g:ale_testft_testlinter1_foo = 'abc'
|
||||||
|
let g:ale_testft_testlinter1_bar = ['abc']
|
||||||
|
let g:ale_testft2_testlinter2_foo = 123
|
||||||
|
let g:ale_testft2_testlinter2_bar = {'x': 'y'}
|
||||||
|
|
||||||
|
call ale#linter#Define('testft', g:testlinter1)
|
||||||
|
call ale#linter#Define('testft2', g:testlinter2)
|
||||||
|
|
||||||
|
execute 'ALEInfoToFile ' . fnameescape(g:dir . '/ale-info-test-file')
|
||||||
|
|
||||||
|
AssertEqual [
|
||||||
|
\ ' Current Filetype: testft.testft2',
|
||||||
|
\ 'Available Linters: [''testlinter1'', ''testlinter2'']',
|
||||||
|
\ ' Enabled Linters: [''testlinter1'', ''testlinter2'']',
|
||||||
|
\ ' Linter Variables:',
|
||||||
|
\ '',
|
||||||
|
\ 'let g:ale_testft2_testlinter2_bar = {''x'': ''y''}',
|
||||||
|
\ 'let g:ale_testft2_testlinter2_foo = 123',
|
||||||
|
\ 'let g:ale_testft_testlinter1_bar = [''abc'']',
|
||||||
|
\ 'let g:ale_testft_testlinter1_foo = ''abc''',
|
||||||
|
\] + g:globals_lines + g:command_header, readfile(g:dir . '/ale-info-test-file')
|
||||||
|
|
||||||
Given testft.testft2 (Empty buffer with two filetypes):
|
Given testft.testft2 (Empty buffer with two filetypes):
|
||||||
Execute (ALEInfo should buffer-local linter variables):
|
Execute (ALEInfo should buffer-local linter variables):
|
||||||
let g:ale_testft2_testlinter2_foo = 123
|
let g:ale_testft2_testlinter2_foo = 123
|
||||||
|
Loading…
Reference in New Issue
Block a user