#254 Add an option for logging the output of commands
This commit is contained in:
@@ -41,6 +41,7 @@ After:
|
||||
unlet! g:globals_string
|
||||
unlet! g:command_header
|
||||
let g:ale_buffer_info = {}
|
||||
let g:ale_history_log_output = 0
|
||||
unlet! g:ale_testft_testlinter1_foo
|
||||
unlet! g:ale_testft_testlinter1_bar
|
||||
unlet! g:ale_testft2_testlinter2_foo
|
||||
@@ -218,3 +219,66 @@ Execute (ALEInfo command history should print exit codes correctly):
|
||||
\ '(finished - exit code 1) [''/bin/bash'', ''\c'', ''last command'']',
|
||||
\ ], "\n"),
|
||||
\ g:output
|
||||
|
||||
Given testft.testft2 (Empty buffer with two filetypes):
|
||||
Execute (ALEInfo command history should print command output if logging is on):
|
||||
let g:ale_history_log_output = 1
|
||||
|
||||
let g:ale_buffer_info[bufnr('%')] = {
|
||||
\ 'history': [
|
||||
\ {
|
||||
\ 'status': 'finished',
|
||||
\ 'exit_code': 0,
|
||||
\ 'job_id': 347,
|
||||
\ 'command': 'first command',
|
||||
\ 'output': ['some', 'first command output'],
|
||||
\ },
|
||||
\ {
|
||||
\ 'status': 'finished',
|
||||
\ 'exit_code': 1,
|
||||
\ 'job_id': 347,
|
||||
\ 'command': ['/bin/bash', '\c', 'last command'],
|
||||
\ 'output': ['different second command output'],
|
||||
\ },
|
||||
\ {
|
||||
\ 'status': 'finished',
|
||||
\ 'exit_code': 0,
|
||||
\ 'job_id': 347,
|
||||
\ 'command': 'command with no output',
|
||||
\ 'output': [],
|
||||
\ },
|
||||
\ ],
|
||||
\}
|
||||
|
||||
call ale#linter#Define('testft', g:testlinter1)
|
||||
call ale#linter#Define('testft2', g:testlinter2)
|
||||
redir => g:output
|
||||
silent ALEInfo
|
||||
redir END
|
||||
AssertEqual
|
||||
\ join([
|
||||
\ '',
|
||||
\ ' Current Filetype: testft.testft2',
|
||||
\ 'Available Linters: [''testlinter1'', ''testlinter2'']',
|
||||
\ ' Enabled Linters: [''testlinter1'', ''testlinter2'']',
|
||||
\ ' Linter Variables:',
|
||||
\ g:globals_string . g:command_header,
|
||||
\ '(finished - exit code 0) ''first command''',
|
||||
\ '',
|
||||
\ '<<<OUTPUT STARTS>>>',
|
||||
\ 'some',
|
||||
\ 'first command output',
|
||||
\ '<<<OUTPUT ENDS>>>',
|
||||
\ '',
|
||||
\ '(finished - exit code 1) [''/bin/bash'', ''\c'', ''last command'']',
|
||||
\ '',
|
||||
\ '<<<OUTPUT STARTS>>>',
|
||||
\ 'different second command output',
|
||||
\ '<<<OUTPUT ENDS>>>',
|
||||
\ '',
|
||||
\ '(finished - exit code 0) ''command with no output''',
|
||||
\ '',
|
||||
\ '<<<NO OUTPUT RETURNED>>>',
|
||||
\ '',
|
||||
\ ], "\n"),
|
||||
\ g:output
|
||||
|
||||
@@ -17,6 +17,7 @@ Before:
|
||||
|
||||
After:
|
||||
let g:ale_history_enabled = 1
|
||||
let g:ale_history_log_output = 0
|
||||
unlet g:history
|
||||
let g:ale_buffer_info = {}
|
||||
let g:ale_max_buffer_history_size = 20
|
||||
@@ -52,6 +53,19 @@ Execute(History should be not set when disabled):
|
||||
|
||||
AssertEqual 0, len(g:ale_buffer_info[bufnr('%')].history)
|
||||
|
||||
Execute(History should include command output if logging is enabled):
|
||||
AssertEqual 'foobar', &filetype
|
||||
|
||||
let g:ale_history_log_output = 1
|
||||
|
||||
call ale#Lint()
|
||||
call ale#engine#WaitForJobs(2000)
|
||||
|
||||
let g:history = g:ale_buffer_info[bufnr('%')].history
|
||||
|
||||
AssertEqual 1, len(g:history)
|
||||
AssertEqual ['command history test'], g:history[0].output
|
||||
|
||||
Execute(History items should be popped after going over the max):
|
||||
let g:ale_buffer_info[1] = {
|
||||
\ 'history': map(range(20), '{''status'': ''started'', ''job_id'': v:val, ''command'': ''foobar''}'),
|
||||
|
||||
Reference in New Issue
Block a user