¿Puedo apagar o cambiar el verificador de sintaxis para el modo js2?


13

Tengo una configuración predeterminada de js2-mode. Esto proporciona un buen resaltado y verificación de sintaxis, pero ahora estoy trabajando en un proyecto con un conjunto diferente de estilos (específicamente este nuevo proyecto no usa punto y coma).

Esto hace que cada línea de código se subraye js2-modecon la advertencia:missing ; after statement

¿Hay alguna manera de deshabilitar el registro de sintaxis js2-mode?

O, mejor aún, ¿hay alguna manera de usar un verificador de sintaxis diferente?

Tengo el modo Flycheck instalado y ejecutándose para mis .jsarchivos, pero simplemente no tengo habilitados los verificadores de sintaxis (es decir, todos los verificadores están configurados en nily not found). Sería genial saber cómo habilitar uno de estos y deshabilitar el integrado js2.

Sé que las vistas sobre la inserción de punto y coma varían, pero este proyecto sigue el "standard style"para el que hay un verificador de sintaxis en Flycheck y me interesa saber si puedo cambiar el verificador.

Respuestas:


17

La advertencia proviene del modo JS2 que implementa su propio analizador para Javascript y advierte sobre un par de problemas. Como se señaló en la otra respuesta, la advertencia particular que observó está controlada por la opción de usuario js2-strict-missing-semi-warningque puede configurar nilen su archivo de inicio o a través de M-x customizepara desactivar la advertencia.

Cuando se utiliza el modo de comunicación conjunta 2 junto con Flycheck lo general se recomienda para desactivar todas las advertencias de la JS2 modo estableciendo las variables js2-mode-show-parse-errorsy js2-mode-show-strict-warningsal niligual que en casi todos los casos la comprobación de sintaxis de Flycheck proporciona informes de errores superior.


Para seleccionar el javascript-standardverificador de sintaxis para el uso actual del búfer C-c ! s javascript-standard. Puede habilitar permanentemente este verificador de sintaxis para su proyecto específico creando un .dir-locals.elarchivo en el directorio de nivel superior del proyecto con el siguiente contenido:

((js2-mode
  (flycheck-checker . javascript-standard)))

Emacs carga automáticamente estas variables de directorio cuando visita un archivo debajo del directorio y, por lo tanto, selecciona automáticamente el verificador de sintaxis estándar para su proyecto.


Por alguna razón, incluso cuando js2-mode-show-parse-errorsestá configurado en nil, todavía veo los errores: C-h v js2-mode-show-parse-errorsregresa js2-mode-show-parse-errors is a variable defined in js2-mode.el'. Its value is nil. Original value was t pero aún veo las líneas debajo. ¿Sabes por qué esto podría ser?
Startec

Ah, hay un pequeño tipo en tu respuesta, creo que te refieres js2-mode-show-strict-warnings nil. Agregué esto como una edición.
Startec

@Startec Oh, lo siento, gracias por arreglar mi error.
lunaryorn

2

Puede personalizar la js2-strict-missing-semi-warningvariable para nilque no le advierta sobre este problema en particular, o puede usarla en js-modelugar de js2-mode.

De las dos opciones, recomiendo cambiar su guía de estilo; La inserción automática de punto y coma en JS es una trampa. Aún así, reconozco que eso no siempre es posible.


44
-1: Elimina el último párrafo, está fuera de tema. La discusión de los estilos Javascript no es para este sitio.
lunaryorn

3
No gracias. Ofrezco este consejo como ingeniero con 20 años de experiencia con Javascript. Ciertamente, adaptar emacs para que se ajuste a las convenciones locales es factible (y es en lo que emacs es mejor), pero algunas cosas son más problemáticas de lo que valen, y la inserción automática de punto y coma está en la parte superior de esa lista. Dejando eso de lado, ajustar el comportamiento de js2-mode es su mejor opción, ya que es la más simple. Sin embargo, en realidad no sé nada sobre flymake, así que no puedo ayudarte allí.
db48x
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.