Neomake colgando cuando se usa eslint

11

He estado siguiendo los siguientes dos tutoriales para probar y configurar eslinty Neomake:

Entonces tengo el siguiente 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

El problema es cuando guardo Neomakecuelga con el siguiente mensaje:

Neomake: Starting: eslint -f compact /home/otis/Developer/test/index.js

Si ejecuto ese comando manualmente fuera de este nvimmodo:

eslint -f compact /home/otis/Developer/test/index.js

Recibo el siguiente resultado:

/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

Lo cual es bueno, significa que eslintestá funcionando, pero no recibo nada Neomake.

Si ejecuto, :lopenla ventana emerge y luego se cierra instantáneamente como a continuación:

Ventana abierta y luego cerrada

Mi vim/ nvimconocimiento es algo básico, así que sea explícito en las respuestas

Otis Wright
fuente
intenta cambiar tu autocmd! BufWritePost,BufEnter * Neomakea augroup neomake/ au!/ autocmd BufWritePost * Neomake/ augroup END BufEnter no tiene mucho sentido
Yonsy Solis
En realidad, esta podría ser la razón de la ventana vacía de Solución rápida. En su pantalla emitida cuando ejecuta :lopenNeomake se ejecuta para ese búfer debido a autocmd para BufEnter. El fragmento @Yonsy es bueno, pero debe limitarse adicionalmente solo a archivos JavaScript:augroup neomake/ au!/ autocmd BufWritePost *.js Neomake/ augroup END
grodzik

Respuestas:

1

Alguna información [ligeramente editada] de los comentarios:

En realidad, esta podría ser la razón de la ventana vacía de Quickfix. En su pantalla emitida cuando ejecuta :lopen, Neomake corre para ese búfer debido al autocmd para BufEnter. Además, debe limitarse solo a los archivos JavaScript:

augroup neomake
  au!
  autocmd BufWritePost *.js Neomake
augroup END
D. Ben Knoble
fuente
0

Esto no responde exactamente a su pregunta, pero descubrí que neomake funciona mejor con eslint_d . Tiene el agradable efecto secundario de que también debe hacer el revestimiento más rápido.

Primero tiene que instalar eslint_d a nivel mundial (pero todavía parece recoger cualquier .eslintrcarchivo local ):

npm install -g eslint_d

Luego agregue la siguiente configuración para neomake a su init.vim/ .vimrc:

let g:neomake_javascript_enabled_makers = ['eslint_d']

Para mí eso fue todo lo que necesitaba, después de reiniciar neovim y abrir un archivo javascript en ejecución, :Neomakeme dieron advertencias.

icc97
fuente