mirror of
https://github.com/amix/vimrc
synced 2025-06-30 20:05:01 +08:00
Updated plugins
This commit is contained in:
51
sources_non_forked/ale/ale_linters/eruby/erblint.vim
Normal file
51
sources_non_forked/ale/ale_linters/eruby/erblint.vim
Normal file
@ -0,0 +1,51 @@
|
||||
" Author: Roeland Moors - https://github.com/roelandmoors
|
||||
" based on the ale ruumba and robocop linters
|
||||
" Description: ERB Lint, support for https://github.com/Shopify/erb-lint
|
||||
|
||||
call ale#Set('eruby_erblint_executable', 'erblint')
|
||||
call ale#Set('eruby_erblint_options', '')
|
||||
|
||||
function! ale_linters#eruby#erblint#GetCommand(buffer) abort
|
||||
let l:executable = ale#Var(a:buffer, 'eruby_erblint_executable')
|
||||
|
||||
return ale#ruby#EscapeExecutable(l:executable, 'erblint')
|
||||
\ . ' --format json '
|
||||
\ . ale#Var(a:buffer, 'eruby_erblint_options')
|
||||
\ . ' --stdin %s'
|
||||
endfunction
|
||||
|
||||
function! ale_linters#eruby#erblint#Handle(buffer, lines) abort
|
||||
if empty(a:lines)
|
||||
return []
|
||||
endif
|
||||
|
||||
let l:errors = ale#util#FuzzyJSONDecode(a:lines[0], [])
|
||||
|
||||
if !has_key(l:errors, 'summary')
|
||||
\|| l:errors['summary']['offenses'] == 0
|
||||
\|| empty(l:errors['files'])
|
||||
return []
|
||||
endif
|
||||
|
||||
let l:output = []
|
||||
|
||||
for l:error in l:errors['files'][0]['offenses']
|
||||
call add(l:output, {
|
||||
\ 'lnum': l:error['location']['start_line'] + 0,
|
||||
\ 'col': l:error['location']['start_column'] + 0,
|
||||
\ 'end_col': l:error['location']['last_column'] + 0,
|
||||
\ 'code': l:error['linter'],
|
||||
\ 'text': l:error['message'],
|
||||
\ 'type': 'W',
|
||||
\})
|
||||
endfor
|
||||
|
||||
return l:output
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('eruby', {
|
||||
\ 'name': 'erblint',
|
||||
\ 'executable': {b -> ale#Var(b, 'eruby_erblint_executable')},
|
||||
\ 'command': function('ale_linters#eruby#erblint#GetCommand'),
|
||||
\ 'callback': 'ale_linters#eruby#erblint#Handle',
|
||||
\})
|
11
sources_non_forked/ale/ale_linters/javascript/deno.vim
Normal file
11
sources_non_forked/ale/ale_linters/javascript/deno.vim
Normal file
@ -0,0 +1,11 @@
|
||||
" Author: Arnold Chand <creativenull@outlook.com>
|
||||
" Description: Deno lsp linter for JavaScript files.
|
||||
|
||||
call ale#linter#Define('javascript', {
|
||||
\ 'name': 'deno',
|
||||
\ 'lsp': 'stdio',
|
||||
\ 'executable': function('ale#handlers#deno#GetExecutable'),
|
||||
\ 'command': '%e lsp',
|
||||
\ 'project_root': function('ale#handlers#deno#GetProjectRoot'),
|
||||
\ 'initialization_options': function('ale#handlers#deno#GetInitializationOptions'),
|
||||
\})
|
16
sources_non_forked/ale/ale_linters/json/eslint.vim
Normal file
16
sources_non_forked/ale/ale_linters/json/eslint.vim
Normal file
@ -0,0 +1,16 @@
|
||||
" Author: João Pesce <joao@pesce.cc>
|
||||
" Description: eslint for JSON files.
|
||||
"
|
||||
" Requires eslint-plugin-jsonc or a similar plugin to work
|
||||
"
|
||||
" Uses the same funtcions as ale_linters/javascript/eslint.vim by w0rp
|
||||
" <devw0rp@gmail.com>
|
||||
|
||||
call ale#linter#Define('json', {
|
||||
\ 'name': 'eslint',
|
||||
\ 'output_stream': 'both',
|
||||
\ 'executable': function('ale#handlers#eslint#GetExecutable'),
|
||||
\ 'cwd': function('ale#handlers#eslint#GetCwd'),
|
||||
\ 'command': function('ale#handlers#eslint#GetCommand'),
|
||||
\ 'callback': 'ale#handlers#eslint#HandleJSON',
|
||||
\})
|
16
sources_non_forked/ale/ale_linters/json5/eslint.vim
Normal file
16
sources_non_forked/ale/ale_linters/json5/eslint.vim
Normal file
@ -0,0 +1,16 @@
|
||||
" Author: João Pesce <joao@pesce.cc>
|
||||
" Description: eslint for JSON5 files.
|
||||
"
|
||||
" Requires eslint-plugin-jsonc or a similar plugin to work
|
||||
"
|
||||
" Uses the same funtcions as ale_linters/javascript/eslint.vim by w0rp
|
||||
" <devw0rp@gmail.com>
|
||||
|
||||
call ale#linter#Define('json5', {
|
||||
\ 'name': 'eslint',
|
||||
\ 'output_stream': 'both',
|
||||
\ 'executable': function('ale#handlers#eslint#GetExecutable'),
|
||||
\ 'cwd': function('ale#handlers#eslint#GetCwd'),
|
||||
\ 'command': function('ale#handlers#eslint#GetCommand'),
|
||||
\ 'callback': 'ale#handlers#eslint#HandleJSON',
|
||||
\})
|
16
sources_non_forked/ale/ale_linters/jsonc/eslint.vim
Normal file
16
sources_non_forked/ale/ale_linters/jsonc/eslint.vim
Normal file
@ -0,0 +1,16 @@
|
||||
" Author: João Pesce <joao@pesce.cc>
|
||||
" Description: eslint for JSONC files.
|
||||
"
|
||||
" Requires eslint-plugin-jsonc or a similar plugin to work
|
||||
"
|
||||
" Uses the same funtcions as ale_linters/javascript/eslint.vim by w0rp
|
||||
" <devw0rp@gmail.com>
|
||||
|
||||
call ale#linter#Define('jsonc', {
|
||||
\ 'name': 'eslint',
|
||||
\ 'output_stream': 'both',
|
||||
\ 'executable': function('ale#handlers#eslint#GetExecutable'),
|
||||
\ 'cwd': function('ale#handlers#eslint#GetCwd'),
|
||||
\ 'command': function('ale#handlers#eslint#GetCommand'),
|
||||
\ 'callback': 'ale#handlers#eslint#HandleJSON',
|
||||
\})
|
59
sources_non_forked/ale/ale_linters/jsonnet/jsonnet_lint.vim
Normal file
59
sources_non_forked/ale/ale_linters/jsonnet/jsonnet_lint.vim
Normal file
@ -0,0 +1,59 @@
|
||||
" Author: Trevor Whitney <trevorjwhitney@gmail.com>
|
||||
" Description: jsonnet-lint for jsonnet files
|
||||
|
||||
call ale#Set('jsonnet_jsonnet_lint_executable', 'jsonnet-lint')
|
||||
call ale#Set('jsonnet_jsonnet_lint_options', '')
|
||||
|
||||
function! ale_linters#jsonnet#jsonnet_lint#GetCommand(buffer) abort
|
||||
let l:options = ale#Var(a:buffer, 'jsonnet_jsonnet_lint_options')
|
||||
|
||||
return '%e'
|
||||
\ . ale#Pad(l:options)
|
||||
\ . ' %t'
|
||||
endfunction
|
||||
|
||||
|
||||
function! ale_linters#jsonnet#jsonnet_lint#Handle(buffer, lines) abort
|
||||
" Matches patterns line the following:
|
||||
"
|
||||
" ERROR: foo.jsonnet:22:3-12 expected token OPERATOR but got (IDENTIFIER, "bar")
|
||||
" ERROR: hoge.jsonnet:20:3 unexpected: "}" while parsing terminal
|
||||
" ERROR: main.jsonnet:212:1-14 Expected , or ; but got (IDENTIFIER, "older_cluster")
|
||||
let l:pattern = '^ERROR: [^:]*:\(\d\+\):\(\d\+\)\(-\d\+\)* \(.*\)'
|
||||
let l:output = []
|
||||
|
||||
for l:line in a:lines
|
||||
let l:match = matchlist(l:line, l:pattern)
|
||||
|
||||
if len(l:match) == 0
|
||||
continue
|
||||
endif
|
||||
|
||||
let line_number = l:match[1] + 0
|
||||
let column = l:match[2] + 0
|
||||
" l:match[3] has optional -14, when linter is showing a range
|
||||
let text = l:match[4]
|
||||
|
||||
|
||||
" vcol is Needed to indicate that the column is a character.
|
||||
call add(l:output, {
|
||||
\ 'bufnr': a:buffer,
|
||||
\ 'lnum': line_number,
|
||||
\ 'vcol': 0,
|
||||
\ 'col': column,
|
||||
\ 'text': text,
|
||||
\ 'type': 'E',
|
||||
\ 'nr': -1,
|
||||
\})
|
||||
endfor
|
||||
|
||||
return l:output
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('jsonnet', {
|
||||
\ 'name': 'jsonnet_lint',
|
||||
\ 'output_stream': 'stderr',
|
||||
\ 'executable': {b -> ale#Var(b, 'jsonnet_jsonnet_lint_executable')},
|
||||
\ 'command': function('ale_linters#jsonnet#jsonnet_lint#GetCommand'),
|
||||
\ 'callback': 'ale_linters#jsonnet#jsonnet_lint#Handle',
|
||||
\})
|
52
sources_non_forked/ale/ale_linters/jsonnet/jsonnetfmt.vim
Normal file
52
sources_non_forked/ale/ale_linters/jsonnet/jsonnetfmt.vim
Normal file
@ -0,0 +1,52 @@
|
||||
" Authors: Trevor Whitney <trevorjwhitney@gmail.com> and Takuya Kosugiyama <re@itkq.jp>
|
||||
" Description: jsonnetfmt for jsonnet files
|
||||
|
||||
call ale#Set('jsonnet_jsonnetfmt_executable', 'jsonnetfmt')
|
||||
call ale#Set('jsonnet_jsonnetfmt_options', '')
|
||||
|
||||
function! ale_linters#jsonnet#jsonnetfmt#GetCommand(buffer) abort
|
||||
let l:options = ale#Var(a:buffer, 'jsonnet_jsonnetfmt_options')
|
||||
|
||||
return '%e'
|
||||
\ . ale#Pad(l:options)
|
||||
\ . ' %t'
|
||||
endfunction
|
||||
|
||||
|
||||
function! ale_linters#jsonnet#jsonnetfmt#Handle(buffer, lines) abort
|
||||
" Matches patterns line the following:
|
||||
"
|
||||
" STATIC ERROR: foo.jsonnet:22:3-12: expected token OPERATOR but got (IDENTIFIER, "bar")
|
||||
" STATIC ERROR: hoge.jsonnet:20:3: unexpected: "}" while parsing terminal
|
||||
let l:pattern = '^STATIC ERROR:[^:]*:\(\d\+\):\(\d\+\):*\(-\d\+\)* \(.*\)'
|
||||
let l:output = []
|
||||
|
||||
for l:line in a:lines
|
||||
let l:match = matchlist(l:line, l:pattern)
|
||||
|
||||
if len(l:match) == 0
|
||||
continue
|
||||
endif
|
||||
|
||||
" vcol is Needed to indicate that the column is a character.
|
||||
call add(l:output, {
|
||||
\ 'bufnr': a:buffer,
|
||||
\ 'lnum': l:match[1] + 0,
|
||||
\ 'vcol': 0,
|
||||
\ 'col': l:match[2] + 0,
|
||||
\ 'text': l:match[4],
|
||||
\ 'type': 'E',
|
||||
\ 'nr': -1,
|
||||
\})
|
||||
endfor
|
||||
|
||||
return l:output
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('jsonnet', {
|
||||
\ 'name': 'jsonnetfmt',
|
||||
\ 'output_stream': 'stderr',
|
||||
\ 'executable': {b -> ale#Var(b, 'jsonnet_jsonnetfmt_executable')},
|
||||
\ 'command': function('ale_linters#jsonnet#jsonnetfmt#GetCommand'),
|
||||
\ 'callback': 'ale_linters#jsonnet#jsonnetfmt#Handle',
|
||||
\})
|
@ -1,4 +1,4 @@
|
||||
" Author: Vincent (wahrwolf [ät] wolfpit.net)
|
||||
" Author: Vincent (wahrwolf [at] wolfpit.net)
|
||||
" Description: languagetool for mails
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
" Author: Vincent (wahrwolf [ät] wolfpit.net)
|
||||
" Author: Vincent (wahrwolf [at] wolfpit.net)
|
||||
" Description: languagetool for markdown files
|
||||
|
||||
|
||||
|
175
sources_non_forked/ale/ale_linters/python/flakehell.vim
Normal file
175
sources_non_forked/ale/ale_linters/python/flakehell.vim
Normal file
@ -0,0 +1,175 @@
|
||||
" Author: w0rp <devw0rp@gmail.com>
|
||||
" Description: flakehell for python files
|
||||
|
||||
call ale#Set('python_flakehell_executable', 'flakehell')
|
||||
call ale#Set('python_flakehell_options', '')
|
||||
call ale#Set('python_flakehell_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||
call ale#Set('python_flakehell_change_directory', 'project')
|
||||
call ale#Set('python_flakehell_auto_pipenv', 0)
|
||||
call ale#Set('python_flakehell_auto_poetry', 0)
|
||||
|
||||
function! s:UsingModule(buffer) abort
|
||||
return ale#Var(a:buffer, 'python_flakehell_executable') is? 'python'
|
||||
endfunction
|
||||
|
||||
function! ale_linters#python#flakehell#GetExecutable(buffer) abort
|
||||
if (ale#Var(a:buffer, 'python_auto_pipenv') || ale#Var(a:buffer, 'python_flakehell_auto_pipenv'))
|
||||
\ && ale#python#PipenvPresent(a:buffer)
|
||||
return 'pipenv'
|
||||
endif
|
||||
|
||||
if (ale#Var(a:buffer, 'python_auto_poetry') || ale#Var(a:buffer, 'python_flakehell_auto_poetry'))
|
||||
\ && ale#python#PoetryPresent(a:buffer)
|
||||
return 'poetry'
|
||||
endif
|
||||
|
||||
if !s:UsingModule(a:buffer)
|
||||
return ale#python#FindExecutable(a:buffer, 'python_flakehell', ['flakehell'])
|
||||
endif
|
||||
|
||||
return ale#Var(a:buffer, 'python_flakehell_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#python#flakehell#RunWithVersionCheck(buffer) abort
|
||||
let l:executable = ale_linters#python#flakehell#GetExecutable(a:buffer)
|
||||
|
||||
let l:module_string = s:UsingModule(a:buffer) ? ' -m flakehell' : ''
|
||||
let l:command = ale#Escape(l:executable) . l:module_string . ' --version'
|
||||
|
||||
return ale#semver#RunWithVersionCheck(
|
||||
\ a:buffer,
|
||||
\ l:executable,
|
||||
\ l:command,
|
||||
\ function('ale_linters#python#flakehell#GetCommand'),
|
||||
\)
|
||||
endfunction
|
||||
|
||||
function! ale_linters#python#flakehell#GetCwd(buffer) abort
|
||||
let l:change_directory = ale#Var(a:buffer, 'python_flakehell_change_directory')
|
||||
let l:cwd = ''
|
||||
|
||||
if l:change_directory is# 'project'
|
||||
let l:project_root = ale#python#FindProjectRootIni(a:buffer)
|
||||
|
||||
if !empty(l:project_root)
|
||||
let l:cwd = l:project_root
|
||||
endif
|
||||
endif
|
||||
|
||||
if (l:change_directory is# 'project' && empty(l:cwd))
|
||||
\|| l:change_directory is# 1
|
||||
\|| l:change_directory is# 'file'
|
||||
let l:cwd = '%s:h'
|
||||
endif
|
||||
|
||||
return l:cwd
|
||||
endfunction
|
||||
|
||||
function! ale_linters#python#flakehell#GetCommand(buffer, version) abort
|
||||
let l:executable = ale_linters#python#flakehell#GetExecutable(a:buffer)
|
||||
|
||||
if (l:executable =~? 'pipenv\|poetry$')
|
||||
let l:exec_args = ' run flakehell'
|
||||
elseif (l:executable is? 'python')
|
||||
let l:exec_args = ' -m flakehell'
|
||||
else
|
||||
let l:exec_args = ''
|
||||
endif
|
||||
|
||||
" Only include the --stdin-display-name argument if we can parse the
|
||||
" flakehell version, and it is recent enough to support it.
|
||||
let l:display_name_args = ale#semver#GTE(a:version, [0, 8, 0])
|
||||
\ ? ' --stdin-display-name %s'
|
||||
\ : ''
|
||||
|
||||
let l:options = ale#Var(a:buffer, 'python_flakehell_options')
|
||||
|
||||
return ale#Escape(l:executable)
|
||||
\ . l:exec_args
|
||||
\ . (!empty(l:options) ? ' lint ' . l:options : ' lint')
|
||||
\ . ' --format=default'
|
||||
\ . l:display_name_args . ' -'
|
||||
endfunction
|
||||
|
||||
let s:end_col_pattern_map = {
|
||||
\ 'F405': '\(.\+\) may be undefined',
|
||||
\ 'F821': 'undefined name ''\([^'']\+\)''',
|
||||
\ 'F999': '^''\([^'']\+\)''',
|
||||
\ 'F841': 'local variable ''\([^'']\+\)''',
|
||||
\}
|
||||
|
||||
function! ale_linters#python#flakehell#Handle(buffer, lines) abort
|
||||
let l:output = ale#python#HandleTraceback(a:lines, 10)
|
||||
|
||||
if !empty(l:output)
|
||||
return l:output
|
||||
endif
|
||||
|
||||
" Matches patterns line the following:
|
||||
"
|
||||
" Matches patterns line the following:
|
||||
"
|
||||
" stdin:6:6: E111 indentation is not a multiple of four
|
||||
let l:pattern = '\v^[a-zA-Z]?:?[^:]+:(\d+):?(\d+)?: ([[:alnum:]]+):? (.*)$'
|
||||
|
||||
for l:match in ale#util#GetMatches(a:lines, l:pattern)
|
||||
let l:code = l:match[3]
|
||||
|
||||
if (l:code is# 'W291' || l:code is# 'W293')
|
||||
\ && !ale#Var(a:buffer, 'warn_about_trailing_whitespace')
|
||||
" Skip warnings for trailing whitespace if the option is off.
|
||||
continue
|
||||
endif
|
||||
|
||||
if l:code is# 'W391'
|
||||
\&& !ale#Var(a:buffer, 'warn_about_trailing_blank_lines')
|
||||
" Skip warnings for trailing blank lines if the option is off
|
||||
continue
|
||||
endif
|
||||
|
||||
let l:item = {
|
||||
\ 'lnum': l:match[1] + 0,
|
||||
\ 'col': l:match[2] + 0,
|
||||
\ 'vcol': 1,
|
||||
\ 'text': l:match[4],
|
||||
\ 'code': l:code,
|
||||
\ 'type': 'W',
|
||||
\}
|
||||
|
||||
if l:code[:0] is# 'F'
|
||||
if l:code isnot# 'F401'
|
||||
let l:item.type = 'E'
|
||||
endif
|
||||
elseif l:code[:0] is# 'E'
|
||||
let l:item.type = 'E'
|
||||
|
||||
if l:code isnot# 'E999' && l:code isnot# 'E112'
|
||||
let l:item.sub_type = 'style'
|
||||
endif
|
||||
elseif l:code[:0] is# 'W'
|
||||
let l:item.sub_type = 'style'
|
||||
endif
|
||||
|
||||
let l:end_col_pattern = get(s:end_col_pattern_map, l:code, '')
|
||||
|
||||
if !empty(l:end_col_pattern)
|
||||
let l:end_col_match = matchlist(l:match[4], l:end_col_pattern)
|
||||
|
||||
if !empty(l:end_col_match)
|
||||
let l:item.end_col = l:item.col + len(l:end_col_match[1]) - 1
|
||||
endif
|
||||
endif
|
||||
|
||||
call add(l:output, l:item)
|
||||
endfor
|
||||
|
||||
return l:output
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('python', {
|
||||
\ 'name': 'flakehell',
|
||||
\ 'executable': function('ale_linters#python#flakehell#GetExecutable'),
|
||||
\ 'cwd': function('ale_linters#python#flakehell#GetCwd'),
|
||||
\ 'command': function('ale_linters#python#flakehell#RunWithVersionCheck'),
|
||||
\ 'callback': 'ale_linters#python#flakehell#Handle',
|
||||
\})
|
@ -22,14 +22,17 @@ endfunction
|
||||
|
||||
function! ale_linters#python#pyre#GetCommand(buffer) abort
|
||||
let l:executable = ale_linters#python#pyre#GetExecutable(a:buffer)
|
||||
|
||||
let l:exec_args = l:executable =~? 'pipenv\|poetry$'
|
||||
\ ? ' run pyre persistent'
|
||||
\ : ' persistent'
|
||||
let l:exec_args = (l:executable =~? 'pipenv\|poetry$' ? ' run pyre' : '') . ' persistent'
|
||||
|
||||
return ale#Escape(l:executable) . l:exec_args
|
||||
endfunction
|
||||
|
||||
function! ale_linters#python#pyre#GetCwd(buffer) abort
|
||||
let l:local_config = ale#path#FindNearestFile(a:buffer, '.pyre_configuration.local')
|
||||
|
||||
return fnamemodify(l:local_config, ':h')
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('python', {
|
||||
\ 'name': 'pyre',
|
||||
\ 'lsp': 'stdio',
|
||||
@ -37,4 +40,5 @@ call ale#linter#Define('python', {
|
||||
\ 'command': function('ale_linters#python#pyre#GetCommand'),
|
||||
\ 'project_root': function('ale#python#FindProjectRoot'),
|
||||
\ 'completion_filter': 'ale#completion#python#CompletionItemFilter',
|
||||
\ 'cwd': function('ale_linters#python#pyre#GetCwd'),
|
||||
\})
|
||||
|
46
sources_non_forked/ale/ale_linters/robot/rflint.vim
Normal file
46
sources_non_forked/ale/ale_linters/robot/rflint.vim
Normal file
@ -0,0 +1,46 @@
|
||||
" Author: Samuel Branisa <branisa.samuel@icloud.com>
|
||||
" Description: rflint linting for robot framework files
|
||||
|
||||
call ale#Set('robot_rflint_executable', 'rflint')
|
||||
|
||||
function! ale_linters#robot#rflint#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'robot_rflint_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#robot#rflint#GetCommand(buffer) abort
|
||||
let l:executable = ale_linters#robot#rflint#GetExecutable(a:buffer)
|
||||
let l:flags = '--format'
|
||||
\ . ' "{filename}:{severity}:{linenumber}:{char}:{rulename}:{message}"'
|
||||
|
||||
return l:executable
|
||||
\ . ' '
|
||||
\ . l:flags
|
||||
\ . ' %s'
|
||||
endfunction
|
||||
|
||||
function! ale_linters#robot#rflint#Handle(buffer, lines) abort
|
||||
let l:pattern = '\v^([[:alnum:][:punct:]]+):(W|E):([[:digit:]]+):([[:digit:]]+):([[:alnum:]]+):(.*)$'
|
||||
let l:output = []
|
||||
|
||||
for l:match in ale#util#GetMatches(a:lines, l:pattern)
|
||||
call add(l:output, {
|
||||
\ 'bufnr': a:buffer,
|
||||
\ 'filename': l:match[1],
|
||||
\ 'type': l:match[2],
|
||||
\ 'lnum': str2nr(l:match[3]),
|
||||
\ 'col': str2nr(l:match[4]),
|
||||
\ 'text': l:match[5],
|
||||
\ 'detail': l:match[6],
|
||||
\})
|
||||
endfor
|
||||
|
||||
return l:output
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('robot', {
|
||||
\ 'name': 'rflint',
|
||||
\ 'executable': function('ale_linters#robot#rflint#GetExecutable'),
|
||||
\ 'command': function('ale_linters#robot#rflint#GetCommand'),
|
||||
\ 'callback': 'ale_linters#robot#rflint#Handle',
|
||||
\})
|
||||
|
@ -13,9 +13,9 @@ endfunction
|
||||
function! ale_linters#thrift#thriftcheck#Handle(buffer, lines) abort
|
||||
" Matches lines like the following:
|
||||
"
|
||||
" file.thrift:1:1:error: "py" namespace must match "^idl\\." (namespace.pattern)
|
||||
" file.thrift:3:5:warning: 64-bit integer constant -2147483649 may not work in all languages (int.64bit)
|
||||
let l:pattern = '\v^[a-zA-Z]?:?[^:]+:(\d+):(\d+):(\l+): (.*) \((.*)\)$'
|
||||
" file.thrift:1:1: error: "py" namespace must match "^idl\\." (namespace.pattern)
|
||||
" file.thrift:3:5: warning: 64-bit integer constant -2147483649 may not work in all languages (int.64bit)
|
||||
let l:pattern = '\v^[a-zA-Z]?:?[^:]+:(\d+):(\d+): ?([^:]+): (.+) \(([^\)]+)\)$'
|
||||
|
||||
let l:output = []
|
||||
|
||||
|
@ -28,7 +28,7 @@ endfunction
|
||||
call ale#linter#Define('yaml', {
|
||||
\ 'name': 'circleci',
|
||||
\ 'executable': {b -> expand('#' . b . ':p') =~? '\.circleci' ? 'circleci' : ''},
|
||||
\ 'command': 'circleci config validate - < %s',
|
||||
\ 'command': 'circleci --skip-update-check config validate - < %s',
|
||||
\ 'callback': 'ale_linters#yaml#circleci#Handle',
|
||||
\ 'output_stream': 'stderr',
|
||||
\ 'lint_file': 1,
|
||||
|
@ -201,6 +201,14 @@ function! ale#codefix#ApplyLSPCodeAction(data, item) abort
|
||||
\ l:command.arguments,
|
||||
\)
|
||||
|
||||
let l:request_id = ale#lsp#Send(a:data.connection_id, l:message)
|
||||
elseif has_key(a:item, 'command') && has_key(a:item, 'arguments')
|
||||
\&& type(a:item.command) == v:t_string
|
||||
let l:message = ale#lsp#message#ExecuteCommand(
|
||||
\ a:item.command,
|
||||
\ a:item.arguments,
|
||||
\)
|
||||
|
||||
let l:request_id = ale#lsp#Send(a:data.connection_id, l:message)
|
||||
elseif has_key(a:item, 'edit') || has_key(a:item, 'arguments')
|
||||
if has_key(a:item, 'edit')
|
||||
@ -299,7 +307,7 @@ function! ale#codefix#HandleLSPResponse(conn_id, response) abort
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:FindError(buffer, line, column, end_line, end_column) abort
|
||||
function! s:FindError(buffer, line, column, end_line, end_column, linter_name) abort
|
||||
let l:nearest_error = v:null
|
||||
|
||||
if a:line == a:end_line
|
||||
@ -308,7 +316,9 @@ function! s:FindError(buffer, line, column, end_line, end_column) abort
|
||||
let l:nearest_error_diff = -1
|
||||
|
||||
for l:error in get(g:ale_buffer_info[a:buffer], 'loclist', [])
|
||||
if has_key(l:error, 'code') && l:error.lnum == a:line
|
||||
if has_key(l:error, 'code')
|
||||
\ && (a:linter_name is v:null || l:error.linter_name is# a:linter_name)
|
||||
\ && l:error.lnum == a:line
|
||||
let l:diff = abs(l:error.col - a:column)
|
||||
|
||||
if l:nearest_error_diff == -1 || l:diff < l:nearest_error_diff
|
||||
@ -341,7 +351,7 @@ function! s:OnReady(
|
||||
|
||||
if a:linter.lsp is# 'tsserver'
|
||||
let l:nearest_error =
|
||||
\ s:FindError(l:buffer, a:line, a:column, a:end_line, a:end_column)
|
||||
\ s:FindError(l:buffer, a:line, a:column, a:end_line, a:end_column, a:linter.lsp)
|
||||
|
||||
if l:nearest_error isnot v:null
|
||||
let l:message = ale#lsp#tsserver_message#GetCodeFixes(
|
||||
@ -368,7 +378,7 @@ function! s:OnReady(
|
||||
|
||||
let l:diagnostics = []
|
||||
let l:nearest_error =
|
||||
\ s:FindError(l:buffer, a:line, a:column, a:end_line, a:end_column)
|
||||
\ s:FindError(l:buffer, a:line, a:column, a:end_line, a:end_column, v:null)
|
||||
|
||||
if l:nearest_error isnot v:null
|
||||
let l:diagnostics = [
|
||||
|
@ -1001,12 +1001,11 @@ endfunction
|
||||
|
||||
function! ale#completion#HandleUserData(completed_item) abort
|
||||
let l:user_data_json = get(a:completed_item, 'user_data', '')
|
||||
let l:user_data = !empty(l:user_data_json)
|
||||
\ ? ale#util#FuzzyJSONDecode(l:user_data_json, v:null)
|
||||
\ : v:null
|
||||
let l:user_data = type(l:user_data_json) is v:t_dict
|
||||
\ ? l:user_data_json
|
||||
\ : ale#util#FuzzyJSONDecode(l:user_data_json, {})
|
||||
|
||||
if type(l:user_data) isnot v:t_dict
|
||||
\|| get(l:user_data, '_ale_completion_item', 0) isnot 1
|
||||
if !has_key(l:user_data, '_ale_completion_item')
|
||||
return
|
||||
endif
|
||||
|
||||
|
@ -246,6 +246,11 @@ let s:default_registry = {
|
||||
\ 'suggested_filetypes': ['go'],
|
||||
\ 'description': 'Fix Go files imports with goimports.',
|
||||
\ },
|
||||
\ 'golines': {
|
||||
\ 'function': 'ale#fixers#golines#Fix',
|
||||
\ 'suggested_filetypes': ['go'],
|
||||
\ 'description': 'Fix Go file long lines with golines',
|
||||
\ },
|
||||
\ 'gomod': {
|
||||
\ 'function': 'ale#fixers#gomod#Fix',
|
||||
\ 'suggested_filetypes': ['gomod'],
|
||||
@ -301,6 +306,11 @@ let s:default_registry = {
|
||||
\ 'suggested_filetypes': ['haskell'],
|
||||
\ 'description': 'Refactor Haskell files with stylish-haskell.',
|
||||
\ },
|
||||
\ 'purs-tidy': {
|
||||
\ 'function': 'ale#fixers#purs_tidy#Fix',
|
||||
\ 'suggested_filetypes': ['purescript'],
|
||||
\ 'description': 'Format PureScript files with purs-tidy.',
|
||||
\ },
|
||||
\ 'purty': {
|
||||
\ 'function': 'ale#fixers#purty#Fix',
|
||||
\ 'suggested_filetypes': ['purescript'],
|
||||
@ -386,6 +396,11 @@ let s:default_registry = {
|
||||
\ 'suggested_filetypes': ['dart'],
|
||||
\ 'description': 'Fix Dart files with dart format.',
|
||||
\ },
|
||||
\ 'dotnet-format': {
|
||||
\ 'function': 'ale#fixers#dotnet_format#Fix',
|
||||
\ 'suggested_filetypes': ['cs'],
|
||||
\ 'description': 'Fix C# files with dotnet format.',
|
||||
\ },
|
||||
\ 'xmllint': {
|
||||
\ 'function': 'ale#fixers#xmllint#Fix',
|
||||
\ 'suggested_filetypes': ['xml'],
|
||||
@ -471,6 +486,11 @@ let s:default_registry = {
|
||||
\ 'suggested_filetypes': ['haskell'],
|
||||
\ 'description': 'A formatter for Haskell source code.',
|
||||
\ },
|
||||
\ 'jsonnetfmt': {
|
||||
\ 'function': 'ale#fixers#jsonnetfmt#Fix',
|
||||
\ 'suggested_filetypes': ['jsonnet'],
|
||||
\ 'description': 'Fix jsonnet files with jsonnetfmt',
|
||||
\ },
|
||||
\ 'ptop': {
|
||||
\ 'function': 'ale#fixers#ptop#Fix',
|
||||
\ 'suggested_filetypes': ['pascal'],
|
||||
|
@ -1,14 +1,11 @@
|
||||
" Author: toastal <toastal@protonmail.com>
|
||||
" Author: toastal <toastal@posteo.net>
|
||||
" Description: Dhall’s built-in formatter
|
||||
"
|
||||
function! ale#fixers#dhall_format#Fix(buffer) abort
|
||||
let l:executable = ale#dhall#GetExecutableWithOptions(a:buffer)
|
||||
let l:command = l:executable
|
||||
\ . ' format'
|
||||
\ . ' --inplace %t'
|
||||
|
||||
return {
|
||||
\ 'command': l:command,
|
||||
\ 'read_temporary_file': 1,
|
||||
\ 'command': l:executable
|
||||
\ . ' format'
|
||||
\}
|
||||
endfunction
|
||||
|
@ -1,18 +1,14 @@
|
||||
" Author: toastal <toastal@protonmail.com>
|
||||
" Author: toastal <toastal@posteo.net>
|
||||
" Description: Dhall’s package freezing
|
||||
|
||||
call ale#Set('dhall_freeze_options', '')
|
||||
|
||||
function! ale#fixers#dhall_freeze#Freeze(buffer) abort
|
||||
let l:executable = ale#dhall#GetExecutableWithOptions(a:buffer)
|
||||
let l:command = l:executable
|
||||
\ . ' freeze'
|
||||
\ . ale#Pad(ale#Var(a:buffer, 'dhall_freeze_options'))
|
||||
\ . ' --inplace %t'
|
||||
|
||||
|
||||
return {
|
||||
\ 'command': l:command,
|
||||
\ 'read_temporary_file': 1,
|
||||
\ 'command': l:executable
|
||||
\ . ' freeze'
|
||||
\ . ale#Pad(ale#Var(a:buffer, 'dhall_freeze_options'))
|
||||
\}
|
||||
endfunction
|
||||
|
@ -1,14 +1,11 @@
|
||||
" Author: toastal <toastal@protonmail.com>
|
||||
" Author: toastal <toastal@posteo.net>
|
||||
" Description: Dhall’s built-in linter/formatter
|
||||
|
||||
function! ale#fixers#dhall_lint#Fix(buffer) abort
|
||||
let l:executable = ale#dhall#GetExecutableWithOptions(a:buffer)
|
||||
let l:command = l:executable
|
||||
\ . ' lint'
|
||||
\ . ' --inplace %t'
|
||||
|
||||
return {
|
||||
\ 'command': l:command,
|
||||
\ 'read_temporary_file': 1,
|
||||
\ 'command': l:executable
|
||||
\ . ' lint'
|
||||
\}
|
||||
endfunction
|
||||
|
18
sources_non_forked/ale/autoload/ale/fixers/dotnet_format.vim
Normal file
18
sources_non_forked/ale/autoload/ale/fixers/dotnet_format.vim
Normal file
@ -0,0 +1,18 @@
|
||||
" Author: ghsang <gwonhyuksang@gmail.com>
|
||||
" Description: Integration of dotnet format with ALE.
|
||||
|
||||
call ale#Set('cs_dotnet_format_executable', 'dotnet')
|
||||
call ale#Set('cs_dotnet_format_options', '')
|
||||
|
||||
function! ale#fixers#dotnet_format#Fix(buffer) abort
|
||||
let l:executable = ale#Var(a:buffer, 'cs_dotnet_format_executable')
|
||||
let l:options = ale#Var(a:buffer, 'cs_dotnet_format_options')
|
||||
|
||||
return {
|
||||
\ 'command': ale#Escape(l:executable)
|
||||
\ . ' format'
|
||||
\ . (empty(l:options) ? '' : ' ' . l:options)
|
||||
\ . ' --folder --include %t "$(dirname %t)"',
|
||||
\ 'read_temporary_file': 1,
|
||||
\}
|
||||
endfunction
|
21
sources_non_forked/ale/autoload/ale/fixers/golines.vim
Normal file
21
sources_non_forked/ale/autoload/ale/fixers/golines.vim
Normal file
@ -0,0 +1,21 @@
|
||||
" Author Pig Frown <pigfrown@protonmail.com>
|
||||
" Description: Fix Go files long lines with golines"
|
||||
|
||||
call ale#Set('go_golines_executable', 'golines')
|
||||
|
||||
call ale#Set('go_golines_options', '')
|
||||
|
||||
function! ale#fixers#golines#Fix(buffer) abort
|
||||
let l:executable = ale#Var(a:buffer, 'go_golines_executable')
|
||||
let l:options = ale#Var(a:buffer, 'go_golines_options')
|
||||
let l:env = ale#go#EnvString(a:buffer)
|
||||
|
||||
if !executable(l:executable)
|
||||
return 0
|
||||
endif
|
||||
|
||||
return {
|
||||
\ 'command': l:env . ale#Escape(l:executable)
|
||||
\ . (empty(l:options) ? '' : ' ' . l:options)
|
||||
\}
|
||||
endfunction
|
@ -5,6 +5,7 @@ call ale#Set('python_isort_executable', 'isort')
|
||||
call ale#Set('python_isort_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||
call ale#Set('python_isort_options', '')
|
||||
call ale#Set('python_isort_auto_pipenv', 0)
|
||||
call ale#Set('python_isort_auto_poetry', 0)
|
||||
|
||||
function! ale#fixers#isort#GetExecutable(buffer) abort
|
||||
if (ale#Var(a:buffer, 'python_auto_pipenv') || ale#Var(a:buffer, 'python_isort_auto_pipenv'))
|
||||
@ -12,24 +13,34 @@ function! ale#fixers#isort#GetExecutable(buffer) abort
|
||||
return 'pipenv'
|
||||
endif
|
||||
|
||||
if (ale#Var(a:buffer, 'python_auto_poetry') || ale#Var(a:buffer, 'python_isort_auto_poetry'))
|
||||
\ && ale#python#PoetryPresent(a:buffer)
|
||||
return 'poetry'
|
||||
endif
|
||||
|
||||
return ale#python#FindExecutable(a:buffer, 'python_isort', ['isort'])
|
||||
endfunction
|
||||
|
||||
function! ale#fixers#isort#Fix(buffer) abort
|
||||
let l:options = ale#Var(a:buffer, 'python_isort_options')
|
||||
let l:executable = ale#fixers#isort#GetExecutable(a:buffer)
|
||||
let l:exec_args = l:executable =~? 'pipenv$'
|
||||
\ ? ' run isort'
|
||||
\ : ''
|
||||
let l:cmd = [ale#Escape(l:executable)]
|
||||
|
||||
if !executable(l:executable) && l:executable isnot# 'pipenv'
|
||||
return 0
|
||||
if l:executable =~? 'pipenv\|poetry$'
|
||||
call extend(l:cmd, ['run', 'isort'])
|
||||
endif
|
||||
|
||||
call add(l:cmd, '--filename %s')
|
||||
|
||||
let l:options = ale#Var(a:buffer, 'python_isort_options')
|
||||
|
||||
if !empty(l:options)
|
||||
call add(l:cmd, l:options)
|
||||
endif
|
||||
|
||||
call add(l:cmd, '-')
|
||||
|
||||
return {
|
||||
\ 'cwd': '%s:h',
|
||||
\ 'command': ale#Escape(l:executable) . l:exec_args
|
||||
\ . ale#Pad('--filename %s')
|
||||
\ . (!empty(l:options) ? ' ' . l:options : '') . ' -',
|
||||
\ 'command': join(l:cmd, ' ')
|
||||
\}
|
||||
endfunction
|
||||
|
18
sources_non_forked/ale/autoload/ale/fixers/jsonnetfmt.vim
Normal file
18
sources_non_forked/ale/autoload/ale/fixers/jsonnetfmt.vim
Normal file
@ -0,0 +1,18 @@
|
||||
" Authors: Trevor Whitney <trevorjwhitney@gmail.com> and Takuya Kosugiyama <re@itkq.jp>
|
||||
" Description: Integration of jsonnetfmt with ALE.
|
||||
|
||||
call ale#Set('jsonnet_jsonnetfmt_executable', 'jsonnetfmt')
|
||||
call ale#Set('jsonnet_jsonnetfmt_options', '')
|
||||
|
||||
function! ale#fixers#jsonnetfmt#Fix(buffer) abort
|
||||
let l:executable = ale#Var(a:buffer, 'jsonnet_jsonnetfmt_executable')
|
||||
let l:options = ale#Var(a:buffer, 'jsonnet_jsonnetfmt_options')
|
||||
|
||||
return {
|
||||
\ 'command': ale#Escape(l:executable)
|
||||
\ . ' -i'
|
||||
\ . ale#Pad(l:options)
|
||||
\ . ' %t',
|
||||
\ 'read_temporary_file': 1,
|
||||
\}
|
||||
endfunction
|
24
sources_non_forked/ale/autoload/ale/fixers/purs_tidy.vim
Normal file
24
sources_non_forked/ale/autoload/ale/fixers/purs_tidy.vim
Normal file
@ -0,0 +1,24 @@
|
||||
" Author: toastal <toastal@posteo.net>
|
||||
" Description: Integration of purs-tidy with ALE.
|
||||
|
||||
call ale#Set('purescript_tidy_executable', 'purs-tidy')
|
||||
call ale#Set('purescript_tidy_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||
call ale#Set('purescript_tidy_options', '')
|
||||
|
||||
function! ale#fixers#purs_tidy#GetExecutable(buffer) abort
|
||||
return ale#path#FindExecutable(a:buffer, 'purescript_tidy', [
|
||||
\ 'node_modules/purescript-tidy/bin/index.js',
|
||||
\ 'node_modules/.bin/purs-tidy',
|
||||
\])
|
||||
endfunction
|
||||
|
||||
function! ale#fixers#purs_tidy#Fix(buffer) abort
|
||||
let l:executable = ale#fixers#purs_tidy#GetExecutable(a:buffer)
|
||||
let l:options = ale#Var(a:buffer, 'purescript_tidy_options')
|
||||
|
||||
return {
|
||||
\ 'command': ale#Escape(l:executable)
|
||||
\ . ' format'
|
||||
\ . ale#Pad(l:options)
|
||||
\}
|
||||
endfunction
|
@ -21,12 +21,10 @@ endfunction
|
||||
|
||||
function! ale#fixers#rubocop#GetCommand(buffer) abort
|
||||
let l:executable = ale#Var(a:buffer, 'ruby_rubocop_executable')
|
||||
let l:config = ale#path#FindNearestFile(a:buffer, '.rubocop.yml')
|
||||
let l:options = ale#Var(a:buffer, 'ruby_rubocop_options')
|
||||
let l:auto_correct_all = ale#Var(a:buffer, 'ruby_rubocop_auto_correct_all')
|
||||
|
||||
return ale#ruby#EscapeExecutable(l:executable, 'rubocop')
|
||||
\ . (!empty(l:config) ? ' --config ' . ale#Escape(l:config) : '')
|
||||
\ . (!empty(l:options) ? ' ' . l:options : '')
|
||||
\ . (l:auto_correct_all ? ' --auto-correct-all' : ' --auto-correct')
|
||||
\ . ' --force-exclusion --stdin %s'
|
||||
|
@ -43,21 +43,25 @@ endfunction
|
||||
function! ale#handlers#cppcheck#HandleCppCheckFormat(buffer, lines) abort
|
||||
" Look for lines like the following.
|
||||
"
|
||||
"test.cpp:974:6: error: Array 'n[3]' accessed at index 3, which is out of bounds. [arrayIndexOutOfBounds]\
|
||||
"test.cpp:974:6: error:inconclusive Array 'n[3]' accessed at index 3, which is out of bounds. [arrayIndexOutOfBounds]\
|
||||
" n[3]=3;
|
||||
" ^
|
||||
let l:pattern = '\v^(\f+):(\d+):(\d+): (\w+): (.*) \[(\w+)\]\'
|
||||
"" OR if cppcheck doesn't support {column} or {inconclusive:text}:
|
||||
"test.cpp:974:{column}: error:{inconclusive:inconclusive} Array 'n[3]' accessed at index 3, which is out of bounds. [arrayIndexOutOfBounds]\
|
||||
" n[3]=3;
|
||||
" ^
|
||||
let l:pattern = '\v(\f+):(\d+):(\d+|\{column\}): (\w+):(\{inconclusive:inconclusive\})? ?(.*) \[(\w+)\]\'
|
||||
let l:output = []
|
||||
|
||||
for l:match in ale#util#GetMatches(a:lines, l:pattern)
|
||||
if ale#path#IsBufferPath(a:buffer, l:match[1])
|
||||
call add(l:output, {
|
||||
\ 'lnum': str2nr(l:match[2]),
|
||||
\ 'col': str2nr(l:match[3]),
|
||||
\ 'col': match(l:match[3],'{column}') >= 0 ? 1 : str2nr(l:match[3]),
|
||||
\ 'type': l:match[4] is# 'error' ? 'E' : 'W',
|
||||
\ 'sub_type': l:match[4] is# 'style' ? 'style' : '',
|
||||
\ 'text': l:match[5],
|
||||
\ 'code': l:match[6]
|
||||
\ 'text': l:match[6],
|
||||
\ 'code': l:match[7]
|
||||
\})
|
||||
endif
|
||||
endfor
|
||||
|
@ -56,19 +56,19 @@ function! ale#handlers#sml#Handle(buffer, lines) abort
|
||||
" Try to match basic sml errors
|
||||
" TODO(jez) We can get better errorfmt strings from Syntastic
|
||||
let l:out = []
|
||||
let l:pattern = '^.*\:\([0-9\.]\+\)\ \(\w\+\)\:\ \(.*\)'
|
||||
let l:pattern2 = '^.*\:\([0-9]\+\)\.\?\([0-9]\+\).* \(\(Warning\|Error\): .*\)'
|
||||
let l:pattern = '^\(.*\)\:\([0-9\.]\+\)\ \(\w\+\)\:\ \(.*\)'
|
||||
let l:pattern2 = '^\(.*\)\:\([0-9]\+\)\.\?\([0-9]\+\).* \(\(Warning\|Error\): .*\)'
|
||||
|
||||
for l:line in a:lines
|
||||
let l:match2 = matchlist(l:line, l:pattern2)
|
||||
|
||||
if len(l:match2) != 0
|
||||
call add(l:out, {
|
||||
\ 'bufnr': a:buffer,
|
||||
\ 'lnum': l:match2[1] + 0,
|
||||
\ 'col' : l:match2[2] - 1,
|
||||
\ 'text': l:match2[3],
|
||||
\ 'type': l:match2[3] =~# '^Warning' ? 'W' : 'E',
|
||||
\ 'filename': l:match2[1],
|
||||
\ 'lnum': l:match2[2] + 0,
|
||||
\ 'col' : l:match2[3] - 1,
|
||||
\ 'text': l:match2[4],
|
||||
\ 'type': l:match2[4] =~# '^Warning' ? 'W' : 'E',
|
||||
\})
|
||||
|
||||
continue
|
||||
@ -78,10 +78,10 @@ function! ale#handlers#sml#Handle(buffer, lines) abort
|
||||
|
||||
if len(l:match) != 0
|
||||
call add(l:out, {
|
||||
\ 'bufnr': a:buffer,
|
||||
\ 'lnum': l:match[1] + 0,
|
||||
\ 'text': l:match[2] . ': ' . l:match[3],
|
||||
\ 'type': l:match[2] is# 'error' ? 'E' : 'W',
|
||||
\ 'filename': l:match[1],
|
||||
\ 'lnum': l:match[2] + 0,
|
||||
\ 'text': l:match[3] . ': ' . l:match[4],
|
||||
\ 'type': l:match[3] is# 'error' ? 'E' : 'W',
|
||||
\})
|
||||
continue
|
||||
endif
|
||||
|
@ -45,7 +45,9 @@ function! ale#hover#HandleTSServerResponse(conn_id, response) abort
|
||||
\&& (l:set_balloons is 1 || l:set_balloons is# 'hover')
|
||||
call balloon_show(a:response.body.displayString)
|
||||
elseif get(l:options, 'truncated_echo', 0)
|
||||
call ale#cursor#TruncatedEcho(split(a:response.body.displayString, "\n")[0])
|
||||
if !empty(a:response.body.displayString)
|
||||
call ale#cursor#TruncatedEcho(split(a:response.body.displayString, "\n")[0])
|
||||
endif
|
||||
elseif g:ale_hover_to_floating_preview || g:ale_floating_preview
|
||||
call ale#floating_preview#Show(split(a:response.body.displayString, "\n"), {
|
||||
\ 'filetype': 'ale-preview.message',
|
||||
|
@ -45,6 +45,7 @@ function! ale#lsp#Register(executable_or_address, project, init_options) abort
|
||||
\ 'typeDefinition': 0,
|
||||
\ 'symbol_search': 0,
|
||||
\ 'code_actions': 0,
|
||||
\ 'includeText': 0,
|
||||
\ },
|
||||
\}
|
||||
endif
|
||||
@ -263,6 +264,20 @@ function! s:UpdateCapabilities(conn, capabilities) abort
|
||||
if type(get(a:capabilities, 'workspaceSymbolProvider')) is v:t_dict
|
||||
let a:conn.capabilities.symbol_search = 1
|
||||
endif
|
||||
|
||||
if has_key(a:capabilities, 'textDocumentSync')
|
||||
if type(a:capabilities.textDocumentSync) is v:t_dict
|
||||
let l:save = get(a:capabilities.textDocumentSync, 'save', v:false)
|
||||
|
||||
if type(l:save) is v:true
|
||||
let a:conn.capabilities.includeText = 1
|
||||
endif
|
||||
|
||||
if type(l:save) is v:t_dict && get(a:capabilities.textDocumentSync.save, 'includeText', v:false) is v:true
|
||||
let a:conn.capabilities.includeText = 1
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Update a connection's configuration dictionary and notify LSP servers
|
||||
|
@ -77,12 +77,19 @@ function! ale#lsp#message#DidChange(buffer) abort
|
||||
\}]
|
||||
endfunction
|
||||
|
||||
function! ale#lsp#message#DidSave(buffer) abort
|
||||
return [1, 'textDocument/didSave', {
|
||||
function! ale#lsp#message#DidSave(buffer, includeText) abort
|
||||
let l:response = [1, 'textDocument/didSave', {
|
||||
\ 'textDocument': {
|
||||
\ 'uri': ale#path#ToURI(expand('#' . a:buffer . ':p')),
|
||||
\ },
|
||||
\}]
|
||||
|
||||
if a:includeText
|
||||
let l:response[2].textDocument.version = ale#lsp#message#GetNextVersionID()
|
||||
let l:response[2].text = ale#util#GetBufferContents(a:buffer)
|
||||
endif
|
||||
|
||||
return l:response
|
||||
endfunction
|
||||
|
||||
function! ale#lsp#message#DidClose(buffer) abort
|
||||
|
@ -271,6 +271,30 @@ function! ale#lsp_linter#OnInit(linter, details, Callback) abort
|
||||
call ale#lsp#NotifyForChanges(l:conn_id, l:buffer)
|
||||
endif
|
||||
|
||||
" Tell the relevant buffer that the LSP has started via an autocmd.
|
||||
if l:buffer > 0
|
||||
if l:buffer == bufnr('')
|
||||
silent doautocmd <nomodeline> User ALELSPStarted
|
||||
else
|
||||
execute 'augroup ALELSPStartedGroup' . l:buffer
|
||||
autocmd!
|
||||
|
||||
execute printf(
|
||||
\ 'autocmd BufEnter <buffer=%d>'
|
||||
\ . ' doautocmd <nomodeline> User ALELSPStarted',
|
||||
\ l:buffer
|
||||
\)
|
||||
|
||||
" Replicate ++once behavior for backwards compatibility.
|
||||
execute printf(
|
||||
\ 'autocmd BufEnter <buffer=%d>'
|
||||
\ . ' autocmd! ALELSPStartedGroup%d',
|
||||
\ l:buffer, l:buffer
|
||||
\)
|
||||
augroup END
|
||||
endif
|
||||
endif
|
||||
|
||||
call a:Callback(a:linter, a:details)
|
||||
endfunction
|
||||
|
||||
@ -442,7 +466,8 @@ function! s:CheckWithLSP(linter, details) abort
|
||||
" If this was a file save event, also notify the server of that.
|
||||
if a:linter.lsp isnot# 'tsserver'
|
||||
\&& getbufvar(l:buffer, 'ale_save_event_fired', 0)
|
||||
let l:save_message = ale#lsp#message#DidSave(l:buffer)
|
||||
let l:include_text = ale#lsp#HasCapability(l:buffer, 'includeText')
|
||||
let l:save_message = ale#lsp#message#DidSave(l:buffer, l:include_text)
|
||||
let l:notified = ale#lsp#Send(l:id, l:save_message) != 0
|
||||
endif
|
||||
endfunction
|
||||
|
@ -24,6 +24,7 @@ function! ale#python#FindProjectRootIni(buffer) abort
|
||||
\|| filereadable(l:path . '/setup.cfg')
|
||||
\|| filereadable(l:path . '/pytest.ini')
|
||||
\|| filereadable(l:path . '/tox.ini')
|
||||
\|| filereadable(l:path . '/.pyre_configuration.local')
|
||||
\|| filereadable(l:path . '/mypy.ini')
|
||||
\|| filereadable(l:path . '/pycodestyle.cfg')
|
||||
\|| filereadable(l:path . '/.flake8')
|
||||
|
@ -535,3 +535,7 @@ function! ale#util#SetBufferContents(buffer, lines) abort
|
||||
|
||||
return l:new_lines
|
||||
endfunction
|
||||
|
||||
function! ale#util#GetBufferContents(buffer) abort
|
||||
return join(getbufline(a:buffer, 1, '$'), '\n') . '\n'
|
||||
endfunction
|
||||
|
@ -7,9 +7,15 @@ scriptencoding utf-8
|
||||
let g:ale_virtualtext_delay = get(g:, 'ale_virtualtext_delay', 10)
|
||||
let s:cursor_timer = -1
|
||||
let s:last_pos = [0, 0, 0]
|
||||
let s:has_virt_text = 0
|
||||
|
||||
if has('nvim-0.3.2')
|
||||
let s:ns_id = nvim_create_namespace('ale')
|
||||
let s:has_virt_text = 1
|
||||
elseif has('textprop') && has('popupwin')
|
||||
call prop_type_add('ale', {})
|
||||
let s:last_popup = -1
|
||||
let s:has_virt_text = 1
|
||||
endif
|
||||
|
||||
if !hlexists('ALEVirtualTextError')
|
||||
@ -33,17 +39,25 @@ if !hlexists('ALEVirtualTextInfo')
|
||||
endif
|
||||
|
||||
function! ale#virtualtext#Clear() abort
|
||||
if !has('nvim-0.3.2')
|
||||
if !s:has_virt_text
|
||||
return
|
||||
endif
|
||||
|
||||
let l:buffer = bufnr('')
|
||||
|
||||
call nvim_buf_clear_highlight(l:buffer, s:ns_id, 0, -1)
|
||||
if has('nvim')
|
||||
call nvim_buf_clear_highlight(l:buffer, s:ns_id, 0, -1)
|
||||
else
|
||||
if s:last_popup != -1
|
||||
call prop_remove({'type': 'ale'})
|
||||
call popup_close(s:last_popup)
|
||||
let s:last_popup = -1
|
||||
endif
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! ale#virtualtext#ShowMessage(message, hl_group) abort
|
||||
if !has('nvim-0.3.2')
|
||||
if !s:has_virt_text
|
||||
return
|
||||
endif
|
||||
|
||||
@ -51,7 +65,24 @@ function! ale#virtualtext#ShowMessage(message, hl_group) abort
|
||||
let l:buffer = bufnr('')
|
||||
let l:prefix = get(g:, 'ale_virtualtext_prefix', '> ')
|
||||
|
||||
call nvim_buf_set_virtual_text(l:buffer, s:ns_id, l:line-1, [[l:prefix.a:message, a:hl_group]], {})
|
||||
if has('nvim')
|
||||
call nvim_buf_set_virtual_text(l:buffer, s:ns_id, l:line-1, [[l:prefix.a:message, a:hl_group]], {})
|
||||
else
|
||||
let l:left_pad = col('$')
|
||||
call prop_add(l:line, l:left_pad, {
|
||||
\ 'type': 'ale',
|
||||
\})
|
||||
let s:last_popup = popup_create(l:prefix.a:message, {
|
||||
\ 'line': -1,
|
||||
\ 'padding': [0, 0, 0, 1],
|
||||
\ 'mask': [[1, 1, 1, 1]],
|
||||
\ 'textprop': 'ale',
|
||||
\ 'highlight': a:hl_group,
|
||||
\ 'fixed': 1,
|
||||
\ 'wrap': 0,
|
||||
\ 'zindex': 2
|
||||
\})
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:StopCursorTimer() abort
|
||||
|
@ -90,6 +90,39 @@ g:ale_cs_csc_assemblies *g:ale_cs_csc_assemblies*
|
||||
\]
|
||||
<
|
||||
|
||||
===============================================================================
|
||||
dotnet-format *ale-cs-dotnet-format*
|
||||
|
||||
Installation
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
Installing .NET SDK should probably ensure that `dotnet` is in your `$PATH`.
|
||||
For .NET 6 the `dotnet format` tool is already included in the .NET SDK. For
|
||||
.NET 5 or below you will have to manually install it using the instructions
|
||||
from listed in this repository: https://github.com/dotnet/format
|
||||
|
||||
|
||||
Options
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
g:ale_cs_dotnet_format_executable *g:ale_cs_dotnet_format_executable*
|
||||
*b:ale_cs_dotnet_format_executable*
|
||||
Type: |String|
|
||||
Default: `'dotnet'`
|
||||
|
||||
This variable can be set to specify an absolute path to the
|
||||
`dotnet` executable (or to specify an alternate executable).
|
||||
|
||||
|
||||
g:ale_cs_dotnet_format_options *g:ale_cs_dotnet_format_options*
|
||||
*b:ale_cs_dotnet_format_options*
|
||||
Type: |String|
|
||||
Default: `''`
|
||||
|
||||
This variable can be set to pass additional options to the `dotnet format`
|
||||
fixer.
|
||||
|
||||
|
||||
===============================================================================
|
||||
mcs *ale-cs-mcs*
|
||||
|
||||
|
@ -156,7 +156,8 @@ environments.
|
||||
2. Vim 8.2.2401 on Linux via GitHub Actions.
|
||||
3. NeoVim 0.2.0 on Linux via GitHub Actions.
|
||||
4. NeoVim 0.4.4 on Linux via GitHub Actions.
|
||||
5. Vim 8 (stable builds) on Windows via AppVeyor.
|
||||
5. NeoVim 0.5.0 on Linux via GitHub Actions.
|
||||
6. Vim 8 (stable builds) on Windows via AppVeyor.
|
||||
|
||||
If you are developing ALE code on Linux, Mac OSX, or BSD, you can run ALEs
|
||||
tests by installing Docker and running the `run-tests` script. Follow the
|
||||
|
@ -6,15 +6,15 @@ g:ale_dhall_executable *g:ale_dhall_executable*
|
||||
Type: |String|
|
||||
Default: `'dhall'`
|
||||
|
||||
g:ale_dhall_options g:ale_dhall_options
|
||||
b:ale_dhall_options
|
||||
g:ale_dhall_options *g:ale_dhall_options*
|
||||
*b:ale_dhall_options*
|
||||
Type: |String|
|
||||
Default: `''`
|
||||
|
||||
This variable can be set to pass additional options to the 'dhall` executable.
|
||||
This is shared with `dhall-freeze` and `dhall-lint`.
|
||||
>
|
||||
let g:dhall_options = '--ascii'
|
||||
let g:ale_dhall_options = '--ascii'
|
||||
<
|
||||
|
||||
===============================================================================
|
||||
@ -30,15 +30,15 @@ dhall-freeze *ale-dhall-freeze*
|
||||
Dhall
|
||||
(https://dhall-lang.org/)
|
||||
|
||||
g:ale_dhall_freeze_options g:ale_dhall_freeze_options
|
||||
b:ale_dhall_freeze_options
|
||||
g:ale_dhall_freeze_options *g:ale_dhall_freeze_options*
|
||||
*b:ale_dhall_freeze_options*
|
||||
Type: |String|
|
||||
Default: `''`
|
||||
|
||||
This variable can be set to pass additional options to the 'dhall freeze`
|
||||
executable.
|
||||
>
|
||||
let g:dhall_freeze_options = '--all'
|
||||
let g:ale_dhall_freeze_options = '--all'
|
||||
<
|
||||
|
||||
===============================================================================
|
||||
|
@ -4,6 +4,7 @@ ALE Eruby Integration *ale-eruby-options*
|
||||
There are four linters for `eruby` files:
|
||||
|
||||
- `erb`
|
||||
- `erblint`
|
||||
- `erubis`
|
||||
- `erubi`
|
||||
- `ruumba`
|
||||
@ -13,6 +14,26 @@ default parser in Rails between 3.0 and 5.1. `erubi` is the default in Rails
|
||||
5.1 and later. `ruumba` can extract Ruby from eruby files and run rubocop on
|
||||
the result. To selectively enable a subset, see |g:ale_linters|.
|
||||
|
||||
===============================================================================
|
||||
erblint *ale-eruby-erblint*
|
||||
|
||||
g:ale_eruby_erblint_executable *g:ale_eruby_erblint_executable*
|
||||
*b:ale_eruby_erblint_executable*
|
||||
Type: |String|
|
||||
Default: `'erblint'`
|
||||
|
||||
Override the invoked erblint binary. This is useful for running erblint
|
||||
from binstubs or a bundle.
|
||||
|
||||
|
||||
g:ale_eruby_erblint_options *g:ale_ruby_erblint_options*
|
||||
*b:ale_ruby_erblint_options*
|
||||
Type: |String|
|
||||
Default: `''`
|
||||
|
||||
This variable can be change to modify flags given to erblint.
|
||||
|
||||
|
||||
===============================================================================
|
||||
ruumba *ale-eruby-ruumba*
|
||||
|
||||
|
@ -133,6 +133,23 @@ g:ale_go_langserver_options *g:ale_go_langserver_options*
|
||||
`-gocodecompletion` option is ignored because it is handled automatically
|
||||
by the |g:ale_completion_enabled| variable.
|
||||
|
||||
===============================================================================
|
||||
golines *ale-go-golines*
|
||||
|
||||
g:ale_go_golines_executable *g:ale_go_lines_executable*
|
||||
*b:ale_go_lines_executable*
|
||||
Type: |String|
|
||||
Default: `'golines'`
|
||||
|
||||
Location of the golines binary file
|
||||
|
||||
g:ale_go_golines_options *g:ale_go_golines_options*
|
||||
*b:ale_go_golines_options*
|
||||
Type: |String|
|
||||
Default: ''
|
||||
|
||||
Additional options passed to the golines command. By default golines has
|
||||
--max-length=100 (lines above 100 characters will be wrapped)
|
||||
|
||||
===============================================================================
|
||||
golint *ale-go-golint*
|
||||
|
@ -23,6 +23,11 @@ To this: >
|
||||
/path/foo/bar/.eslintrc.js # extends: ["/path/foo/.base-eslintrc.js"]
|
||||
<
|
||||
|
||||
===============================================================================
|
||||
deno *ale-javascript-deno*
|
||||
|
||||
Check the docs over at |ale-typescript-deno|.
|
||||
|
||||
===============================================================================
|
||||
eslint *ale-javascript-eslint*
|
||||
|
||||
|
@ -2,6 +2,15 @@
|
||||
ALE JSON Integration *ale-json-options*
|
||||
|
||||
|
||||
===============================================================================
|
||||
eslint *ale-json-eslint*
|
||||
|
||||
The `eslint` linter for JSON uses the JavaScript options for `eslint`; see:
|
||||
|ale-javascript-eslint|.
|
||||
|
||||
You will need a JSON ESLint plugin installed for this to work.
|
||||
|
||||
|
||||
===============================================================================
|
||||
fixjson *ale-json-fixjson*
|
||||
|
||||
|
15
sources_non_forked/ale/doc/ale-json5.txt
Normal file
15
sources_non_forked/ale/doc/ale-json5.txt
Normal file
@ -0,0 +1,15 @@
|
||||
===============================================================================
|
||||
ALE JSON5 Integration *ale-json5-options*
|
||||
|
||||
|
||||
===============================================================================
|
||||
eslint *ale-json5-eslint*
|
||||
|
||||
The `eslint` linter for JSON uses the JavaScript options for `eslint`; see:
|
||||
|ale-javascript-eslint|.
|
||||
|
||||
You will need a JSON5 ESLint plugin installed for this to work.
|
||||
|
||||
|
||||
===============================================================================
|
||||
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
|
15
sources_non_forked/ale/doc/ale-jsonc.txt
Normal file
15
sources_non_forked/ale/doc/ale-jsonc.txt
Normal file
@ -0,0 +1,15 @@
|
||||
===============================================================================
|
||||
ALE JSONC Integration *ale-jsonc-options*
|
||||
|
||||
|
||||
===============================================================================
|
||||
eslint *ale-jsonc-eslint*
|
||||
|
||||
The `eslint` linter for JSON uses the JavaScript options for `eslint`; see:
|
||||
|ale-javascript-eslint|.
|
||||
|
||||
You will need a JSONC ESLint plugin installed for this to work.
|
||||
|
||||
|
||||
===============================================================================
|
||||
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
|
43
sources_non_forked/ale/doc/ale-jsonnet.txt
Normal file
43
sources_non_forked/ale/doc/ale-jsonnet.txt
Normal file
@ -0,0 +1,43 @@
|
||||
===============================================================================
|
||||
ALE Jsonnet Integration *ale-jsonnet-options*
|
||||
|
||||
|
||||
===============================================================================
|
||||
jsonnetfmt *ale-jsonnet-jsonnetfmt*
|
||||
|
||||
g:ale_jsonnet_jsonnetfmt_executable *g:ale_jsonnet_jsonnetfmt_executable*
|
||||
*b:ale_jsonnet_jsonnetfmt_executable*
|
||||
Type: |String|
|
||||
Default: `'jsonnetfmt'`
|
||||
|
||||
This option can be changed to change the path for `jsonnetfmt`.
|
||||
|
||||
|
||||
g:ale_jsonnet_jsonnetfmt_options *g:ale_jsonnet_jsonnetfmt_options*
|
||||
*b:ale_jsonnet_jsonnetfmt_options*
|
||||
Type: |String|
|
||||
Default: `''`
|
||||
|
||||
This option can be changed to pass extra options to `jsonnetfmt`.
|
||||
|
||||
|
||||
===============================================================================
|
||||
jsonnet-lint *ale-jsonnet-jsonnet-lint*
|
||||
|
||||
g:ale_jsonnet_jsonnet_lint_executable *g:ale_jsonnet_jsonnet_lint_executable*
|
||||
*b:ale_jsonnet_jsonnet_lint_executable*
|
||||
Type: |String|
|
||||
Default: `'jsonnet-lint'`
|
||||
|
||||
This option can be changed to change the path for `jsonnet-lint`.
|
||||
|
||||
|
||||
g:ale_jsonnet_jsonnet_lint_options *g:ale_jsonnet_jsonnet_lint_options*
|
||||
*b:ale_jsonnet_jsonnet_lint_options*
|
||||
Type: |String|
|
||||
Default: `''`
|
||||
|
||||
This option can be changed to pass extra options to `jsonnet-lint`.
|
||||
|
||||
|
||||
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
|
@ -30,6 +30,33 @@ g:ale_purescript_ls_config g:ale_purescript_ls_config
|
||||
\ }
|
||||
\}
|
||||
===============================================================================
|
||||
purs-tidy *ale-purescript-tidy*
|
||||
|
||||
g:ale_purescript_tidy_executable *g:ale_purescript_tidy_executable*
|
||||
*b:ale_purescript_tidy_executable*
|
||||
Type: |String|
|
||||
Default: `'purs-tidy'`
|
||||
|
||||
This variable can be changed to use a different executable for purs-tidy.
|
||||
|
||||
g:ale_purescript_tidy_use_global *g:ale_purescript_tidy_use_global*
|
||||
*b:ale_purescript_tidy_use_global*
|
||||
Type: |Number|
|
||||
Default: `get(g:, 'ale_use_global_executables', 0)`
|
||||
|
||||
See |ale-integrations-local-executables|
|
||||
|
||||
g:ale_purescript_tidy_options *g:ale_purescript_tidy_options*
|
||||
*b:ale_purescript_tidy_options*
|
||||
Type: String
|
||||
Default: `''`
|
||||
|
||||
This variable can be set to pass in additional option to the 'purs-tidy'
|
||||
executable.
|
||||
>
|
||||
let g:ale_purescript_options = '--indent 3'
|
||||
<
|
||||
===============================================================================
|
||||
purty *ale-purescript-purty*
|
||||
|
||||
g:ale_purescript_purty_executable *g:ale_purescript_purty_executable*
|
||||
|
@ -35,6 +35,7 @@ ALE will look for configuration files with the following filenames. >
|
||||
setup.cfg
|
||||
pytest.ini
|
||||
tox.ini
|
||||
.pyre_configuration.local
|
||||
mypy.ini
|
||||
pycodestyle.cfg
|
||||
.flake8
|
||||
@ -319,6 +320,69 @@ g:ale_python_flake8_auto_poetry *g:ale_python_flake8_auto_poetry*
|
||||
Detect whether the file is inside a poetry, and set the executable to `poetry`
|
||||
if true. This is overridden by a manually-set executable.
|
||||
|
||||
===============================================================================
|
||||
flakehell *ale-python-flakehell*
|
||||
|
||||
g:ale_python_flakehell_change_directory*g:ale_python_flakehell_change_directory*
|
||||
*b:ale_python_flakehell_change_directory*
|
||||
Type: |String|
|
||||
Default: `project`
|
||||
|
||||
If set to `project`, ALE will switch to the project root before checking file.
|
||||
If set to `file`, ALE will switch to directory the Python file being
|
||||
checked with `flakehell` is in before checking it.
|
||||
You can turn it off with `off` option if you want to control the directory
|
||||
Python is executed from yourself.
|
||||
|
||||
|
||||
g:ale_python_flakehell_executable *g:ale_python_flakehell_executable*
|
||||
*b:ale_python_flakehell_executable*
|
||||
Type: |String|
|
||||
Default: `'flakehell'`
|
||||
|
||||
This variable can be changed to modify the executable used for flakehell. Set
|
||||
this to `'pipenv'` to invoke `'pipenv` `run` `flakehell'`. Set this to
|
||||
`'poetry'` to invoke `'poetry` `run` `flakehell'`. Set this to `'python'` to
|
||||
invoke `'python` `-m` `flakehell'`.
|
||||
|
||||
|
||||
g:ale_python_flakehell_options *g:ale_python_flakehell_options*
|
||||
*b:ale_python_flakehell_options*
|
||||
Type: |String|
|
||||
Default: `''`
|
||||
|
||||
This variable can be changed to add command-line arguments to the flakehell
|
||||
lint invocation.
|
||||
|
||||
|
||||
g:ale_python_flakehell_use_global *g:ale_python_flakehell_use_global*
|
||||
*b:ale_python_flakehell_use_global*
|
||||
Type: |Number|
|
||||
Default: `get(g:, 'ale_use_global_executables', 0)`
|
||||
|
||||
This variable controls whether or not ALE will search for flakehell in a
|
||||
virtualenv directory first. If this variable is set to `1`, then ALE will
|
||||
always use |g:ale_python_flakehell_executable| for the executable path.
|
||||
|
||||
Both variables can be set with `b:` buffer variables instead.
|
||||
|
||||
|
||||
g:ale_python_flakehell_auto_pipenv *g:ale_python_flakehell_auto_pipenv*
|
||||
*b:ale_python_flakehell_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_flakehell_auto_poetry *g:ale_python_flakehell_auto_poetry*
|
||||
*b:ale_python_flakehell_auto_poetry*
|
||||
Type: |Number|
|
||||
Default: `0`
|
||||
|
||||
Detect whether the file is inside a poetry, and set the executable to `poetry`
|
||||
if true. This is overridden by a manually-set executable.
|
||||
|
||||
===============================================================================
|
||||
isort *ale-python-isort*
|
||||
@ -356,6 +420,15 @@ g:ale_python_isort_auto_pipenv *g:ale_python_isort_auto_pipenv*
|
||||
if true. This is overridden by a manually-set executable.
|
||||
|
||||
|
||||
g:ale_python_isort_auto_poetry *g:ale_python_isort_auto_poetry*
|
||||
*b:ale_python_isort_auto_poetry*
|
||||
Type: |Number|
|
||||
Default: `0`
|
||||
|
||||
Detect whether the file is inside a poetry, and set the executable to `poetry`
|
||||
if true. This is overridden by a manually-set executable.
|
||||
|
||||
|
||||
===============================================================================
|
||||
mypy *ale-python-mypy*
|
||||
|
||||
|
16
sources_non_forked/ale/doc/ale-robot.txt
Normal file
16
sources_non_forked/ale/doc/ale-robot.txt
Normal file
@ -0,0 +1,16 @@
|
||||
===============================================================================
|
||||
ALE Robot Integration *ale-robot-options*
|
||||
|
||||
|
||||
===============================================================================
|
||||
rflint *ale-robot-rflint*
|
||||
|
||||
g:ale_robot_rflint_executable *g:ale_robot_rflint_executable*
|
||||
*b:ale_robot_rflint_executable*
|
||||
Type: |String|
|
||||
Default: `'rflint'`
|
||||
|
||||
|
||||
===============================================================================
|
||||
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
|
||||
|
@ -17,7 +17,7 @@ Notes:
|
||||
* `gcc`
|
||||
* `gnatpp`
|
||||
* Ansible
|
||||
* `ansible-lint`
|
||||
* `ansible-lint`!!
|
||||
* API Blueprint
|
||||
* `drafter`
|
||||
* APKBUILD
|
||||
@ -66,6 +66,7 @@ Notes:
|
||||
* `uncrustify`
|
||||
* C#
|
||||
* `csc`!!
|
||||
* `dotnet-format`
|
||||
* `mcs`
|
||||
* `mcsc`!!
|
||||
* `uncrustify`
|
||||
@ -86,7 +87,7 @@ Notes:
|
||||
* `uncrustify`
|
||||
* Chef
|
||||
* `cookstyle`
|
||||
* `foodcritic`
|
||||
* `foodcritic`!!
|
||||
* Clojure
|
||||
* `clj-kondo`
|
||||
* `joker`
|
||||
@ -141,7 +142,7 @@ Notes:
|
||||
* Elixir
|
||||
* `credo`
|
||||
* `dialyxir`
|
||||
* `dogma`
|
||||
* `dogma`!!
|
||||
* `elixir-ls`
|
||||
* `mix`!!
|
||||
* Elm
|
||||
@ -150,12 +151,13 @@ Notes:
|
||||
* `elm-make`
|
||||
* Erb
|
||||
* `erb`
|
||||
* `erblint`
|
||||
* `erubi`
|
||||
* `erubis`
|
||||
* `ruumba`
|
||||
* Erlang
|
||||
* `SyntaxErl`
|
||||
* `dialyzer`
|
||||
* `dialyzer`!!
|
||||
* `elvis`!!
|
||||
* `erlc`
|
||||
* `erlfmt`
|
||||
@ -183,6 +185,7 @@ Notes:
|
||||
* `goimports`
|
||||
* `golangci-lint`!!
|
||||
* `golangserver`
|
||||
* `golines`
|
||||
* `golint`
|
||||
* `gometalinter`!!
|
||||
* `gopls`
|
||||
@ -240,13 +243,14 @@ Notes:
|
||||
* `ispc`!!
|
||||
* Java
|
||||
* `PMD`
|
||||
* `checkstyle`
|
||||
* `checkstyle`!!
|
||||
* `eclipselsp`
|
||||
* `google-java-format`
|
||||
* `javac`
|
||||
* `javalsp`
|
||||
* `uncrustify`
|
||||
* JavaScript
|
||||
* `deno`
|
||||
* `eslint`
|
||||
* `fecs`
|
||||
* `flow`
|
||||
@ -259,16 +263,24 @@ Notes:
|
||||
* `tsserver`
|
||||
* `xo`
|
||||
* JSON
|
||||
* `eslint`
|
||||
* `fixjson`
|
||||
* `jq`
|
||||
* `jsonlint`
|
||||
* `prettier`
|
||||
* `spectral`
|
||||
* JSON5
|
||||
* `eslint`
|
||||
* JSONC
|
||||
* `eslint`
|
||||
* Jsonnet
|
||||
* `jsonnet-lint`
|
||||
* `jsonnetfmt`
|
||||
* Julia
|
||||
* `languageserver`
|
||||
* Kotlin
|
||||
* `kotlinc`!!
|
||||
* `ktlint`!!
|
||||
* `ktlint`
|
||||
* `languageserver`
|
||||
* LaTeX (tex)
|
||||
* `alex`!!
|
||||
@ -389,8 +401,8 @@ Notes:
|
||||
* Prolog
|
||||
* `swipl`
|
||||
* proto
|
||||
* `protoc-gen-lint`
|
||||
* `protolint`
|
||||
* `protoc-gen-lint`!!
|
||||
* `protolint`!!
|
||||
* Pug
|
||||
* `pug-lint`
|
||||
* Puppet
|
||||
@ -399,6 +411,7 @@ Notes:
|
||||
* `puppet-lint`
|
||||
* PureScript
|
||||
* `purescript-language-server`
|
||||
* `purs-tidy`
|
||||
* `purty`
|
||||
* Python
|
||||
* `autoflake`!!
|
||||
@ -407,9 +420,10 @@ Notes:
|
||||
* `bandit`
|
||||
* `black`
|
||||
* `flake8`
|
||||
* `flakehell`
|
||||
* `isort`
|
||||
* `mypy`
|
||||
* `prospector`
|
||||
* `prospector`!!
|
||||
* `pycodestyle`
|
||||
* `pydocstyle`
|
||||
* `pyflakes`
|
||||
@ -446,10 +460,12 @@ Notes:
|
||||
* `textlint`
|
||||
* `vale`
|
||||
* `write-good`
|
||||
* Robot
|
||||
* `rflint`
|
||||
* RPM spec
|
||||
* `rpmlint`
|
||||
* Ruby
|
||||
* `brakeman`
|
||||
* `brakeman`!!
|
||||
* `debride`
|
||||
* `prettier`
|
||||
* `rails_best_practices`!!
|
||||
@ -544,7 +560,7 @@ Notes:
|
||||
* `tsserver`
|
||||
* `typecheck`
|
||||
* V
|
||||
* `v`
|
||||
* `v`!!
|
||||
* `vfmt`
|
||||
* VALA
|
||||
* `uncrustify`
|
||||
@ -555,7 +571,7 @@ Notes:
|
||||
* `verilator`
|
||||
* `vlog`
|
||||
* `xvlog`
|
||||
* `yosys`
|
||||
* `yosys`!!
|
||||
* VHDL
|
||||
* `ghdl`
|
||||
* `vcom`
|
||||
|
@ -23,7 +23,7 @@ g:ale_deno_lsp_project_root *g:ale_deno_lsp_project_root*
|
||||
executing the following steps in the given order:
|
||||
|
||||
1. Find an ancestor directory containing a tsconfig.json.
|
||||
2. Find an ancestory irectory containing a .git folder.
|
||||
2. Find an ancestory directory containing a .git folder.
|
||||
3. Use the directory of the current buffer (if the buffer was opened from
|
||||
a file).
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
*ale.txt* Plugin to lint and fix files asynchronously
|
||||
*ale.txt* Plugin to lint and fix files asynchronously
|
||||
*ale*
|
||||
|
||||
ALE - Asynchronous Lint Engine
|
||||
@ -2226,8 +2226,6 @@ g:ale_virtualtext_cursor *g:ale_virtualtext_cursor*
|
||||
Type: |Number|
|
||||
Default: `0`
|
||||
|
||||
This option only has any effect in NeoVim.
|
||||
|
||||
When this option is set to `1`, a message will be shown when a cursor is
|
||||
near a warning or error. ALE will attempt to find the warning or error at a
|
||||
column nearest to the cursor when the cursor is resting on a line which
|
||||
@ -2681,6 +2679,7 @@ documented in additional help files.
|
||||
uncrustify............................|ale-cpp-uncrustify|
|
||||
c#......................................|ale-cs-options|
|
||||
csc...................................|ale-cs-csc|
|
||||
dotnet-format.........................|ale-cs-dotnet-format|
|
||||
mcs...................................|ale-cs-mcs|
|
||||
mcsc..................................|ale-cs-mcsc|
|
||||
uncrustify............................|ale-cs-uncrustify|
|
||||
@ -2730,6 +2729,7 @@ documented in additional help files.
|
||||
erlfmt................................|ale-erlang-erlfmt|
|
||||
syntaxerl.............................|ale-erlang-syntaxerl|
|
||||
eruby...................................|ale-eruby-options|
|
||||
erblint...............................|ale-eruby-erblint|
|
||||
ruumba................................|ale-eruby-ruumba|
|
||||
fish....................................|ale-fish-options|
|
||||
fish_indent...........................|ale-fish-fish_indent|
|
||||
@ -2750,6 +2750,7 @@ documented in additional help files.
|
||||
gofmt.................................|ale-go-gofmt|
|
||||
golangci-lint.........................|ale-go-golangci-lint|
|
||||
golangserver..........................|ale-go-golangserver|
|
||||
golines...............................|ale-go-golines|
|
||||
golint................................|ale-go-golint|
|
||||
gometalinter..........................|ale-go-gometalinter|
|
||||
gopls.................................|ale-go-gopls|
|
||||
@ -2811,6 +2812,7 @@ documented in additional help files.
|
||||
eclipselsp............................|ale-java-eclipselsp|
|
||||
uncrustify............................|ale-java-uncrustify|
|
||||
javascript..............................|ale-javascript-options|
|
||||
deno..................................|ale-javascript-deno|
|
||||
eslint................................|ale-javascript-eslint|
|
||||
fecs..................................|ale-javascript-fecs|
|
||||
flow..................................|ale-javascript-flow|
|
||||
@ -2823,11 +2825,19 @@ documented in additional help files.
|
||||
standard..............................|ale-javascript-standard|
|
||||
xo....................................|ale-javascript-xo|
|
||||
json....................................|ale-json-options|
|
||||
eslint................................|ale-json-eslint|
|
||||
fixjson...............................|ale-json-fixjson|
|
||||
jsonlint..............................|ale-json-jsonlint|
|
||||
jq....................................|ale-json-jq|
|
||||
prettier..............................|ale-json-prettier|
|
||||
spectral..............................|ale-json-spectral|
|
||||
jsonc...................................|ale-jsonc-options|
|
||||
eslint................................|ale-jsonc-eslint|
|
||||
jsonnet.................................|ale-jsonnet-options|
|
||||
jsonnetfmt............................|ale-jsonnet-jsonnetfmt|
|
||||
jsonnet-lint..........................|ale-jsonnet-jsonnet-lint|
|
||||
json5...................................|ale-json5-options|
|
||||
eslint................................|ale-json5-eslint|
|
||||
julia...................................|ale-julia-options|
|
||||
languageserver........................|ale-julia-languageserver|
|
||||
kotlin..................................|ale-kotlin-options|
|
||||
@ -2933,6 +2943,7 @@ documented in additional help files.
|
||||
puppet-languageserver.................|ale-puppet-languageserver|
|
||||
purescript..............................|ale-purescript-options|
|
||||
purescript-language-server............|ale-purescript-language-server|
|
||||
purs-tidy.............................|ale-purescript-tidy|
|
||||
purty.................................|ale-purescript-purty|
|
||||
pyrex (cython)..........................|ale-pyrex-options|
|
||||
cython................................|ale-pyrex-cython|
|
||||
@ -2943,6 +2954,7 @@ documented in additional help files.
|
||||
bandit................................|ale-python-bandit|
|
||||
black.................................|ale-python-black|
|
||||
flake8................................|ale-python-flake8|
|
||||
flakehell.............................|ale-python-flakehell|
|
||||
isort.................................|ale-python-isort|
|
||||
mypy..................................|ale-python-mypy|
|
||||
prospector............................|ale-python-prospector|
|
||||
@ -2971,6 +2983,8 @@ documented in additional help files.
|
||||
restructuredtext........................|ale-restructuredtext-options|
|
||||
textlint..............................|ale-restructuredtext-textlint|
|
||||
write-good............................|ale-restructuredtext-write-good|
|
||||
robot...................................|ale-robot-options|
|
||||
rflint................................|ale-robot-rflint|
|
||||
ruby....................................|ale-ruby-options|
|
||||
brakeman..............................|ale-ruby-brakeman|
|
||||
debride...............................|ale-ruby-debride|
|
||||
@ -4300,6 +4314,13 @@ ALEJobStarted *ALEJobStarted-autocmd*
|
||||
|ale#engine#IsCheckingBuffer()| over |ALELintPre-autocmd|, which is actually
|
||||
triggered before any linters are executed.
|
||||
|
||||
ALELSPStarted *ALELSPStarted-autocmd*
|
||||
*ALELSPStarted*
|
||||
|
||||
This |User| autocommand is trigged immediately after an LSP connection is
|
||||
successfully initialized. This provides a way to perform any additional
|
||||
initialization work, such as setting up buffer-level mappings.
|
||||
|
||||
|
||||
ALEWantResults *ALEWantResults-autocmd*
|
||||
*ALEWantResults*
|
||||
|
@ -14,10 +14,10 @@ formatting.
|
||||
|
||||
**Legend**
|
||||
|
||||
| Key | Definition |
|
||||
| ------------- | -------------------------------- |
|
||||
| :floppy_disk: | May only run on files on disk |
|
||||
| :warning: | Disabled by default |
|
||||
| Key | Definition |
|
||||
| ------------- | ----------------------------------------------------------------- |
|
||||
| :floppy_disk: | May only run on files on disk (see: `help ale-lint-file-linters` |
|
||||
| :warning: | Disabled by default |
|
||||
|
||||
---
|
||||
|
||||
@ -26,7 +26,7 @@ formatting.
|
||||
* [gcc](https://gcc.gnu.org)
|
||||
* [gnatpp](https://docs.adacore.com/gnat_ugn-docs/html/gnat_ugn/gnat_ugn/gnat_utility_programs.html#the-gnat-pretty-printer-gnatpp) :floppy_disk:
|
||||
* Ansible
|
||||
* [ansible-lint](https://github.com/willthames/ansible-lint)
|
||||
* [ansible-lint](https://github.com/willthames/ansible-lint) :floppy_disk:
|
||||
* API Blueprint
|
||||
* [drafter](https://github.com/apiaryio/drafter)
|
||||
* APKBUILD
|
||||
@ -75,6 +75,7 @@ formatting.
|
||||
* [uncrustify](https://github.com/uncrustify/uncrustify)
|
||||
* C#
|
||||
* [csc](http://www.mono-project.com/docs/about-mono/languages/csharp/) :floppy_disk: see:`help ale-cs-csc` for details and configuration
|
||||
* [dotnet-format](https://github.com/dotnet/format)
|
||||
* [mcs](http://www.mono-project.com/docs/about-mono/languages/csharp/) see:`help ale-cs-mcs` for details
|
||||
* [mcsc](http://www.mono-project.com/docs/about-mono/languages/csharp/) :floppy_disk: see:`help ale-cs-mcsc` for details and configuration
|
||||
* [uncrustify](https://github.com/uncrustify/uncrustify)
|
||||
@ -95,7 +96,7 @@ formatting.
|
||||
* [uncrustify](https://github.com/uncrustify/uncrustify)
|
||||
* Chef
|
||||
* [cookstyle](https://docs.chef.io/cookstyle.html)
|
||||
* [foodcritic](http://www.foodcritic.io/)
|
||||
* [foodcritic](http://www.foodcritic.io/) :floppy_disk:
|
||||
* Clojure
|
||||
* [clj-kondo](https://github.com/borkdude/clj-kondo)
|
||||
* [joker](https://github.com/candid82/joker)
|
||||
@ -119,7 +120,7 @@ formatting.
|
||||
* [cucumber](https://cucumber.io/)
|
||||
* CUDA
|
||||
* [clangd](https://clang.llvm.org/extra/clangd.html)
|
||||
* [nvcc](http://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html)
|
||||
* [nvcc](http://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html) :floppy_disk:
|
||||
* Cypher
|
||||
* [cypher-lint](https://github.com/cleishm/libcypher-parser)
|
||||
* Cython (pyrex filetype)
|
||||
@ -134,9 +135,9 @@ formatting.
|
||||
* Dart
|
||||
* [analysis_server](https://github.com/dart-lang/sdk/tree/master/pkg/analysis_server)
|
||||
* [dart-analyze](https://github.com/dart-lang/sdk/tree/master/pkg/analyzer_cli) :floppy_disk:
|
||||
* [dart-format](https://github.com/dart-lang/sdk/tree/master/utils/dartfmt)
|
||||
* [dart-format](https://github.com/dart-lang/sdk/tree/master/utils/dartfmt) :floppy_disk:
|
||||
* [dartanalyzer](https://github.com/dart-lang/sdk/tree/master/pkg/analyzer_cli) :floppy_disk:
|
||||
* [dartfmt](https://github.com/dart-lang/sdk/tree/master/utils/dartfmt)
|
||||
* [dartfmt](https://github.com/dart-lang/sdk/tree/master/utils/dartfmt) :floppy_disk:
|
||||
* [language_server](https://github.com/natebosch/dart_language_server)
|
||||
* desktop
|
||||
* [desktop-file-validate](https://www.freedesktop.org/wiki/Software/desktop-file-utils/)
|
||||
@ -149,7 +150,7 @@ formatting.
|
||||
* [hadolint](https://github.com/hadolint/hadolint)
|
||||
* Elixir
|
||||
* [credo](https://github.com/rrrene/credo)
|
||||
* [dialyxir](https://github.com/jeremyjh/dialyxir) :floppy_disk:
|
||||
* [dialyxir](https://github.com/jeremyjh/dialyxir)
|
||||
* [dogma](https://github.com/lpil/dogma) :floppy_disk:
|
||||
* [elixir-ls](https://github.com/elixir-lsp/elixir-ls) :warning:
|
||||
* [mix](https://hexdocs.pm/mix/Mix.html) :warning: :floppy_disk:
|
||||
@ -159,12 +160,13 @@ formatting.
|
||||
* [elm-make](https://github.com/elm/compiler)
|
||||
* Erb
|
||||
* [erb](https://apidock.com/ruby/ERB)
|
||||
* [erblint](https://github.com/Shopify/erb-lint)
|
||||
* [erubi](https://github.com/jeremyevans/erubi)
|
||||
* [erubis](https://github.com/kwatch/erubis)
|
||||
* [ruumba](https://github.com/ericqweinstein/ruumba)
|
||||
* Erlang
|
||||
* [SyntaxErl](https://github.com/ten0s/syntaxerl)
|
||||
* [dialyzer](http://erlang.org/doc/man/dialyzer.html)
|
||||
* [dialyzer](http://erlang.org/doc/man/dialyzer.html) :floppy_disk:
|
||||
* [elvis](https://github.com/inaka/elvis) :floppy_disk:
|
||||
* [erlc](http://erlang.org/doc/man/erlc.html)
|
||||
* [erlfmt](https://github.com/WhatsApp/erlfmt)
|
||||
@ -192,6 +194,7 @@ formatting.
|
||||
* [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) :warning:
|
||||
* [golangci-lint](https://github.com/golangci/golangci-lint) :warning: :floppy_disk:
|
||||
* [golangserver](https://github.com/sourcegraph/go-langserver) :warning:
|
||||
* [golines](https://github.com/segmentio/golines)
|
||||
* [golint](https://godoc.org/github.com/golang/lint)
|
||||
* [gometalinter](https://github.com/alecthomas/gometalinter) :warning: :floppy_disk:
|
||||
* [gopls](https://github.com/golang/go/wiki/gopls)
|
||||
@ -249,13 +252,14 @@ formatting.
|
||||
* [ispc](https://ispc.github.io/) :floppy_disk:
|
||||
* Java
|
||||
* [PMD](https://pmd.github.io/)
|
||||
* [checkstyle](http://checkstyle.sourceforge.net)
|
||||
* [checkstyle](http://checkstyle.sourceforge.net) :floppy_disk:
|
||||
* [eclipselsp](https://github.com/eclipse/eclipse.jdt.ls)
|
||||
* [google-java-format](https://github.com/google/google-java-format)
|
||||
* [javac](http://www.oracle.com/technetwork/java/javase/downloads/index.html)
|
||||
* [javalsp](https://github.com/georgewfraser/vscode-javac)
|
||||
* [uncrustify](https://github.com/uncrustify/uncrustify)
|
||||
* JavaScript
|
||||
* [deno](https://deno.land/)
|
||||
* [eslint](http://eslint.org/)
|
||||
* [fecs](http://fecs.baidu.com/)
|
||||
* [flow](https://flowtype.org/)
|
||||
@ -268,16 +272,24 @@ formatting.
|
||||
* [tsserver](https://github.com/Microsoft/TypeScript/wiki/Standalone-Server-%28tsserver%29)
|
||||
* [xo](https://github.com/sindresorhus/xo)
|
||||
* JSON
|
||||
* [eslint](http://eslint.org/)
|
||||
* [fixjson](https://github.com/rhysd/fixjson)
|
||||
* [jq](https://stedolan.github.io/jq/)
|
||||
* [jsonlint](https://github.com/zaach/jsonlint)
|
||||
* [prettier](https://github.com/prettier/prettier)
|
||||
* [spectral](https://github.com/stoplightio/spectral)
|
||||
* JSON5
|
||||
* [eslint](http://eslint.org/)
|
||||
* JSONC
|
||||
* [eslint](http://eslint.org/)
|
||||
* Jsonnet
|
||||
* [jsonnet-lint](https://jsonnet.org/learning/tools.html)
|
||||
* [jsonnetfmt](https://jsonnet.org/learning/tools.html)
|
||||
* Julia
|
||||
* [languageserver](https://github.com/JuliaEditorSupport/LanguageServer.jl)
|
||||
* Kotlin
|
||||
* [kotlinc](https://kotlinlang.org) :floppy_disk:
|
||||
* [ktlint](https://ktlint.github.io) :floppy_disk:
|
||||
* [ktlint](https://ktlint.github.io)
|
||||
* [languageserver](https://github.com/fwcd/KotlinLanguageServer) see `:help ale-integration-kotlin` for configuration instructions
|
||||
* LaTeX
|
||||
* [alex](https://github.com/wooorm/alex) :floppy_disk:
|
||||
@ -393,13 +405,13 @@ formatting.
|
||||
* Pony
|
||||
* [ponyc](https://github.com/ponylang/ponyc)
|
||||
* PowerShell
|
||||
* [powershell](https://github.com/PowerShell/PowerShell) :floppy_disk:
|
||||
* [psscriptanalyzer](https://github.com/PowerShell/PSScriptAnalyzer) :floppy_disk:
|
||||
* [powershell](https://github.com/PowerShell/PowerShell)
|
||||
* [psscriptanalyzer](https://github.com/PowerShell/PSScriptAnalyzer)
|
||||
* Prolog
|
||||
* [swipl](https://github.com/SWI-Prolog/swipl-devel)
|
||||
* proto
|
||||
* [protoc-gen-lint](https://github.com/ckaznocha/protoc-gen-lint)
|
||||
* [protolint](https://github.com/yoheimuta/protolint)
|
||||
* [protoc-gen-lint](https://github.com/ckaznocha/protoc-gen-lint) :floppy_disk:
|
||||
* [protolint](https://github.com/yoheimuta/protolint) :floppy_disk:
|
||||
* Pug
|
||||
* [pug-lint](https://github.com/pugjs/pug-lint)
|
||||
* Puppet
|
||||
@ -408,17 +420,19 @@ formatting.
|
||||
* [puppet-lint](https://puppet-lint.com)
|
||||
* PureScript
|
||||
* [purescript-language-server](https://github.com/nwolverson/purescript-language-server)
|
||||
* [purs-tidy](https://github.com/natefaubion/purescript-tidy)
|
||||
* [purty](https://gitlab.com/joneshf/purty)
|
||||
* Python
|
||||
* [autoflake](https://github.com/myint/autoflake)
|
||||
* [autoflake](https://github.com/myint/autoflake) :floppy_disk:
|
||||
* [autoimport](https://lyz-code.github.io/autoimport/)
|
||||
* [autopep8](https://github.com/hhatto/autopep8)
|
||||
* [bandit](https://github.com/PyCQA/bandit) :warning:
|
||||
* [black](https://github.com/ambv/black)
|
||||
* [flake8](http://flake8.pycqa.org/en/latest/)
|
||||
* [flakehell](https://github.com/flakehell/flakehell)
|
||||
* [isort](https://github.com/timothycrosley/isort)
|
||||
* [mypy](http://mypy-lang.org/)
|
||||
* [prospector](https://github.com/PyCQA/prospector) :warning:
|
||||
* [prospector](https://github.com/PyCQA/prospector) :warning: :floppy_disk:
|
||||
* [pycodestyle](https://github.com/PyCQA/pycodestyle) :warning:
|
||||
* [pydocstyle](https://www.pydocstyle.org/) :warning:
|
||||
* [pyflakes](https://github.com/PyCQA/pyflakes)
|
||||
@ -455,11 +469,13 @@ formatting.
|
||||
* [textlint](https://textlint.github.io/)
|
||||
* [vale](https://github.com/ValeLint/vale)
|
||||
* [write-good](https://github.com/btford/write-good)
|
||||
* Robot
|
||||
* [rflint](https://github.com/boakley/robotframework-lint)
|
||||
* RPM spec
|
||||
* [rpmlint](https://github.com/rpm-software-management/rpmlint) :warning: (see `:help ale-integration-spec`)
|
||||
* Ruby
|
||||
* [brakeman](http://brakemanscanner.org/) :floppy_disk:
|
||||
* [debride](https://github.com/seattlerb/debride) :floppy_disk:
|
||||
* [debride](https://github.com/seattlerb/debride)
|
||||
* [prettier](https://github.com/prettier/plugin-ruby)
|
||||
* [rails_best_practices](https://github.com/flyerhzm/rails_best_practices) :floppy_disk:
|
||||
* [reek](https://github.com/troessner/reek)
|
||||
@ -553,7 +569,7 @@ formatting.
|
||||
* [tsserver](https://github.com/Microsoft/TypeScript/wiki/Standalone-Server-%28tsserver%29)
|
||||
* typecheck
|
||||
* V
|
||||
* [v](https://github.com/vlang/v/)
|
||||
* [v](https://github.com/vlang/v/) :floppy_disk:
|
||||
* [vfmt](https://github.com/vlang/v/)
|
||||
* VALA
|
||||
* [uncrustify](https://github.com/uncrustify/uncrustify)
|
||||
@ -564,7 +580,7 @@ formatting.
|
||||
* [verilator](http://www.veripool.org/projects/verilator/wiki/Intro)
|
||||
* [vlog](https://www.mentor.com/products/fv/questa/)
|
||||
* [xvlog](https://www.xilinx.com/products/design-tools/vivado.html)
|
||||
* [yosys](http://www.clifford.at/yosys/)
|
||||
* [yosys](http://www.clifford.at/yosys/) :floppy_disk:
|
||||
* VHDL
|
||||
* [ghdl](https://github.com/ghdl/ghdl)
|
||||
* [vcom](https://www.mentor.com/products/fv/questa/)
|
||||
|
Reference in New Issue
Block a user