Puis-je désactiver ou désactiver le vérificateur de syntaxe pour le mode js2?

13

J'ai une configuration par défaut de js2-mode. Cela fournit une mise en évidence et une vérification de la syntaxe, mais je travaille maintenant sur un projet avec un ensemble de styles différent (en particulier, ce nouveau projet n'utilise pas de points-virgules).

Cela provoque chaque ligne de code à souligner js2-modeavec l'avertissement:missing ; after statement

Existe-t-il un moyen de désactiver l'enregistrement de la syntaxe js2-mode?

Ou, mieux encore, existe-t-il un moyen d'utiliser un vérificateur de syntaxe différent?

J'ai le mode Flycheck installé et en cours d'exécution pour mes .jsfichiers, mais je n'ai tout simplement aucun vérificateur de syntaxe activé (c'est-à-dire que tous les vérificateurs sont définis sur nilet not found). Ce serait formidable de savoir comment activer l'un d'eux et désactiver celui intégré js2.

Je sais que les vues sur l'insertion de points-virgules varient, mais ce projet suit celui "standard style"pour lequel il existe un vérificateur de syntaxe dans Flycheck et je suis simplement intéressé à savoir si je peux changer de vérificateur.

Startec
la source

Réponses:

17

L'avertissement provient du mode JS2 qui implémente son propre analyseur pour Javascript et met en garde contre quelques problèmes. Comme indiqué dans l'autre réponse, l'avertissement particulier que vous avez observé est contrôlé par l'option utilisateur js2-strict-missing-semi-warningque vous pouvez définir nildans votre fichier init ou via M-x customizeafin de désactiver l'avertissement.

Lorsque vous utilisez le mode JS2 avec Flycheck nous recommandons généralement de désactiver tous les avertissements du mode JS2 en définissant les variables js2-mode-show-parse-errorset js2-mode-show-strict-warningsà nilcomme dans presque tous les cas de vérification de la syntaxe de Flycheck fournit des rapports d'erreur supérieure.


Pour sélectionner le javascript-standardvérificateur de syntaxe pour l'utilisation actuelle du tampon C-c ! s javascript-standard. Vous pouvez activer définitivement ce vérificateur de syntaxe pour votre projet spécifique en créant un .dir-locals.elfichier dans le répertoire de niveau supérieur du projet avec le contenu suivant:

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

Emacs charge automatiquement ces variables de répertoire lors de la visite d'un fichier sous le répertoire, et choisit donc automatiquement le vérificateur de syntaxe standard pour votre projet.

lunaryorn
la source
Pour une raison quelconque, même lorsqu'il js2-mode-show-parse-errorsest défini sur nil, je vois toujours les erreurs: C-h v js2-mode-show-parse-errorsretourne js2-mode-show-parse-errors is a variable defined in js2-mode.el'. Its value is nil. Original value was t mais je vois toujours les lignes inférieures. Savez-vous pourquoi cela pourrait être?
Startec
Ah, il y a un petit type dans votre réponse, je crois que vous vouliez dire js2-mode-show-strict-warnings nil. J'ai ajouté cela en tant que modification.
Startec du
@Startec Oh désolé merci d'avoir corrigé mon erreur.
lunaryorn
2

Vous pouvez personnaliser la js2-strict-missing-semi-warningvariable pour nilqu'elle ne vous avertisse pas de ce problème particulier, ou vous pouvez utiliser à la js-modeplace de js2-mode.

Parmi les deux options, je recommande de changer votre guide de style; l'insertion automatique de points-virgules dans JS est un piège. Pourtant, je reconnais que cela pourrait ne pas toujours être possible.

db48x
la source
4
-1: Veuillez supprimer le dernier paragraphe, il est hors sujet. La discussion des styles Javascript n'est pas pour ce site.
lunaryorn
3
Non, merci. J'offre ce conseil en tant qu'ingénieur avec 20 ans d'expérience avec Javascript. Il est certes possible d'adapter emacs aux conventions locales (et c'est ce qui convient le mieux à emacs), mais certaines choses sont plus problématiques qu'elles n'en valent, et l'insertion automatique de points-virgules est en haut de cette liste. En mettant cela de côté, peaufiner le comportement du mode js2 est votre meilleure option, car c'est la plus simple. Cependant, je ne connais rien à la fabrication de mouches, donc je ne peux pas vous aider.
db48x