我有一些Neomake定义对我来说很有效,但有一件事我可以很清楚地了解standard --fix
的自动lint修复。这就是我所拥有的:
let g:neomake_javascript_standardfix_maker = {
\ 'exe': 'standard',
\ 'args': '--fix',
\ 'errorformat': '%-G%.%#'
\ }
let g:neomake_javascript_enabled_makers = ['standardfix', 'jest', 'standard']
call neomake#configure#automake('w')
set autoread
au FocusGained *.js :checktime
不幸的是,standard --fix
运行后缓冲区没有更新(尽管我已经确认它确实用固定语法编写了正确的文件)。
我认为我的理想行为是:linter修复它可以修复的内容,并且位置列表会像现在一样弹出,但只有--fix
不会自动处理的问题,例如未使用的变量
答案 0 :(得分:0)
我将使用我的解决方案解决方案(使用ALE)发布答案,以防其他人帮助,但会接受更直接解决问题的任何其他答案。
我的主要问题是我不单独使用Neomake进行linting:以JavaScript为例,它在保存时被用作测试运行器,我也可以看到从它启动staging构建任务(React Native测试版本) , 例如)。我想我有ALE和Neomake合作,至少要继续:
" Suppress ALE warning about conflicts with Neomake
let g:ale_emit_conflict_warnings = 0
" JavaScript make/test
highlight NeomakeErrorMsg ctermfg=1 ctermbg=18
highlight NeomakeWarningMsg ctermfg=16 ctermbg=18
let g:neomake_error_sign = {
\ 'text': '●',
\ 'texthl': 'NeomakeErrorMsg'
\ }
let g:neomake_warning_sign = {
\ 'text': '●',
\ 'texthl': 'NeomakeWarningMsg'
\ }
let g:neomake_open_list = 2
" This reads config from a file specifying a custom Jest
" reporter (see below) making it easier to parse output with
" a Vim errorformat
let g:neomake_javascript_jest_maker = {
\ 'exe': './node_modules/jest-cli/bin/jest.js',
\ 'args': [ '-c=./vim-jest.json', '--no-watchman' ],
\ 'errorformat':
\ '%f:%l:%c:%t:%m,' .
\ '%-G%.%#'
\ }
" By setting this explicitly, we overwrite the default
" (so Neomake shouldn't attempt to launch standard/eslint)
let g:neomake_javascript_enabled_makers = ['jest']
call neomake#configure#automake('w')
" linting
let g:ale_sign_error = '▶▶'
let g:ale_sign_warning = '▶▶'
highlight ALEErrorSign ctermfg=1 ctermbg=18
highlight ALEWarningSign ctermfg=16 ctermbg=18
let g:ale_linters = {
\ 'javascript': ['standard']
\ }
let g:ale_fixers = {
\ 'javascript': ['standard']
\ }
let g:ale_fix_on_save = 1
我的vim-jest.json
包含每个项目我需要的任何Jest配置,至少包含:
{
"reporters": [ "jest-simple-reporter" ]
}
jest-simple-reporter是一位非常粗略的记者,我将Jest的相当笨拙的输出提炼到每个灯具一行。它确实需要安装在当前项目的devDependencies
中,因为Vim的单独配置,它不需要在test
脚本或项目Jest配置中使用。
有趣的是,当我关闭ale_fix_on_save
时,Neomake的警告/错误迹象似乎优先于排水沟。只有在我通过测试后才会出现linter的标志。工作得非常好,保存时修复错误,指示无法修复错误,与测试失败标志共存。