Vim 错误格式和光谱 lint
Vim errorformat and spectral lint
我正在尝试为 Spectral OpenAPI linter (https://github.com/stoplightio/spectral) 定义错误格式。我的代码在下面,但我看到的是在我 运行 :make
quickfix window 填充了来自 Spectral 的行之后,但我无法导航到错误点使用它。 Vim 中没有错误,快速修复 window 只是没什么作用。
来自 Spectral 的消息如下所示:
/path/to/sample.yaml:25:9 error oas3-schema "Property `think` is not expected to be here."
我当前的 Vim 脚本如下所示:
function! OpenAPIDetect()
if getline(1) =~ 'openapi:'
let &l:makeprg='spectral lint "' . expand('%') . '" -f text'
setlocal errorformat=%f:%l:%c\ (information\|warning\|error)\ (\w\|-)\+\ %m
setlocal errorformat+=%-GOpenAPI\ 3.x\ detected
endif
endfunction
augroup filetypedetect
au BufRead,BufNewFile *.{yml,yaml} call OpenAPIDetect()
augroup END
以下应该足够了:
setlocal errorformat=%f:%l:%c\ %t%.%\{-}\ %m
%f:%l:%c
匹配以冒号分隔的文件名、行和列,
%t
匹配单个字符,用于推断错误类型(error
if e
, warning
if w
, info
如果 i
, hint
不支持),
%.%\{-}
跳过 "type" 单词的其余部分,
%m
匹配消息的其余部分。
此外,:help 'errorformat'
和 :help 'makeprg'
的正确位置是 :help :compiler
文件:
" in a minimal compiler/spectral.vim
if exists("current_compiler")
finish
endif
let current_compiler = "spectral"
CompilerSet makeprg=spectral\ lint\ %\ -f\ text
CompilerSet errorformat=%f:%l:%c\ %t%.%\{-}\ %m
OpenAPI 检测逻辑的正确位置是 :help ftplugin
:
" in a minimal after/ftplugin/yaml.vim
if getline(1) =~ 'openapi:'
compiler spectral
endif
我正在尝试为 Spectral OpenAPI linter (https://github.com/stoplightio/spectral) 定义错误格式。我的代码在下面,但我看到的是在我 运行 :make
quickfix window 填充了来自 Spectral 的行之后,但我无法导航到错误点使用它。 Vim 中没有错误,快速修复 window 只是没什么作用。
来自 Spectral 的消息如下所示:
/path/to/sample.yaml:25:9 error oas3-schema "Property `think` is not expected to be here."
我当前的 Vim 脚本如下所示:
function! OpenAPIDetect()
if getline(1) =~ 'openapi:'
let &l:makeprg='spectral lint "' . expand('%') . '" -f text'
setlocal errorformat=%f:%l:%c\ (information\|warning\|error)\ (\w\|-)\+\ %m
setlocal errorformat+=%-GOpenAPI\ 3.x\ detected
endif
endfunction
augroup filetypedetect
au BufRead,BufNewFile *.{yml,yaml} call OpenAPIDetect()
augroup END
以下应该足够了:
setlocal errorformat=%f:%l:%c\ %t%.%\{-}\ %m
%f:%l:%c
匹配以冒号分隔的文件名、行和列,%t
匹配单个字符,用于推断错误类型(error
ife
,warning
ifw
,info
如果i
,hint
不支持),%.%\{-}
跳过 "type" 单词的其余部分,%m
匹配消息的其余部分。
此外,:help 'errorformat'
和 :help 'makeprg'
的正确位置是 :help :compiler
文件:
" in a minimal compiler/spectral.vim
if exists("current_compiler")
finish
endif
let current_compiler = "spectral"
CompilerSet makeprg=spectral\ lint\ %\ -f\ text
CompilerSet errorformat=%f:%l:%c\ %t%.%\{-}\ %m
OpenAPI 检测逻辑的正确位置是 :help ftplugin
:
" in a minimal after/ftplugin/yaml.vim
if getline(1) =~ 'openapi:'
compiler spectral
endif