summaryrefslogtreecommitdiffstats
path: root/autoload
diff options
context:
space:
mode:
Diffstat (limited to 'autoload')
-rw-r--r--autoload/dart.vim52
-rw-r--r--autoload/go/config.vim4
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