mirror of
https://github.com/amix/vimrc
synced 2025-07-09 10:45:00 +08:00
gitignore sources_non_forked_cache
This commit is contained in:
5
sources_non_forked/ale/ale_linters/lua/cspell.vim
Normal file
5
sources_non_forked/ale/ale_linters/lua/cspell.vim
Normal file
@ -0,0 +1,5 @@
|
||||
scriptencoding utf-8
|
||||
" Author: David Houston <houstdav000>
|
||||
" Description: cspell support for Lua files.
|
||||
|
||||
call ale#handlers#cspell#DefineLinter('lua')
|
31
sources_non_forked/ale/ale_linters/lua/luac.vim
Normal file
31
sources_non_forked/ale/ale_linters/lua/luac.vim
Normal file
@ -0,0 +1,31 @@
|
||||
" Author: Jon Xie https://github.com/xiejiangzhi
|
||||
" Description: luac linter for lua files
|
||||
|
||||
call ale#Set('lua_luac_executable', 'luac')
|
||||
|
||||
function! ale_linters#lua#luac#Handle(buffer, lines) abort
|
||||
" Matches patterns line the following:
|
||||
"
|
||||
" luac: stdin:5: '=' expected near ')'
|
||||
" luac: stdin:8: ')' expected (to close '(' at line 6) near '123'
|
||||
let l:pattern = '\v^.*:(\d+): (.+)$'
|
||||
let l:output = []
|
||||
|
||||
for l:match in ale#util#GetMatches(a:lines, l:pattern)
|
||||
call add(l:output, {
|
||||
\ 'lnum': l:match[1] + 0,
|
||||
\ 'type': 'E',
|
||||
\ 'text': l:match[2],
|
||||
\})
|
||||
endfor
|
||||
|
||||
return l:output
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('lua', {
|
||||
\ 'name': 'luac',
|
||||
\ 'executable': {b -> ale#Var(b, 'lua_luac_executable')},
|
||||
\ 'command': '%e -p -',
|
||||
\ 'output_stream': 'stderr',
|
||||
\ 'callback': 'ale_linters#lua#luac#Handle',
|
||||
\})
|
44
sources_non_forked/ale/ale_linters/lua/luacheck.vim
Normal file
44
sources_non_forked/ale/ale_linters/lua/luacheck.vim
Normal file
@ -0,0 +1,44 @@
|
||||
" Author: Sol Bekic https://github.com/s-ol
|
||||
" Description: luacheck linter for lua files
|
||||
|
||||
call ale#Set('lua_luacheck_executable', 'luacheck')
|
||||
call ale#Set('lua_luacheck_options', '')
|
||||
|
||||
function! ale_linters#lua#luacheck#GetCommand(buffer) abort
|
||||
return '%e' . ale#Pad(ale#Var(a:buffer, 'lua_luacheck_options'))
|
||||
\ . ' --formatter plain --codes --filename %s -'
|
||||
endfunction
|
||||
|
||||
function! ale_linters#lua#luacheck#Handle(buffer, lines) abort
|
||||
" Matches patterns line the following:
|
||||
"
|
||||
" artal.lua:159:17: (W111) shadowing definition of loop variable 'i' on line 106
|
||||
" artal.lua:182:7: (W213) unused loop variable 'i'
|
||||
let l:pattern = '^.*:\(\d\+\):\(\d\+\): (\([WE]\)\(\d\+\)) \(.\+\)$'
|
||||
let l:output = []
|
||||
|
||||
for l:match in ale#util#GetMatches(a:lines, l:pattern)
|
||||
if !ale#Var(a:buffer, 'warn_about_trailing_whitespace')
|
||||
\ && l:match[3] is# 'W'
|
||||
\ && index(range(611, 614), str2nr(l:match[4])) >= 0
|
||||
continue
|
||||
endif
|
||||
|
||||
call add(l:output, {
|
||||
\ 'lnum': l:match[1] + 0,
|
||||
\ 'col': l:match[2] + 0,
|
||||
\ 'type': l:match[3],
|
||||
\ 'code': l:match[3] . l:match[4],
|
||||
\ 'text': l:match[5],
|
||||
\})
|
||||
endfor
|
||||
|
||||
return l:output
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('lua', {
|
||||
\ 'name': 'luacheck',
|
||||
\ 'executable': {b -> ale#Var(b, 'lua_luacheck_executable')},
|
||||
\ 'command': function('ale_linters#lua#luacheck#GetCommand'),
|
||||
\ 'callback': 'ale_linters#lua#luacheck#Handle',
|
||||
\})
|
46
sources_non_forked/ale/ale_linters/lua/selene.vim
Normal file
46
sources_non_forked/ale/ale_linters/lua/selene.vim
Normal file
@ -0,0 +1,46 @@
|
||||
call ale#Set('lua_selene_executable', 'selene')
|
||||
call ale#Set('lua_selene_options', '')
|
||||
|
||||
function! ale_linters#lua#selene#GetCommand(buffer) abort
|
||||
return '%e' . ale#Pad(ale#Var(a:buffer, 'lua_selene_options'))
|
||||
\ . ' --display-style=json -'
|
||||
endfunction
|
||||
|
||||
function! ale_linters#lua#selene#Handle(buffer, lines) abort
|
||||
let l:output = []
|
||||
|
||||
for l:line in a:lines
|
||||
" as of version 0.17.0, selene has no way to suppress summary
|
||||
" information when outputting json, so stop processing when we hit it
|
||||
" (PR for this here: https://github.com/Kampfkarren/selene/pull/356)
|
||||
if l:line is# 'Results:'
|
||||
break
|
||||
endif
|
||||
|
||||
let l:json = json_decode(l:line)
|
||||
let l:lint = {
|
||||
\ 'lnum': l:json.primary_label.span.start_line + 1,
|
||||
\ 'end_lnum': l:json.primary_label.span.end_line + 1,
|
||||
\ 'col': l:json.primary_label.span.start_column + 1,
|
||||
\ 'end_col': l:json.primary_label.span.end_column,
|
||||
\ 'text': l:json.message,
|
||||
\ 'code': l:json.code,
|
||||
\ 'type': l:json.severity is# 'Warning' ? 'W' : 'E',
|
||||
\}
|
||||
|
||||
if has_key(l:json, 'notes') && len(l:json.notes) > 0
|
||||
let l:lint.detail = l:lint.text . "\n\n" . join(l:json.notes, "\n")
|
||||
endif
|
||||
|
||||
call add(l:output, l:lint)
|
||||
endfor
|
||||
|
||||
return l:output
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('lua', {
|
||||
\ 'name': 'selene',
|
||||
\ 'executable': {b -> ale#Var(b, 'lua_selene_executable')},
|
||||
\ 'command': function('ale_linters#lua#selene#GetCommand'),
|
||||
\ 'callback': 'ale_linters#lua#selene#Handle',
|
||||
\})
|
Reference in New Issue
Block a user