Before: let g:history = [] let g:ale_buffer_info = {} let g:ale_max_buffer_history_size = 20 function! CollectResults(buffer, output) return [] endfunction call ale#linter#Define('foobar', { \ 'name': 'testlinter', \ 'callback': 'CollectResults', \ 'executable': 'echo', \ 'command': 'echo command history test', \ 'read_buffer': 0, \}) After: let g:ale_history_enabled = 1 unlet g:history let g:ale_buffer_info = {} let g:ale_max_buffer_history_size = 20 call ale#linter#Reset() delfunction CollectResults Given foobar (Some imaginary filetype): anything Execute(History should be set when commands are run): AssertEqual 'foobar', &filetype call ale#Lint() call ale#engine#WaitForJobs(2000) let g:history = g:ale_buffer_info[bufnr('%')].history AssertEqual 1, len(g:history) AssertEqual sort(['status', 'exit_code', 'job_id', 'command']), sort(keys(g:history[0])) AssertEqual ['/bin/bash', '-c', 'echo command history test'], g:history[0].command AssertEqual 'finished', g:history[0].status AssertEqual 0, g:history[0].exit_code " The Job ID will change each time, but we can check the type. AssertEqual type(1), type(g:history[0].job_id) Execute(History should be not set when disabled): AssertEqual 'foobar', &filetype let g:ale_history_enabled = 0 call ale#Lint() call ale#engine#WaitForJobs(2000) AssertEqual 0, len(g:ale_buffer_info[bufnr('%')].history) 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''}'), \} call ale#history#Add(1, 'started', 347, 'last command') AssertEqual \ ( \ map(range(1, 19), '{''status'': ''started'', ''job_id'': v:val, ''command'': ''foobar''}') \ + [{'status': 'started', 'job_id': 347, 'command': 'last command'}] \ ), \ g:ale_buffer_info[1].history Execute(Nothing should be added to history if the size is too low): let g:ale_max_buffer_history_size = 0 let g:ale_buffer_info[1] = {'history': []} call ale#history#Add(1, 'started', 347, 'last command') AssertEqual [], g:ale_buffer_info[1].history let g:ale_max_buffer_history_size = -2 call ale#history#Add(1, 'started', 347, 'last command') AssertEqual [], g:ale_buffer_info[1].history