web-dev-qa-db-fra.com

Comment configurer Syntastic avec JSHint?

Comment utiliser le plugin Syntastic Vim avec JSHint pour valider le code JavaScript?

Environnement:

  • Ubuntu 11.04
  • VIM - Vi IMproved 7.3

Ce que j'ai installé, en suivant la solution sur VIM + JSLint? :

  • Vundle
  • node.js
  • Gestionnaire de packages de nœuds
  • jshint, globalement
  • Syntastic installé via Vundle (utilisé la commande: BundleInstall dans Vim pour vous assurer que Syntastic a été installé.)

.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?

44
Fernando Correia

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
67
alfonsodev

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.

La source:
https://github.com/scrooloose/syntastic/pull/47

6
Ricky Mondello

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...

  1. suivez le tutoriel lié ci-dessus
  2. ajouter ~/.nvm/<version_number>/bin vers le chemin dans .bashrc
  3. retirer filetype plugin indent on de .vimrc
  4. ajouter let g:syntastic_javascript_checkers['jshint'] à .vimrc
  5. :so % à l'intérieur de vim
  6. ouvrir un .js fichier
  7. ajouter filetype plugin indent on retour à votre .vimrc
  8. tout fonctionne comme par magie maintenant
0
Jordan Camp