mirror of
https://github.com/amix/vimrc
synced 2025-07-10 03:25:00 +08:00
Update plugins from upstream.
This commit is contained in:
@ -133,11 +133,13 @@ let s:should_complete_map = {
|
||||
\ 'typescript': '\v[a-zA-Z$_][a-zA-Z$_0-9]*$|\.$|''$|"$',
|
||||
\ 'rust': '\v[a-zA-Z$_][a-zA-Z$_0-9]*$|\.$|::$',
|
||||
\ 'cpp': '\v[a-zA-Z$_][a-zA-Z$_0-9]*$|\.$|::$|-\>$',
|
||||
\ 'c': '\v[a-zA-Z$_][a-zA-Z$_0-9]*$|\.$|-\>$',
|
||||
\}
|
||||
|
||||
" Regular expressions for finding the start column to replace with completion.
|
||||
let s:omni_start_map = {
|
||||
\ '<default>': '\v[a-zA-Z$_][a-zA-Z$_0-9]*$',
|
||||
\ 'racket': '\k\+',
|
||||
\}
|
||||
|
||||
" A map of exact characters for triggering LSP completions. Do not forget to
|
||||
@ -147,6 +149,7 @@ let s:trigger_character_map = {
|
||||
\ 'typescript': ['.', '''', '"'],
|
||||
\ 'rust': ['.', '::'],
|
||||
\ 'cpp': ['.', '::', '->'],
|
||||
\ 'c': ['.', '->'],
|
||||
\}
|
||||
|
||||
function! s:GetFiletypeValue(map, filetype) abort
|
||||
|
@ -78,6 +78,11 @@ let s:default_registry = {
|
||||
\ 'suggested_filetypes': ['dhall'],
|
||||
\ 'description': 'Standard code formatter for the Dhall language and removing dead code',
|
||||
\ },
|
||||
\ 'dune': {
|
||||
\ 'function': 'ale#fixers#dune#Fix',
|
||||
\ 'suggested_filetypes': ['dune'],
|
||||
\ 'description': 'Fix dune files with dune format',
|
||||
\ },
|
||||
\ 'fecs': {
|
||||
\ 'function': 'ale#fixers#fecs#Fix',
|
||||
\ 'suggested_filetypes': ['javascript', 'css', 'html'],
|
||||
@ -136,6 +141,11 @@ let s:default_registry = {
|
||||
\ 'description': 'Apply prettier-eslint to a file.',
|
||||
\ 'aliases': ['prettier-eslint'],
|
||||
\ },
|
||||
\ 'pyflyby': {
|
||||
\ 'function': 'ale#fixers#pyflyby#Fix',
|
||||
\ 'suggested_filetypes': ['python'],
|
||||
\ 'description': 'Tidy Python imports with pyflyby.',
|
||||
\ },
|
||||
\ 'importjs': {
|
||||
\ 'function': 'ale#fixers#importjs#Fix',
|
||||
\ 'suggested_filetypes': ['javascript'],
|
||||
@ -226,6 +236,11 @@ let s:default_registry = {
|
||||
\ 'suggested_filetypes': ['php'],
|
||||
\ 'description': 'Fix PHP files with php-cs-fixer.',
|
||||
\ },
|
||||
\ 'pint': {
|
||||
\ 'function': 'ale#fixers#pint#Fix',
|
||||
\ 'suggested_filetypes': ['php'],
|
||||
\ 'description': 'Fix PHP files with Laravel Pint.',
|
||||
\ },
|
||||
\ 'astyle': {
|
||||
\ 'function': 'ale#fixers#astyle#Fix',
|
||||
\ 'suggested_filetypes': ['c', 'cpp'],
|
||||
|
16
sources_non_forked/ale/autoload/ale/fixers/dune.vim
Normal file
16
sources_non_forked/ale/autoload/ale/fixers/dune.vim
Normal file
@ -0,0 +1,16 @@
|
||||
" Author: Albert Peschar <albert@peschar.net>
|
||||
" Description: Fix files with dune format.
|
||||
|
||||
call ale#Set('ocaml_dune_executable', 'dune')
|
||||
call ale#Set('ocaml_dune_options', '')
|
||||
|
||||
function! ale#fixers#dune#Fix(buffer) abort
|
||||
let l:executable = ale#Var(a:buffer, 'ocaml_dune_executable')
|
||||
let l:options = ale#Var(a:buffer, 'ocaml_dune_options')
|
||||
|
||||
return {
|
||||
\ 'command': ale#Escape(l:executable)
|
||||
\ . ' format'
|
||||
\ . (empty(l:options) ? '' : ' ' . l:options),
|
||||
\}
|
||||
endfunction
|
25
sources_non_forked/ale/autoload/ale/fixers/pint.vim
Normal file
25
sources_non_forked/ale/autoload/ale/fixers/pint.vim
Normal file
@ -0,0 +1,25 @@
|
||||
" Author: Michael Dyrynda <michael@dyrynda.com.au>
|
||||
" Description: Fixing files with Laravel Pint.
|
||||
|
||||
call ale#Set('php_pint_executable', 'pint')
|
||||
call ale#Set('php_pint_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||
call ale#Set('php_pint_options', '')
|
||||
|
||||
function! ale#fixers#pint#GetExecutable(buffer) abort
|
||||
return ale#path#FindExecutable(a:buffer, 'php_pint', [
|
||||
\ 'vendor/bin/pint',
|
||||
\ 'pint'
|
||||
\])
|
||||
endfunction
|
||||
|
||||
function! ale#fixers#pint#Fix(buffer) abort
|
||||
let l:executable = ale#fixers#pint#GetExecutable(a:buffer)
|
||||
|
||||
return {
|
||||
\ 'command': ale#Escape(l:executable)
|
||||
\ . ' ' . ale#Var(a:buffer, 'php_pint_options')
|
||||
\ . ' %t',
|
||||
\ 'read_temporary_file': 1,
|
||||
\}
|
||||
endfunction
|
||||
|
41
sources_non_forked/ale/autoload/ale/fixers/pyflyby.vim
Normal file
41
sources_non_forked/ale/autoload/ale/fixers/pyflyby.vim
Normal file
@ -0,0 +1,41 @@
|
||||
" Author: infokiller <joweill@icloud.com>
|
||||
" Description: Tidy imports using pyflyby's tidy-import script
|
||||
" https://github.com/deshaw/pyflyby
|
||||
|
||||
call ale#Set('python_pyflyby_executable', 'tidy-imports')
|
||||
call ale#Set('python_pyflyby_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||
call ale#Set('python_pyflyby_options', '')
|
||||
call ale#Set('python_pyflyby_auto_pipenv', 0)
|
||||
call ale#Set('python_pyflyby_auto_poetry', 0)
|
||||
|
||||
function! ale#fixers#pyflyby#GetExecutable(buffer) abort
|
||||
if (ale#Var(a:buffer, 'python_auto_pipenv') || ale#Var(a:buffer, 'python_pyflyby_auto_pipenv'))
|
||||
\ && ale#python#PipenvPresent(a:buffer)
|
||||
return 'pipenv'
|
||||
endif
|
||||
|
||||
if (ale#Var(a:buffer, 'python_auto_poetry') || ale#Var(a:buffer, 'python_pyflyby_auto_poetry'))
|
||||
\ && ale#python#PoetryPresent(a:buffer)
|
||||
return 'poetry'
|
||||
endif
|
||||
|
||||
return ale#python#FindExecutable(a:buffer, 'python_pyflyby', ['tidy-imports'])
|
||||
endfunction
|
||||
|
||||
function! ale#fixers#pyflyby#Fix(buffer) abort
|
||||
" let l:executable = ale#fixers#pyflyby#GetExecutable(a:buffer)
|
||||
let l:executable = ale#fixers#pyflyby#GetExecutable(a:buffer)
|
||||
let l:cmd = [ale#Escape(l:executable)]
|
||||
|
||||
if l:executable =~? 'pipenv\|poetry$'
|
||||
call extend(l:cmd, ['run', 'tidy-imports'])
|
||||
endif
|
||||
|
||||
let l:options = ale#Var(a:buffer, 'python_pyflyby_options')
|
||||
|
||||
if !empty(l:options)
|
||||
call add(l:cmd, l:options)
|
||||
endif
|
||||
|
||||
return {'command': join(l:cmd, ' ')}
|
||||
endfunction
|
@ -5,27 +5,13 @@ scriptencoding utf-8
|
||||
call ale#Set('sh_shfmt_executable', 'shfmt')
|
||||
call ale#Set('sh_shfmt_options', '')
|
||||
|
||||
function! s:DefaultOption(buffer) abort
|
||||
if getbufvar(a:buffer, '&expandtab') == 0
|
||||
" Tab is used by default
|
||||
return ''
|
||||
endif
|
||||
|
||||
let l:tabsize = getbufvar(a:buffer, '&shiftwidth')
|
||||
|
||||
if l:tabsize == 0
|
||||
let l:tabsize = getbufvar(a:buffer, '&tabstop')
|
||||
endif
|
||||
|
||||
return ' -i ' . l:tabsize
|
||||
endfunction
|
||||
|
||||
function! ale#fixers#shfmt#Fix(buffer) abort
|
||||
let l:executable = ale#Var(a:buffer, 'sh_shfmt_executable')
|
||||
let l:options = ale#Var(a:buffer, 'sh_shfmt_options')
|
||||
|
||||
return {
|
||||
\ 'command': ale#Escape(l:executable)
|
||||
\ . (empty(l:options) ? s:DefaultOption(a:buffer) : ' ' . l:options)
|
||||
\ . ' -filename=%s'
|
||||
\ . (empty(l:options) ? '' : ' ' . l:options)
|
||||
\}
|
||||
endfunction
|
||||
|
@ -106,18 +106,20 @@ function! s:NvimPrepareWindowContent(lines) abort
|
||||
let l:width += 2
|
||||
let l:height += 2
|
||||
|
||||
let l:hor = g:ale_floating_window_border[0]
|
||||
let l:top = g:ale_floating_window_border[1]
|
||||
let l:top_left = g:ale_floating_window_border[2]
|
||||
let l:top_right = g:ale_floating_window_border[3]
|
||||
let l:bottom_right = g:ale_floating_window_border[4]
|
||||
let l:bottom_left = g:ale_floating_window_border[5]
|
||||
let l:left = get(g:ale_floating_window_border, 0, '|')
|
||||
let l:top = get(g:ale_floating_window_border, 1, '-')
|
||||
let l:top_left = get(g:ale_floating_window_border, 2, '+')
|
||||
let l:top_right = get(g:ale_floating_window_border, 3, '+')
|
||||
let l:bottom_right = get(g:ale_floating_window_border, 4, '+')
|
||||
let l:bottom_left = get(g:ale_floating_window_border, 5, '+')
|
||||
let l:right = get(g:ale_floating_window_border, 6, l:left)
|
||||
let l:bottom = get(g:ale_floating_window_border, 7, l:top)
|
||||
|
||||
let l:lines = [l:top_left . repeat(l:top, l:width - 2) . l:top_right]
|
||||
|
||||
for l:line in a:lines
|
||||
let l:line_width = strchars(l:line)
|
||||
let l:lines = add(l:lines, l:hor . l:line . repeat(' ', l:width - l:line_width - 2). l:hor)
|
||||
let l:lines = add(l:lines, l:left . l:line . repeat(' ', l:width - l:line_width - 2). l:right)
|
||||
endfor
|
||||
|
||||
" Truncate the lines
|
||||
@ -125,7 +127,7 @@ function! s:NvimPrepareWindowContent(lines) abort
|
||||
let l:lines = l:lines[0:l:max_height]
|
||||
endif
|
||||
|
||||
let l:lines = add(l:lines, l:bottom_left . repeat(l:top, l:width - 2) . l:bottom_right)
|
||||
let l:lines = add(l:lines, l:bottom_left . repeat(l:bottom, l:width - 2) . l:bottom_right)
|
||||
|
||||
return [l:lines, l:width, l:height]
|
||||
endfunction
|
||||
@ -158,14 +160,14 @@ function! s:VimCreate(options) abort
|
||||
\ 'padding': [0, 1, 0, 1],
|
||||
\ 'border': [],
|
||||
\ 'borderchars': empty(g:ale_floating_window_border) ? [' '] : [
|
||||
\ g:ale_floating_window_border[1],
|
||||
\ g:ale_floating_window_border[0],
|
||||
\ g:ale_floating_window_border[1],
|
||||
\ g:ale_floating_window_border[0],
|
||||
\ g:ale_floating_window_border[2],
|
||||
\ g:ale_floating_window_border[3],
|
||||
\ g:ale_floating_window_border[4],
|
||||
\ g:ale_floating_window_border[5],
|
||||
\ get(g:ale_floating_window_border, 1, '-'),
|
||||
\ get(g:ale_floating_window_border, 6, '|'),
|
||||
\ get(g:ale_floating_window_border, 7, '-'),
|
||||
\ get(g:ale_floating_window_border, 0, '|'),
|
||||
\ get(g:ale_floating_window_border, 2, '+'),
|
||||
\ get(g:ale_floating_window_border, 3, '+'),
|
||||
\ get(g:ale_floating_window_border, 4, '+'),
|
||||
\ get(g:ale_floating_window_border, 5, '+'),
|
||||
\ ],
|
||||
\ 'moved': 'any',
|
||||
\ })
|
||||
|
@ -1,5 +1,17 @@
|
||||
function! ale#handlers#actionlint#GetCommand(buffer) abort
|
||||
return '%e --no-color --oneline %t'
|
||||
let l:options = ale#Var(a:buffer, 'yaml_actionlint_options')
|
||||
|
||||
" automatically add --no-color option if not defined
|
||||
if l:options !~# '--no-color'
|
||||
let l:options .= ' --no-color'
|
||||
endif
|
||||
|
||||
" automatically add --oneline option if not defined
|
||||
if l:options !~# '--oneline'
|
||||
let l:options .= ' --oneline'
|
||||
endif
|
||||
|
||||
return '%e ' . l:options . ' %t'
|
||||
endfunction
|
||||
|
||||
function! ale#handlers#actionlint#Handle(buffer, lines) abort
|
||||
|
73
sources_non_forked/ale/autoload/ale/handlers/openscad.vim
Normal file
73
sources_non_forked/ale/autoload/ale/handlers/openscad.vim
Normal file
@ -0,0 +1,73 @@
|
||||
scriptencoding utf-8LE
|
||||
" Description: This file defines a handler function for linting OpenSCAD files
|
||||
" with SCA2D
|
||||
|
||||
function! ale#handlers#openscad#SCA2D_callback(buffer, lines) abort
|
||||
" Example output::
|
||||
" foo.scad:3:1: W2001: Variable `unused` overwritten within scope.
|
||||
" foo.scad:1:1: F0001: Cannot read file due to syntax error:
|
||||
" - No terminal matches '}' in the current parser context, at line 1 col 36
|
||||
let l:filename_re = '^\([^:]*\):'
|
||||
let l:linenum_re = '\([0-9]*\):'
|
||||
let l:colnum_re = '\([0-9]*\):'
|
||||
let l:err_id = '\([IWEFU][0-9]\+\):'
|
||||
let l:err_msg = '\(.*\)'
|
||||
let l:pattern = filename_re .
|
||||
\ linenum_re .
|
||||
\ colnum_re .
|
||||
\ ' ' .
|
||||
\ err_id .
|
||||
\ ' ' .
|
||||
\ err_msg
|
||||
|
||||
let l:result = []
|
||||
let l:idx = 0
|
||||
|
||||
for l:line in a:lines
|
||||
let l:matches = matchlist(line, pattern)
|
||||
|
||||
if len(matches) > 0
|
||||
" option: Info, Warning, Error, Fatal, Unknown
|
||||
if index(['I', 'W'], matches[4][0]) >= 0
|
||||
let l:type = 'W'
|
||||
else
|
||||
let l:type = 'E'
|
||||
endif
|
||||
|
||||
let l:lnum = matches[2]
|
||||
let l:col = matches[3]
|
||||
let l:text = matches[5]
|
||||
|
||||
" Better locations for some syntax errors
|
||||
if matches[4][0] is# 'F'
|
||||
let l:syntax_error_re = '^\(.*\), at line \([0-9]\+\) col \([0-9]\+\)$'
|
||||
let l:next_line = a:lines[idx+1]
|
||||
let l:syn_err_matches = matchlist(l:next_line, l:syntax_error_re)
|
||||
|
||||
if len(syn_err_matches) > 0
|
||||
let l:text = l:text . l:syn_err_matches[1]
|
||||
let l:lnum = l:syn_err_matches[2]
|
||||
let l:col = l:syn_err_matches[3]
|
||||
else
|
||||
let l:text = l:next_line
|
||||
endif
|
||||
endif
|
||||
|
||||
let l:element = {
|
||||
\ 'lnum': str2nr(l:lnum),
|
||||
\ 'col': str2nr(l:col),
|
||||
\ 'text': l:text,
|
||||
\ 'detail': l:matches[4] . ': ' . l:text,
|
||||
\ 'filename': fnamemodify(matches[1], ':p'),
|
||||
\ 'type': l:type
|
||||
\ }
|
||||
|
||||
call add(l:result, l:element)
|
||||
endif
|
||||
|
||||
let l:idx += 1
|
||||
endfor
|
||||
|
||||
return result
|
||||
|
||||
endfun
|
@ -250,10 +250,16 @@ function! ale#job#Start(command, options) abort
|
||||
|
||||
if has_key(a:options, 'out_cb')
|
||||
let l:job_options.out_cb = function('s:VimOutputCallback')
|
||||
else
|
||||
" prevent buffering of output and excessive polling in case close_cb is set
|
||||
let l:job_options.out_cb = {->0}
|
||||
endif
|
||||
|
||||
if has_key(a:options, 'err_cb')
|
||||
let l:job_options.err_cb = function('s:VimErrorCallback')
|
||||
else
|
||||
" prevent buffering of output and excessive polling in case close_cb is set
|
||||
let l:job_options.err_cb = {->0}
|
||||
endif
|
||||
|
||||
if has_key(a:options, 'exit_cb')
|
||||
|
Reference in New Issue
Block a user