[英]Update buffer from file after Neomake runs
我有一些Neomake定義對我來說很有效,但是我不能完全理解的一件事是使用standard --fix
自動棉絨修復。 這是我所擁有的:
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
無法自動處理的那些問題,例如未使用的變量。
我將使用我的解決方法(使用ALE)發布答案,以防它對其他人有幫助,但會接受任何其他更直接解決該問題的答案。
我的主要問題是,我不僅僅將Neomake用作棉絨:以JavaScript為例,它被用作保存時的測試運行器,我也可以看到從中啟動暫存構建任務(例如,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的警告/錯誤跡象似乎排在第一位。 只有在我通過測試后,棉絨的跡象才會出現。 工作得很好,保存時已修復錯誤,並指出了無法修復的錯誤,並與測試失敗標志很好地共存。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.