簡體   English   中英

Neomake運行后從文件更新緩沖區

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM