mirror of
https://github.com/amix/vimrc
synced 2025-06-23 06:35:01 +08:00
Updated plugins
This commit is contained in:
@ -5,5 +5,5 @@ call ale#linter#Define('graphql', {
|
||||
\ 'name': 'eslint',
|
||||
\ 'executable': function('ale#handlers#eslint#GetExecutable'),
|
||||
\ 'command': function('ale#handlers#eslint#GetCommand'),
|
||||
\ 'callback': 'ale#handlers#eslint#Handle',
|
||||
\ 'callback': 'ale#handlers#eslint#HandleJSON',
|
||||
\})
|
||||
|
@ -3,6 +3,7 @@
|
||||
|
||||
call ale#Set('python_mypy_executable', 'mypy')
|
||||
call ale#Set('python_mypy_ignore_invalid_syntax', 0)
|
||||
call ale#Set('python_mypy_show_notes', 1)
|
||||
call ale#Set('python_mypy_options', '')
|
||||
call ale#Set('python_mypy_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||
call ale#Set('python_mypy_auto_pipenv', 0)
|
||||
@ -18,6 +19,15 @@ endfunction
|
||||
|
||||
" The directory to change to before running mypy
|
||||
function! s:GetDir(buffer) abort
|
||||
" If we find a directory with "mypy.ini" in it use that,
|
||||
" else try and find the "python project" root, or failing
|
||||
" that, run from the same folder as the current file
|
||||
for l:path in ale#path#Upwards(expand('#' . a:buffer . ':p:h'))
|
||||
if filereadable(l:path . '/mypy.ini')
|
||||
return l:path
|
||||
endif
|
||||
endfor
|
||||
|
||||
let l:project_root = ale#python#FindProjectRoot(a:buffer)
|
||||
|
||||
return !empty(l:project_root)
|
||||
@ -51,7 +61,16 @@ function! ale_linters#python#mypy#Handle(buffer, lines) abort
|
||||
" Lines like these should be ignored below:
|
||||
"
|
||||
" file.py:4: note: (Stub files are from https://github.com/python/typeshed)
|
||||
let l:pattern = '\v^([a-zA-Z]?:?[^:]+):(\d+):?(\d+)?: (error|warning): (.+)$'
|
||||
|
||||
let l:types = 'error|warning'
|
||||
|
||||
if ale#Var(a:buffer, 'python_mypy_show_notes')
|
||||
let l:types = 'error|warning|note'
|
||||
endif
|
||||
|
||||
let l:pattern = '\v^([a-zA-Z]?:?[^:]+):(\d+):?(\d+)?: ('
|
||||
\ . l:types
|
||||
\ . '): (.+)$'
|
||||
let l:output = []
|
||||
|
||||
for l:match in ale#util#GetMatches(a:lines, l:pattern)
|
||||
@ -65,7 +84,7 @@ function! ale_linters#python#mypy#Handle(buffer, lines) abort
|
||||
\ 'filename': ale#path#GetAbsPath(l:dir, l:match[1]),
|
||||
\ 'lnum': l:match[2] + 0,
|
||||
\ 'col': l:match[3] + 0,
|
||||
\ 'type': l:match[4] is# 'error' ? 'E' : 'W',
|
||||
\ 'type': l:match[4] is# 'error' ? 'E' : (l:match[4] is# 'note' ? 'I': 'W'),
|
||||
\ 'text': l:match[5],
|
||||
\})
|
||||
endfor
|
||||
|
@ -261,6 +261,8 @@ function! s:ReplaceCompletionOptions() abort
|
||||
|
||||
if &l:completeopt =~# 'preview'
|
||||
let &l:completeopt = 'menu,menuone,preview,noselect,noinsert'
|
||||
elseif &l:completeopt =~# 'popup'
|
||||
let &l:completeopt = 'menu,menuone,popup,noselect,noinsert'
|
||||
else
|
||||
let &l:completeopt = 'menu,menuone,noselect,noinsert'
|
||||
endif
|
||||
@ -386,7 +388,6 @@ function! s:CompletionStillValid(request_id) abort
|
||||
\&& b:ale_completion_info.line == l:line
|
||||
\&& (
|
||||
\ b:ale_completion_info.column == l:column
|
||||
\ || b:ale_completion_info.source is# 'deoplete'
|
||||
\ || b:ale_completion_info.source is# 'ale-omnifunc'
|
||||
\ || b:ale_completion_info.source is# 'ale-callback'
|
||||
\)
|
||||
@ -803,7 +804,9 @@ endfunction
|
||||
function! ale#completion#HandleUserData(completed_item) abort
|
||||
let l:source = get(get(b:, 'ale_completion_info', {}), 'source', '')
|
||||
|
||||
if l:source isnot# 'ale-automatic' && l:source isnot# 'ale-manual' && l:source isnot# 'ale-callback'
|
||||
if l:source isnot# 'ale-automatic'
|
||||
\&& l:source isnot# 'ale-manual'
|
||||
\&& l:source isnot# 'ale-callback'
|
||||
return
|
||||
endif
|
||||
|
||||
|
@ -42,7 +42,18 @@ function! ale#handlers#eslint#GetCommand(buffer) abort
|
||||
|
||||
let l:options = ale#Var(a:buffer, 'javascript_eslint_options')
|
||||
|
||||
return ale#node#Executable(a:buffer, l:executable)
|
||||
" ESLint 6 loads plugins/configs/parsers from the project root
|
||||
" By default, the project root is simply the CWD of the running process.
|
||||
" https://github.com/eslint/rfcs/blob/master/designs/2018-simplified-package-loading/README.md
|
||||
" https://github.com/dense-analysis/ale/issues/2787
|
||||
" Identify project root from presence of node_modules dir.
|
||||
" Note: If node_modules not present yet, can't load local deps anyway.
|
||||
let l:modules_dir = ale#path#FindNearestDirectory(a:buffer, 'node_modules')
|
||||
let l:project_dir = !empty(l:modules_dir) ? fnamemodify(l:modules_dir, ':h:h') : ''
|
||||
let l:cd_command = !empty(l:project_dir) ? ale#path#CdString(l:project_dir) : ''
|
||||
|
||||
return l:cd_command
|
||||
\ . ale#node#Executable(a:buffer, l:executable)
|
||||
\ . (!empty(l:options) ? ' ' . l:options : '')
|
||||
\ . ' -f json --stdin --stdin-filename %s'
|
||||
endfunction
|
||||
|
@ -42,6 +42,11 @@ function! ale#hover#HandleTSServerResponse(conn_id, response) abort
|
||||
\&& exists('*balloon_show')
|
||||
\&& ale#Var(l:options.buffer, 'set_balloons')
|
||||
call balloon_show(a:response.body.displayString)
|
||||
elseif g:ale_hover_to_preview
|
||||
call ale#preview#Show(split(a:response.body.displayString, "\n"), {
|
||||
\ 'filetype': 'ale-preview.message',
|
||||
\ 'stay_here': 1,
|
||||
\})
|
||||
else
|
||||
call ale#util#ShowMessage(a:response.body.displayString)
|
||||
endif
|
||||
@ -98,6 +103,11 @@ function! ale#hover#HandleLSPResponse(conn_id, response) abort
|
||||
\&& exists('*balloon_show')
|
||||
\&& ale#Var(l:options.buffer, 'set_balloons')
|
||||
call balloon_show(l:str)
|
||||
elseif g:ale_hover_to_preview
|
||||
call ale#preview#Show(split(l:str, "\n"), {
|
||||
\ 'filetype': 'ale-preview.message',
|
||||
\ 'stay_here': 1,
|
||||
\})
|
||||
else
|
||||
call ale#util#ShowMessage(l:str)
|
||||
endif
|
||||
|
@ -145,8 +145,8 @@ g:ale_python_black_use_global *g:ale_python_black_use_global*
|
||||
See |ale-integrations-local-executables|
|
||||
|
||||
|
||||
g:ale_python_black_auto_pipenv *g:ale_python_black_auto_pipenv*
|
||||
*b:ale_python_black_auto_pipenv*
|
||||
g:ale_python_black_auto_pipenv *g:ale_python_black_auto_pipenv*
|
||||
*b:ale_python_black_auto_pipenv*
|
||||
Type: |Number|
|
||||
Default: `0`
|
||||
|
||||
@ -263,6 +263,15 @@ to check for errors while you type.
|
||||
`mypy` will be run from a detected project root, per |ale-python-root|.
|
||||
|
||||
|
||||
g:ale_python_mypy_auto_pipenv *g:ale_python_mypy_auto_pipenv*
|
||||
*b:ale_python_mypy_auto_pipenv*
|
||||
Type: |Number|
|
||||
Default: `0`
|
||||
|
||||
Detect whether the file is inside a pipenv, and set the executable to `pipenv`
|
||||
if true. This is overridden by a manually-set executable.
|
||||
|
||||
|
||||
g:ale_python_mypy_executable *g:ale_python_mypy_executable*
|
||||
*b:ale_python_mypy_executable*
|
||||
Type: |String|
|
||||
@ -272,6 +281,7 @@ g:ale_python_mypy_executable *g:ale_python_mypy_executable*
|
||||
|
||||
Set this to `'pipenv'` to invoke `'pipenv` `run` `mypy'`.
|
||||
|
||||
|
||||
g:ale_python_mypy_ignore_invalid_syntax
|
||||
*g:ale_python_mypy_ignore_invalid_syntax*
|
||||
*b:ale_python_mypy_ignore_invalid_syntax*
|
||||
@ -292,6 +302,14 @@ g:ale_python_mypy_options *g:ale_python_mypy_options*
|
||||
invocation.
|
||||
|
||||
|
||||
g:ale_python_mypy_show_notes *g:ale_python_mypy_show_notes*
|
||||
*b:ale_python_mypy_show_notes*
|
||||
Type: |Number|
|
||||
Default: `1`
|
||||
|
||||
If enabled, notes on lines will be displayed as 'I' (info) messages.
|
||||
|
||||
|
||||
g:ale_python_mypy_use_global *g:ale_python_mypy_use_global*
|
||||
*b:ale_python_mypy_use_global*
|
||||
Type: |Number|
|
||||
@ -300,14 +318,6 @@ g:ale_python_mypy_use_global *g:ale_python_mypy_use_global*
|
||||
See |ale-integrations-local-executables|
|
||||
|
||||
|
||||
g:ale_python_mypy_auto_pipenv *g:ale_python_mypy_auto_pipenv*
|
||||
*b:ale_python_mypy_auto_pipenv*
|
||||
Type: |Number|
|
||||
Default: `0`
|
||||
|
||||
Detect whether the file is inside a pipenv, and set the executable to `pipenv`
|
||||
if true. This is overridden by a manually-set executable.
|
||||
|
||||
|
||||
===============================================================================
|
||||
prospector *ale-python-prospector*
|
||||
|
@ -432,6 +432,11 @@ vimrc, and your issues should go away. >
|
||||
|
||||
set completeopt=menu,menuone,preview,noselect,noinsert
|
||||
<
|
||||
|
||||
Or alternatively, if you want to show documentation in popups: >
|
||||
|
||||
set completeopt=menu,menuone,popup,noselect,noinsert
|
||||
<
|
||||
*ale-symbols*
|
||||
|
||||
ALE provides a set of basic completion symbols. If you want to replace those
|
||||
@ -525,6 +530,9 @@ the mouse over a symbol in a buffer. Diagnostic information will take priority
|
||||
over hover information for balloons. If a line contains a problem, that
|
||||
problem will be displayed in a balloon instead of hover information.
|
||||
|
||||
Hover information can be displayed in the preview window instead by setting
|
||||
|g:ale_hover_to_preview| to `1`.
|
||||
|
||||
For Vim 8.1+ terminals, mouse hovering is disabled by default. Enabling
|
||||
|balloonexpr| commands in terminals can cause scrolling issues in terminals,
|
||||
so ALE will not attempt to show balloons unless |g:ale_set_balloons| is set to
|
||||
@ -1023,6 +1031,16 @@ g:ale_history_log_output *g:ale_history_log_output*
|
||||
if you want to save on some memory usage.
|
||||
|
||||
|
||||
g:ale_hover_to_preview *g:ale_hover_to_preview*
|
||||
*b:ale_hover_to_preview*
|
||||
|
||||
Type: |Number|
|
||||
Default: `0`
|
||||
|
||||
If set to `1`, hover messages will be displayed in the preview window,
|
||||
instead of in balloons or the message line.
|
||||
|
||||
|
||||
g:ale_keep_list_window_open *g:ale_keep_list_window_open*
|
||||
*b:ale_keep_list_window_open*
|
||||
Type: |Number|
|
||||
@ -1337,7 +1355,7 @@ b:ale_loclist_msg_format *b:ale_loclist_msg_format*
|
||||
The strings for configuring `%severity%` are also used for this option.
|
||||
|
||||
|
||||
g:ale_lsp_show_message_format *g:ale_lsp_show_message_format*
|
||||
g:ale_lsp_show_message_format *g:ale_lsp_show_message_format*
|
||||
|
||||
Type: |String|
|
||||
Default: `'%severity%:%linter%: %s'`
|
||||
@ -1359,7 +1377,7 @@ g:ale_lsp_show_message_format *g:ale_lsp_show_message_
|
||||
separately for each buffer like |g:ale_echo_msg_format| can.
|
||||
|
||||
|
||||
g:ale_lsp_show_message_severity *g:ale_lsp_show_message_severity*
|
||||
g:ale_lsp_show_message_severity *g:ale_lsp_show_message_severity*
|
||||
|
||||
Type: |String|
|
||||
Default: `'error'`
|
||||
|
@ -125,6 +125,9 @@ let g:ale_close_preview_on_insert = get(g:, 'ale_close_preview_on_insert', 0)
|
||||
" This flag can be set to 0 to disable balloon support.
|
||||
let g:ale_set_balloons = get(g:, 'ale_set_balloons', has('balloon_eval') && has('gui_running'))
|
||||
|
||||
" Use preview window for hover messages.
|
||||
let g:ale_hover_to_preview = get(g:, 'ale_hover_to_preview', 0)
|
||||
|
||||
" This flag can be set to 0 to disable warnings for trailing whitespace
|
||||
let g:ale_warn_about_trailing_whitespace = get(g:, 'ale_warn_about_trailing_whitespace', 1)
|
||||
" This flag can be set to 0 to disable warnings for trailing blank lines
|
||||
|
@ -24,6 +24,7 @@ class Source(Base):
|
||||
self.rank = 1000
|
||||
self.is_bytepos = True
|
||||
self.min_pattern_length = 1
|
||||
self.is_volatile = True
|
||||
# Do not forget to update s:trigger_character_map in completion.vim in
|
||||
# updating entries in this map.
|
||||
self.input_patterns = {
|
||||
@ -44,21 +45,16 @@ class Source(Base):
|
||||
if not self.vim.call('ale#completion#CanProvideCompletions'):
|
||||
return None
|
||||
|
||||
if context.get('is_refresh'):
|
||||
context['is_async'] = False
|
||||
event = context.get('event')
|
||||
|
||||
if context['is_async']:
|
||||
# Result is the same as for omnifunc, or None.
|
||||
if event == 'Async':
|
||||
result = self.vim.call('ale#completion#GetCompletionResult')
|
||||
return result or []
|
||||
|
||||
if result is not None:
|
||||
context['is_async'] = False
|
||||
|
||||
return result
|
||||
else:
|
||||
context['is_async'] = True
|
||||
|
||||
# Request some completion results.
|
||||
self.vim.call('ale#completion#GetCompletions', 'deoplete')
|
||||
if context.get('is_refresh'):
|
||||
self.vim.command(
|
||||
"call ale#completion#GetCompletions('ale-callback', " + \
|
||||
"{'callback': {completions -> deoplete#auto_complete() }})"
|
||||
)
|
||||
|
||||
return []
|
||||
|
Reference in New Issue
Block a user