2017-12-11 8 views
0

Neomake 정의가 잘 작동하지만, 머리가 잘 잡히지 않는 한 가지는 standard --fix 인 자동 lint 픽스입니다. 여기에 내가 가진 무엇 : Neomake가 실행 된 후 파일에서 버퍼를 업데이트하십시오.

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

ALE가 아마도 합리적인 해결책이라고 생각하지만, 대부분의 경우 neomake를 계속 사용하기를 바랬습니다. –

답변

0

누군가에게 도움이 될 수 있도록 조치 해결책 (ALE 사용)을 사용하여 답변을 게시 하겠지만 질문에보다 직접적으로 답변하는 다른 답변은 수락합니다.

내 주된 문제점은 linting을 위해 Neomake를 단독으로 사용하지 않는다는 것입니다. 자바 스크립트의 예제를 사용하면 저장시 테스트 러너로 사용되고 있으며 스테이지 작성 태스크도 시작할 수 있습니다 (React Native 테스트 예를 들어, 빌드).

{ 
    "reporters": [ "jest-simple-reporter" ] 
} 

jest-simple-reporter는 매우이다 : 최소 이것,

" 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 내가 프로젝트 당 필요한 모든 농담 설정이 포함되어 나는 ALE 및 Neomake 적어도으로 진행되는, 협력 생각 거친 기자 Jest의 다소 난잡한 결과물을 조명기 당 한 줄씩 내어서 요리했습니다. 현재 프로젝트의 devDependencies에 설치해야하지만 Vim의 별도 설정 때문에 test 스크립트 나 프로젝트 Jest config에 사용할 필요가 없습니다.

흥미롭게도 ale_fix_on_save을 끄면 Neomake의 경고/오류 징후가 거터에서 우선하는 것처럼 보입니다. 검사를 통과 한 후에야 링터의 표시가 나타납니다. 꽤 잘 작동하고 오류는 저장시 고정되며 고정 될 수없는 오류는 테스트 실패 신호와 함께 나타납니다.