Neomake висить під час використання eslint


11

Я слідував за наступні дві навчальні програми, щоб спробувати встановити eslintі Neomake:

Тож у мене такий мінімум 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

Проблема полягає в тому, коли я зберігаю Neomakeвисить із таким повідомленням:

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

Якщо я запускаю цю команду вручну поза nvimтаким чином:

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

Я отримую такий вихід:

/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

Що добре, це означає, що eslintце працює, але я нічого не отримую Neomake.

Якщо я запускаю :lopenвікно спливає, а потім миттєво закривається, як нижче:

Вікно відкрити, то закрити

Моє vim/ nvimзнання є дещо основним, тому будь ласка, будьте чіткими у відповідях.


спробувати змінити ваш autocmd! BufWritePost,BufEnter * Neomakeдо augroup neomake/ au!/ autocmd BufWritePost * Neomake/ augroup END BufEnter не має багато сенсу
Yonsy Соліс

Насправді це може бути причиною порожнього вікна швидкого виправлення. На екрані екрану під час запуску запуску :lopenNeomake для цього буфера завдяки autocmd для BufEnter. Фрагмент @Yonsy хороший, але його слід додатково обмежити лише файлами JavaScript:augroup neomake/ au!/ autocmd BufWritePost *.js Neomake/ augroup END
grodzik

Відповіді:


1

Деякі [злегка відредаговані] дані з коментарів:

Насправді це може бути причиною порожнього вікна Quickfix. На екрані екрану під час запуску :lopenNeomake працює для цього буфера завдяки autocmd для BufEnter. Він повинен бути обмежений лише файлами JavaScript:

augroup neomake
  au!
  autocmd BufWritePost *.js Neomake
augroup END

0

Це не відповідає точно на ваше запитання, але я виявив, що neomake краще працює з eslint_d . Він має хороший побічний ефект, що він повинен робити обшивку швидше.

Спочатку потрібно встановити eslint_d у всьому світі (але все ще здається, що він підбирає будь-який локальний .eslintrcфайл):

npm install -g eslint_d

Потім додайте таку конфігурацію для neomake до свого init.vim/ .vimrc:

let g:neomake_javascript_enabled_makers = ['eslint_d']

Для мене це було все, що мені потрібно, після перезапуску neovim та відкриття файлу javascript, який :Neomakeдав мені попередження.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.