Tenho acompanhado os dois tutoriais a seguir para tentar configurar eslint
e Neomake
:
Então, eu tenho o seguinte mínimo init.vim
call plug#begin('~/.vim/plugged')
Plug 'neomake/neomake'
call plug#end()
autocmd! BufWritePost,BufEnter * Neomake
let g:neomake_verbose=3
let g:neomake_open_list = 2
let g:neomake_javascript_enabled_makers = ['eslint']
" neomake
nmap <Leader><Space>o :lopen<CR> " open location window
nmap <Leader><Space>c :lclose<CR> " close location window
nmap <Leader><Space>, :ll<CR> " go to current error/warning
nmap <Leader><Space>n :lnext<CR> " next error/warning
nmap <Leader><Space>p :lprev<CR> " previous error/warning
O problema é quando eu salvo Neomake
trava com a seguinte mensagem:
Neomake: Starting: eslint -f compact /home/otis/Developer/test/index.js
Se eu executar esse comando manualmente fora do seguinte nvim
modo:
eslint -f compact /home/otis/Developer/test/index.js
Eu recebo a seguinte saída:
/home/otis/Developer/test/index.js: line 1, col 1, Error - Unexpected var, use let or const instead. (no-var)
/home/otis/Developer/test/index.js: line 1, col 5, Error - 'a' is defined but never used. (no-unused-vars)
/home/otis/Developer/test/index.js: line 1, col 9, Error - Strings must use singlequote. (quotes)
3 problems
O que é bom, significa que eslint
está funcionando, mas não estou conseguindo nada de volta Neomake
.
Se eu correr, :lopen
a janela aparece e fecha instantaneamente, como abaixo:
Meu vim
/ nvim
conhecimento é um pouco básico, portanto, seja explícito nas respostas.
neovim
quickfix
plugin-neomake
Otis Wright
fonte
fonte
autocmd! BufWritePost,BufEnter * Neomake
paraaugroup neomake/ au!/ autocmd BufWritePost * Neomake/ augroup END
BufEnter não tem muitos sentido:lopen
Neomake executa esse buffer devido ao autocmd for BufEnter. O snippet @Yonsy é bom, mas deve se limitar adicionalmente apenas aos arquivos JavaScript:augroup neomake/ au!/ autocmd BufWritePost *.js Neomake/ augroup END
Respostas:
Algumas informações [levemente editadas] dos comentários:
fonte
Isso não responde exatamente à sua pergunta, mas eu achei que o neomake funciona melhor com eslint_d . Ele tem o bom efeito colateral de que deve fazer a limpeza mais rapidamente também.
Você primeiro precisa instalar o eslint_d globalmente (mas ainda parece pegar qualquer
.eslintrc
arquivo local ):Em seguida, adicione a seguinte configuração do neomake ao seu
init.vim
/.vimrc
:Para mim, era tudo o que eu precisava, depois de reiniciar o neovim e abrir um arquivo javascript em execução,
:Neomake
me deram avisos eslint.fonte