VIM + JSLint?


Respuestas:


34

Puede seguir las instrucciones del servicio web JSLint + integración VIM o hacer lo que yo hice:

Descargue http://jslint.webvm.net/mylintrun.js y http://www.jslint.com/fulljslint.js y colóquelos en un directorio de su elección.

Luego agregue la siguiente línea al comienzo de mylintrun.js:

var filename= arguments[0];

y cambie la última línea de código en mylintrun.js ("print (...)") a:

 print ( filename + ":" + (obj["line"] + 1) + ":" + (obj["character"] + 1) + ":" + obj["reason"] );

Esto hace que en mylintrun.js se genere una lista de errores que se puede usar con la ventana de corrección rápida de VIM (: copen).

Ahora configure lo siguiente en VIM:

set makeprg=cat\ %\ \\\|\ /my/path/to/js\ /my/path/to/mylintrun.js\ %
set errorformat=%f:%l:%c:%m

donde tienes que cambiar / my / path / to / js por la ruta de SpiderMonkey y /my/path/to/mylintrun.js por la ruta donde colocas los archivos JS.

Ahora, puede usar : make en VIM y usar la ventana de corrección rápida (: he quickfix-window) para saltar de un error a otro.


¿Por qué captura el búfer y lo pasa como argumento a mylintrun?
jamessan

@jamessan: el script mylintrun.js lee el archivo de stdin. Así que para eso está el gato. Para la salida de error, mylintrun.js también necesita el nombre del archivo, por lo que se proporciona como argumento. Puede modificar el script para abrir el archivo para leerlo en lugar de leerlo desde stdin (haciendo que el gato sea innecesario). Pero no quería molestarme con esto ... y creo que hay un problema al leer archivos si tiene un motor JavaScript compilado sin FileObject
f3lix

cuál es 'el camino a SpiderMonkey' en su máquina - Tengo algunos en el mío
Dr. Frankenstein

No puedo acceder a mylintrun.js, ¿hay una ubicación alternativa? parece estar muerto
bluekeys

1
Los enlaces a mylintrun.js y fulljslint.js están rotos, lo que hace que esta respuesta sea menos útil porque depende en gran medida de ellos. ¿Puedes actualizar con URL que funcionen? De lo contrario, tendré que eliminar esta respuesta, que es un fastidio porque se ve bastante bien y ha ayudado a mucha gente. Gracias.
Kev

187

La forma de mejores prácticas en la OMI es:

  1. Instale el complemento Syntastic Vim : el mejor verificador de sintaxis para muchos idiomas, además de que se integra con la ventana de lista de ubicaciones de Vim (== corrección rápida ).
  2. Elija una de las dos opciones siguientes:

JSLint

  1. Instalar jsl(JSLint ejecutable) utilizar más el gestor favorito de paquete (de Ubuntu apt-get, Mac hogarbrew , etc.).

Jshint.com impulsado por la comunidad (mejor que JSLint)

  1. Instale node.js usando su administrador de paquetes favorito.
  2. Instale el Administrador de paquetes de nodo : 'curl https://npmjs.org/install.sh | sh ' EDITAR: npm ES PARTE DE node.js AHORA
  3. Instale jshint globalmente: 'npm install jshint -g'
  4. Ponga su archivo de configuración jshint en su directorio $ HOME : '~ / .jshintrc'
  5. Sobrescriba el archivo de Syntasticsyntax_checkers/javascript.vim con éste - EDITAR: YA NO ES NECESARIO CON LA VERSIÓN SINTÁSTICA MÁS NUEVA.

¡Disfrutar! :)


1
Estoy intentando esto ahora mismo. Intenté clonar Syntastic y usar el comando "rake install" y luego reemplazó el archivo javascrip.vim con el suyo. Todavía no puedo entender cómo usarlo: SyntasticEnable no hace nada por lo que puedo ver. Aunque seguiré intentándolo ..
Claes Mogren

2
Ok, noté que Syntastic requiere ballon_eval, que no es compatible con MacVim. Lástima ..
Claes Mogren

1
Intenté agregarlo, espero que (o una versión más bonita) se elimine github.com/scrooloose/syntastic/pull/47
Claes Mogren

9
Pasé mucho tiempo tratando de averiguar por qué no parecía estar sucediendo nada ... si extrajo el .jshintrc de Ory, tenga en cuenta que hay una coma al final de "google" en el objeto "predef" que hace que jshint no se cargue y Syntastic fallar silenciosamente.
ThePants

1
jsl para Windows: javascriptlint.com/download.htm también, tenga cuidado con el archivo jsl.vim para este problema: vim.1045645.n5.nabble.com/…
Andrew


6

He sido muy feliz usando node-lint

sudo npm -g install jslint

Entonces golpea esto en algún lugar de tu .vim

set makeprg=jslint\ %
set errorformat=%-P%f,
        \%E%>\ #%n\ %m,%Z%.%#Line\ %l\\,\ Pos\ %c,
        \%-G%f\ is\ OK.,%-Q

Ahora :makeejecutará jslint. Los errores aparecen en la ventana de corrección rápida.


3

Aquí están las instrucciones de Mac OS actualizadas para noviembre de 2012. Se supone que tiene Homebrew instalado para obtener Node.js, y que ya ha instalado Syntastic para Vim (yo uso https://github.com/carlhuda/janus que proporciona esto automáticamente):

$ brew install node.js
$ npm install -g jshint

Luego agregue '/ usr / local / share / npm / bin' a su PATH (probablemente en ~ / .bashrc). Por ejemplo, agregue la línea: export PATH="$PATH:/usr/local/share/npm/bin"

reinicia tu Terminal y comprueba que

$ jshint

es ejecutable desde la línea de comandos. Syntastic descubrirá jsHint automáticamente. ¡Reinicia MacVim y disfruta!


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.