From 6644563949299ce60aadf338103d50315a034a6a Mon Sep 17 00:00:00 2001 From: w0rp Date: Sat, 12 Jan 2019 13:08:52 +0000 Subject: [PATCH] #2132 Remove the need for the hidden add_newline option by tweaking the flow command --- ale_linters/javascript/flow.vim | 5 +++-- autoload/ale/engine.vim | 10 ---------- autoload/ale/linter.vim | 1 - test/test_flow_command.vader | 6 +++--- test/test_linter_retrieval.vader | 8 ++++---- 5 files changed, 10 insertions(+), 20 deletions(-) diff --git a/ale_linters/javascript/flow.vim b/ale_linters/javascript/flow.vim index cdb289c7d0..a4664fda2a 100755 --- a/ale_linters/javascript/flow.vim +++ b/ale_linters/javascript/flow.vim @@ -54,7 +54,8 @@ function! ale_linters#javascript#flow#GetCommand(buffer, version_lines) abort return ale#Escape(l:executable) \ . ' check-contents' \ . (l:use_respect_pragma ? ' --respect-pragma': '') - \ . ' --json --from ale %s' + \ . ' --json --from ale %s < %t' + \ . (!has('win32') ? '; echo' : '') endfunction " Filter lines of flow output until we find the first line where the JSON @@ -172,5 +173,5 @@ call ale#linter#Define('javascript', { \ {'callback': 'ale_linters#javascript#flow#GetCommand'}, \ ], \ 'callback': 'ale_linters#javascript#flow#Handle', -\ 'add_newline': !has('win32'), +\ 'read_buffer': 0, \}) diff --git a/autoload/ale/engine.vim b/autoload/ale/engine.vim index b44be73c6e..e1c8d93f1e 100644 --- a/autoload/ale/engine.vim +++ b/autoload/ale/engine.vim @@ -525,16 +525,6 @@ function! s:RunJob(options) abort let l:read_buffer = 0 endif - " Add a newline to commands which need it. - " This is only used for Flow for now, and is not documented. - if l:linter.add_newline - if has('win32') - let l:command = l:command . '; echo.' - else - let l:command = l:command . '; echo' - endif - endif - let l:command = ale#job#PrepareCommand(l:buffer, l:command) let l:job_options = { \ 'mode': 'nl', diff --git a/autoload/ale/linter.vim b/autoload/ale/linter.vim index 1cbc9ffe57..0b61bad1f1 100644 --- a/autoload/ale/linter.vim +++ b/autoload/ale/linter.vim @@ -80,7 +80,6 @@ function! ale#linter#PreProcess(filetype, linter) abort endif let l:obj = { - \ 'add_newline': get(a:linter, 'add_newline', 0), \ 'name': get(a:linter, 'name'), \ 'lsp': get(a:linter, 'lsp', ''), \} diff --git a/test/test_flow_command.vader b/test/test_flow_command.vader index c673ce0a4f..df72d08756 100644 --- a/test/test_flow_command.vader +++ b/test/test_flow_command.vader @@ -15,7 +15,7 @@ Execute(flow should return a command to run if a .flowconfig file exists): AssertEqual \ ale#Escape('flow') - \ . ' check-contents --respect-pragma --json --from ale %s', + \ . ' check-contents --respect-pragma --json --from ale %s < %t; echo', \ ale_linters#javascript#flow#GetCommand(bufnr('%'), []) Execute(flow should not use the respect pragma argument if the option is off): @@ -25,7 +25,7 @@ Execute(flow should not use the respect pragma argument if the option is off): AssertEqual \ ale#Escape('flow') - \ . ' check-contents --json --from ale %s', + \ . ' check-contents --json --from ale %s < %t; echo', \ ale_linters#javascript#flow#GetCommand(bufnr('%'), []) Execute(flow should should not use --respect-pragma for old versions): @@ -33,7 +33,7 @@ Execute(flow should should not use --respect-pragma for old versions): AssertEqual \ ale#Escape('flow') - \ . ' check-contents --json --from ale %s', + \ . ' check-contents --json --from ale %s < %t; echo', \ ale_linters#javascript#flow#GetCommand(bufnr('%'), [ \ 'Warning: `flow --version` is deprecated in favor of `flow version`', \ 'Flow, a static type checker for JavaScript, version 0.27.0', diff --git a/test/test_linter_retrieval.vader b/test/test_linter_retrieval.vader index a1c34622a1..6f9b3db49d 100644 --- a/test/test_linter_retrieval.vader +++ b/test/test_linter_retrieval.vader @@ -2,8 +2,8 @@ Before: Save g:ale_linters Save g:ale_linter_aliases - let g:testlinter1 = {'name': 'testlinter1', 'executable': 'testlinter1', 'command': 'testlinter1', 'callback': 'testCB1', 'output_stream': 'stdout', 'read_buffer': 1, 'lint_file': 0, 'aliases': [], 'lsp': '', 'add_newline': 0} - let g:testlinter2 = {'name': 'testlinter2', 'executable': 'testlinter2', 'command': 'testlinter2', 'callback': 'testCB2', 'output_stream': 'stdout', 'read_buffer': 0, 'lint_file': 1, 'aliases': [], 'lsp': '', 'add_newline': 0} + let g:testlinter1 = {'name': 'testlinter1', 'executable': 'testlinter1', 'command': 'testlinter1', 'callback': 'testCB1', 'output_stream': 'stdout', 'read_buffer': 1, 'lint_file': 0, 'aliases': [], 'lsp': ''} + let g:testlinter2 = {'name': 'testlinter2', 'executable': 'testlinter2', 'command': 'testlinter2', 'callback': 'testCB2', 'output_stream': 'stdout', 'read_buffer': 0, 'lint_file': 1, 'aliases': [], 'lsp': ''} call ale#linter#Reset() call ale#linter#PreventLoading('testft') call ale#linter#PreventLoading('javascript') @@ -160,7 +160,7 @@ Execute (Buffer-local overrides for aliases should be used): Execute (Linters should be loaded from disk appropriately): call ale#linter#Reset() - AssertEqual [{'name': 'testlinter', 'output_stream': 'stdout', 'executable': 'testlinter', 'command': 'testlinter', 'callback': 'testCB', 'read_buffer': 1, 'lint_file': 0, 'aliases': [], 'lsp': '', 'add_newline': 0}], ale#linter#Get('testft') + AssertEqual [{'name': 'testlinter', 'output_stream': 'stdout', 'executable': 'testlinter', 'command': 'testlinter', 'callback': 'testCB', 'read_buffer': 1, 'lint_file': 0, 'aliases': [], 'lsp': ''}], ale#linter#Get('testft') Execute (Linters for later filetypes should replace the former ones): @@ -178,5 +178,5 @@ Execute (Linters for later filetypes should replace the former ones): \}) AssertEqual [ - \ {'output_stream': 'stdout', 'lint_file': 0, 'read_buffer': 1, 'name': 'eslint', 'executable': 'x', 'lsp': '', 'aliases': [], 'command': 'x', 'callback': 'x', 'add_newline': 0} + \ {'output_stream': 'stdout', 'lint_file': 0, 'read_buffer': 1, 'name': 'eslint', 'executable': 'x', 'lsp': '', 'aliases': [], 'command': 'x', 'callback': 'x'} \], ale#linter#Get('javascript.typescript')