Comment utiliser le plugin Syntastic Vim avec JSHint pour valider le code JavaScript?
Environnement:
Ce que j'ai installé, en suivant la solution sur VIM + JSLint? :
.vimrc:
set nocompatible " be iMproved
filetype off " required!
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
" let Vundle manage Vundle
" required!
Bundle 'gmarik/vundle'
" My Bundles here:
Bundle 'scrooloose/syntastic'
filetype plugin indent on " required!
let g:syntastic_enable_signs=1
let g:syntastic_auto_jump=1
let g:syntastic_stl_format = '[%E{Err: %fe #%e}%B{, }%W{Warn: %fw #%w}]'
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
recherche d'exécutables installés:
$ which gjslint
$ which jslint
$ which jsl
$ which jshint
/home/fernando/local/node/bin/jshint
$
$ echo $PATH
>/home/fernando/local/bin:/home/fernando/local/node/bin:/home/fernando/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
$ jshint test.js
test.js: ligne 3, col 1, 'blbla' n'est pas défini.
test.js: ligne 4, col 1, 'x' n'est pas défini.
test.js: ligne 4, col 5, 'nonono' n'est pas défini.
test.js: ligne 6, col 1, 'a' n'est pas défini.
test.js: ligne 7, col 1, 'b' n'est pas défini.
test.js: ligne 8, col 5, 'a' n'est pas défini.
test.js: ligne 8, col 10, 'b' n'est pas défini.
test.js: ligne 8, col 7, attendu '===' et vu à la place '=='.8 erreurs
$ vi test.js -- no error message shown
:SyntasticEnable -- Vim exits and restarts, opening the same file, but still no message
:w -- still no error message
:Errors -- the location list opens but it is empty
Jshint et Syntastic semblent être installés, mais quelque chose manque probablement. Qu'est ce que ça serait?
Voici une information plus mise à jour, il y a une configuration pour associer une extension de fichier à un vérificateur,
dans ton .vimrc
let g:syntastic_javascript_checkers = ['jshint']
Aussi pour obtenir des informations sur ce qui se passe, exécutez cette commande dans vim
:SyntasticInfo
Et vous obtiendrez une sortie similaire à ceci:
Syntastic info for filetype: javascript
Available checkers: gjslint jshint
Currently active checker(s): gjslint
Press ENTER or type command to continue
Je viens d'avoir ce même problème. Il s'avère que Syntastic recherche jsl
(JSLint) avant de rechercher jshint. Si vous avez tous les deux installé, vous serez probablement trompé. J'ai déplacé jsl
quelque part pas dans mon CHEMIN, et jshint a été détecté très bien.
J'ai eu des problèmes avec ce problème pendant des jours et SyntasticInfo
ne reconnaîtrait pas jshint
comme vérificateur disponible même après avoir ajouté let g:syntastic_javascript_checkers['jshint']
à mon .vimrc
. J'utilise Ubuntu 15.04 et j'ai suivi this tutoriel pour installer nvm, nodejs et jshint sur Ubuntu. Après cela, j'ai découvert que si je supprimais la ligne filetype plugin indent on
de mon .vimrc
puis a ouvert un .js
fichier tout a parfaitement fonctionné! Résumer...
~/.nvm/<version_number>/bin
vers le chemin dans .bashrc
filetype plugin indent on
de .vimrc
let g:syntastic_javascript_checkers['jshint']
à .vimrc
:so %
à l'intérieur de vim.js
fichierfiletype plugin indent on
retour à votre .vimrc