diff options
author | Adam Stankiewicz <sheerun@sher.pl> | 2019-05-07 16:17:30 +0200 |
---|---|---|
committer | Adam Stankiewicz <sheerun@sher.pl> | 2019-05-07 16:17:56 +0200 |
commit | aebef2c2e76b88384b1121c237c965e8cf8b3bcb (patch) | |
tree | 98c685630547630cfadffb487a0cf90b7abbb710 /autoload | |
parent | e8245dbf1746aa59774124de1c77ffc4d8b5b52f (diff) | |
download | vim-polyglot-aebef2c2e76b88384b1121c237c965e8cf8b3bcb.tar.gz vim-polyglot-aebef2c2e76b88384b1121c237c965e8cf8b3bcb.zip |
Update
Diffstat (limited to 'autoload')
-rw-r--r-- | autoload/dart.vim | 52 | ||||
-rw-r--r-- | autoload/go/config.vim | 4 |
2 files changed, 37 insertions, 19 deletions
diff --git a/autoload/dart.vim b/autoload/dart.vim index f524e09d..82859463 100644 --- a/autoload/dart.vim +++ b/autoload/dart.vim @@ -9,22 +9,35 @@ function! s:error(text) abort echohl None endfunction -function! s:cexpr(errorformat, joined_lines) abort - let temp_errorfomat = &errorformat - try - let &errorformat = a:errorformat - cexpr a:joined_lines - copen - finally - let &errorformat = temp_errorfomat - endtry +function! s:cexpr(errorformat, lines, reason) abort + call setqflist([], ' ', { + \ 'lines': a:lines, + \ 'efm': a:errorformat, + \ 'context': {'reason': a:reason}, + \}) + copen +endfunction + +" If the quickfix list has a context matching [reason], clear and close it. +function! s:clearQfList(reason) abort + let context = get(getqflist({'context': 1}), 'context', {}) + if type(context) == v:t_dict && + \ has_key(context, 'reason') && + \ context.reason == a:reason + call setqflist([], 'r') + cclose + endif endfunction function! dart#fmt(q_args) abort if executable('dartfmt') let buffer_content = join(getline(1, '$'), "\n") - let joined_lines = system(printf('dartfmt %s', a:q_args), buffer_content) - if buffer_content ==# joined_lines[:-2] | return | endif + let args = '--stdin-name '.expand('%').' '.a:q_args + let joined_lines = system(printf('dartfmt %s', args), buffer_content) + if buffer_content ==# joined_lines[:-2] + call s:clearQfList('dartfmt') + return + endif if 0 == v:shell_error let win_view = winsaveview() let lines = split(joined_lines, "\n") @@ -33,12 +46,11 @@ function! dart#fmt(q_args) abort silent keepjumps execute string(len(lines)+1).',$ delete' endif call winrestview(win_view) + call s:clearQfList('dartfmt') else let errors = split(joined_lines, "\n")[2:] - let file_path = expand('%') - call map(errors, 'file_path.":".v:val') - let error_format = '%A%f:line %l\, column %c of stdin: %m,%C%.%#' - call s:cexpr(error_format, join(errors, "\n")) + let error_format = '%Aline %l\, column %c of %f: %m,%C%.%#' + call s:cexpr(error_format, errors, 'dartfmt') endif else call s:error('cannot execute binary file: dartfmt') @@ -49,8 +61,9 @@ function! dart#analyzer(q_args) abort if executable('dartanalyzer') let path = expand('%:p:gs:\:/:') if filereadable(path) - let joined_lines = system(printf('dartanalyzer %s %s', a:q_args, shellescape(path))) - call s:cexpr('%m (%f\, line %l\, col %c)', joined_lines) + let command = printf('dartanalyzer %s %s', a:q_args, shellescape(path)) + let lines = systemlist(command) + call s:cexpr('%m (%f\, line %l\, col %c)', lines, 'dartanalyzer') else call s:error(printf('cannot read a file: "%s"', path)) endif @@ -63,8 +76,9 @@ function! dart#tojs(q_args) abort if executable('dart2js') let path = expand('%:p:gs:\:/:') if filereadable(path) - let joined_lines = system(printf('dart2js %s %s', a:q_args, shellescape(path))) - call s:cexpr('%m (%f\, line %l\, col %c)', joined_lines) + let command = printf('dart2js %s %s', a:q_args, shellescape(path)) + let lines = systemlist(command) + call s:cexpr('%m (%f\, line %l\, col %c)', lines, 'dart2js') else call s:error(printf('cannot read a file: "%s"', path)) endif diff --git a/autoload/go/config.vim b/autoload/go/config.vim index 4a9c149a..7f243d09 100644 --- a/autoload/go/config.vim +++ b/autoload/go/config.vim @@ -470,6 +470,10 @@ function! go#config#EchoGoInfo() abort return get(g:, "go_echo_go_info", 1) endfunction +function! go#config#CodeCompletionEnabled() abort + return get(g:, "go_code_completion_enabled", 1) +endfunction + " Set the default value. A value of "1" is a shortcut for this, for " compatibility reasons. if exists("g:go_gorename_prefill") && g:go_gorename_prefill == 1 |