Support reading from both output streams, and fix PHP error parsing, which sometimes logs to stderr, sometimes stdout.
This commit is contained in:
		
							parent
							
								
									f0f17e4b0d
								
							
						
					
					
						commit
						d97e25a260
					
				| @ -39,7 +39,7 @@ endfunction | ||||
| call ALEAddLinter('php', { | ||||
| \   'name': 'php', | ||||
| \   'executable': 'php', | ||||
| \   'output_stream': 'stderr', | ||||
| \   'output_stream': 'both', | ||||
| \   'command': 'php -l --', | ||||
| \   'callback': 'ale_linters#php#php#Handle', | ||||
| \}) | ||||
|  | ||||
							
								
								
									
										10
									
								
								doc/ale.txt
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								doc/ale.txt
									
									
									
									
									
								
							| @ -324,10 +324,12 @@ ALEAddLinter(filetype, linter)                                 *ALEAddLinter()* | ||||
| 
 | ||||
|   `output_stream`          A |String| for the output stream the lines of output | ||||
|                          should be read from for the command which is run. The | ||||
|                          accepted values are `'stdout'` and `'stderr'`. This | ||||
|                          argument defaults to `'stdout'`. This argument can be | ||||
|                          set for linter programs which output their errors and | ||||
|                          warnings to the stderr stream instead of stdout. | ||||
|                          accepted values are `'stdout'`, `'stderr'`, and | ||||
|                          `'both'`. This argument defaults to `'stdout'`. This | ||||
|                          argument can be set for linter programs which output | ||||
|                          their errors and warnings to the stderr stream | ||||
|                          instead of stdout. The option `'both'` will read | ||||
|                          from both stder and stdout at the same time. | ||||
| 
 | ||||
|   Some programs for checking for errors are not capable of receiving input | ||||
|   from stdin, as is required by ALE. To remedy this, a wrapper script is | ||||
|  | ||||
| @ -184,6 +184,12 @@ function! s:ApplyLinter(buffer, linter) | ||||
|             \   'on_stderr': 's:GatherOutputNeoVim', | ||||
|             \   'on_exit': 's:HandleExitNeoVim', | ||||
|             \}) | ||||
|         elseif a:linter.output_stream ==# 'both' | ||||
|             let a:linter.job = jobstart(command, { | ||||
|             \   'on_stdout': 's:GatherOutputNeoVim', | ||||
|             \   'on_stderr': 's:GatherOutputNeoVim', | ||||
|             \   'on_exit': 's:HandleExitNeoVim', | ||||
|             \}) | ||||
|         else | ||||
|             let a:linter.job = jobstart(command, { | ||||
|             \   'on_stdout': 's:GatherOutputNeoVim', | ||||
| @ -202,6 +208,10 @@ function! s:ApplyLinter(buffer, linter) | ||||
|         if a:linter.output_stream ==# 'stderr' | ||||
|             " Read from stderr instead of stdout. | ||||
|             let job_options.err_cb = function('s:GatherOutputVim') | ||||
|         elseif a:linter.output_stream ==# 'both' | ||||
|             " Read from both streams. | ||||
|             let job_options.out_cb = function('s:GatherOutputVim') | ||||
|             let job_options.err_cb = function('s:GatherOutputVim') | ||||
|         else | ||||
|             let job_options.out_cb = function('s:GatherOutputVim') | ||||
|         endif | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 w0rp
						w0rp