Kann ich die Syntaxprüfung für den js2-Modus ausschalten oder umschalten?


13

Ich habe eine Standardeinstellung von js2-mode. Dies bietet eine schöne Hervorhebung und Überprüfung der Syntax, aber ich arbeite gerade an einem Projekt mit einem anderen Satz von Stilen (speziell in diesem neuen Projekt werden keine Semikolons verwendet).

Dadurch wird jede einzelne Codezeile js2-modemit der Warnung unterstrichen :missing ; after statement

Gibt es eine Möglichkeit, das Einchecken der Syntax zu deaktivieren js2-mode?

Oder, noch besser, gibt es eine Möglichkeit, einen anderen Syntaxprüfer zu verwenden?

Ich habe den Flycheck-Modus für meine .jsDateien installiert und lauffähig , aber ich habe keine aktivierten Syntaxprüfer (dh alle Prüfer sind auf nilund gesetzt not found). Es wäre toll zu wissen, wie man eines davon aktiviert und das eingebaute deaktiviert js2.

Ich weiß, dass die Ansichten zum Einfügen von Semikolons variieren, aber dieses Projekt folgt dem, "standard style"für das es in Flycheck eine Syntaxprüfung gibt, und ich bin nur daran interessiert, ob ich die Prüfung wechseln kann.

Antworten:


17

Die Warnung stammt aus dem JS2-Modus, der einen eigenen Parser für Javascript implementiert und vor einigen Problemen warnt. Wie in der anderen Antwort angegeben, wird die von Ihnen beobachtete Warnung von der Benutzeroption gesteuert, js2-strict-missing-semi-warningdie Sie nilin Ihrer Init-Datei oder über festlegen können M-x customize, um die Warnung auszuschalten.

Wenn mit Flycheck mit JS2 Modus zusammen empfehlen wir , alle Warnungen von JS2 Modus zu deaktivieren im Allgemeinen durch die Variablen einstellen js2-mode-show-parse-errorsund js2-mode-show-strict-warningszu nilwie in fast allen Fällen Flycheck die Syntaxprüfung Berichts überlegen Fehler bietet.


Um die javascript-standardSyntaxprüfung für den aktuellen Puffer auszuwählen, verwenden Sie C-c ! s javascript-standard. Sie können diese Syntaxprüfung dauerhaft für Ihr bestimmtes Projekt aktivieren, indem Sie .dir-locals.elim obersten Verzeichnis des Projekts eine Datei mit folgendem Inhalt erstellen :

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

Emacs lädt diese Verzeichnisvariablen automatisch, wenn Sie eine Datei unterhalb des Verzeichnisses aufrufen , und wählt daher automatisch die Standardsyntaxprüfung für Ihr Projekt aus.


Aus irgendeinem Grund werden die Fehler angezeigt, auch wenn auf festgelegt js2-mode-show-parse-errorsist nil: gibt C-h v js2-mode-show-parse-errorszurück, js2-mode-show-parse-errors is a variable defined in js2-mode.el'. Its value is nil. Original value was t aber die untergeordneten Zeilen werden weiterhin angezeigt. Wissen Sie, warum das sein könnte?
Startec

Ah, da ist ein kleiner Typ in deiner Antwort, ich glaube du meintest es js2-mode-show-strict-warnings nil. Ich habe dies als Bearbeitung hinzugefügt.
Start

@Startec Oh, sorry, danke, dass du meinen Fehler behoben hast.
Lunaryorn

2

Sie können die js2-strict-missing-semi-warningVariable nilso anpassen , dass sie Sie nicht vor diesem bestimmten Problem warnt, oder sie kann js-modeanstelle von verwendet werden js2-mode.

Von den beiden Optionen empfehle ich, den Styleguide zu ändern. Das automatische Einfügen von Semikolons in JS ist eine Falle. Trotzdem ist mir klar, dass dies möglicherweise nicht immer möglich ist.


4
-1: Bitte entfernen Sie den letzten Absatz, da dieser nicht zum Thema gehört. Die Diskussion der Javascript-Stile ist nicht für diese Site.
Lunaryorn

2
Nein danke. Ich biete diesen Rat als Ingenieur mit 20 Jahren Erfahrung mit Javascript an. Das Anpassen von Emacs an die lokalen Konventionen ist zwar möglich (und am besten mit Emacs), aber einige Dinge sind schwieriger als sie es wert sind, und das automatische Einfügen von Semikolons steht ganz oben auf dieser Liste. Abgesehen davon ist es am einfachsten, das Verhalten von js2-mode zu optimieren. Ich weiß eigentlich nichts über Fliegenbasteln, also kann ich dir dort nicht helfen.
db48x
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.