Ace: [JavaScript Linting] Unterstützung von ESNext (async/await, Klasseneigenschaften usw.)

Erstellt am 6. Dez. 2016  ·  11Kommentare  ·  Quelle: ajaxorg/ace

Ich schlage vor, den Javascript-Hinweis zu ändern, um ESLint für eine bessere Unterstützung von ES6 + -Funktionen zu verwenden.

Ich würde gerne Klasseneigenschaften und async/await am meisten verwenden können, aber es gibt auch unzählige andere Linting-Regeln, die es viel besser macht als jshint.

class Foo {
    bar = 'baz';
}
async function foo () {
    const bar = await baz();
}

Ich habe nicht untersucht, wie schwierig es sein könnte, den Javascript-Linter auszutauschen, daher weiß ich nicht, wie realistisch eine Anfrage ist.

linters

Hilfreichster Kommentar

Bitte arbeiten Sie an diesem Problem.

Alle 11 Kommentare

Das ist eine gute Idee und wird auch für #3180 benötigt.
Wir könnten es auf den Web-Demo-Dateien für ESLint aufbauen.

Bitte arbeiten Sie an diesem Problem.

Die neue JSHint-Version 2.10.0 wurde mit Unterstützung für die neuen Funktionen veröffentlicht.

Als vorübergehende Problemumgehung - ich habe ACE-Typoskript verwendet, es hat bereits await/async.

Typoskript zeigt keinen Fehler an, aber dann übersieht es viele andere Fehler.

Es ist nicht nur async/await, sondern die gesamte es6-Syntax, einschließlich neuer mathematischer Operatoren wie 8**2

Ab heute ist diese Ausgabe 3 Jahre alt . React ist jetzt schon eine Weile auf dem Markt, also steigt sicherlich die Nachfrage danach. Das Projekt ist immer noch ziemlich aktiv, aber es gibt keinen Hinweis darauf, dass dies auf einer offiziellen Roadmap steht, und es scheint nur ein „Ja, das müssen wir tun, und wir werden es wahrscheinlich tun.“

Können wir _bitte_ hier eine Art Update bekommen? @Nachtflügel ? @adamjimenez ?

Ich habe dies gefunden, als ich versucht habe, den Linter für CSS-Dateien zu finden und etwas Eigenes zu erstellen, _/mode/javascript_worker.js_ 🔗

Diese Konfiguration scheint darauf hinzudeuten, dass sie bereits für die ESNext-Unterstützung eingerichtet ist , zumindest wenn im Javascript-Worker-Modus für den Javascript-Worker gearbeitet wird . Persönlich hat das kein Licht ins Dunkel gebracht, aber vielleicht kann es jemandem von euch helfen

Ich habe versucht, ace neu zu erstellen, nachdem ich die jshint.js-Datei durch die neueste ersetzt hatte. Dadurch wird verhindert, dass ein Fehler für async/await angezeigt wird. Es verhindert jedoch auch, dass Fehler für andere Szenarien angezeigt werden (fehlende Klammern, nicht geschlossene Zeichenfolgen usw.). Sehr frustrierend, ich nehme an, das Ace-Projekt ist tot.

Ich habe mich auch damit beschäftigt und konnte es zum Laufen bringen. Die Dokumentation konnte aktualisiert werden, es war ziemlich schmerzhaft, herauszufinden, wie das gesamte Ökosystem funktioniert (dauerte mehrere Stunden) und dann erfuhr, dass alle Änderungen erforderlich waren, war eine Zeile ... :/

Es gibt ein paar Optionen:
1) Wenn Sie gerade die gepackte/minimierte Version importiert haben, müssen Sie Folgendes ersetzen: „esnext:!0“ durch „esversion:9“
https://raw.githubusercontent.com/ajaxorg/ace-builds/master/src-min/worker-javascript.js
2) Sie können das Repo auschecken und selbst erstellen. (Es dauert etwa 1 Minute, also auch ziemlich einfach)

git clone [email protected]:ajaxorg/ace.git
npm install
nano +82 lib/ace/mode/javascript_worker.js // replace "esnext: true," with "esversion: 9"
node Makefile.dryice.js full --target ../ace-builds

UPDATE : Da mein letzter Kommentar einen anderen Weg gefunden hat:

var editor = ace.edit("editor");
editor.session.on('changeMode', function(e, session){
    if ("ace/mode/javascript" === session.getMode().$id) {
        if (!!session.$worker) {
            session.$worker.send("setOptions", [{
                "esversion": 9,
                "esnext": false,
            }]);
        }
    }
});
editor.session.setMode("ace/mode/javascript");

Fantastisch!! Irgendwelche Hinweise, ob Sie andere Versionen angeben könnten, wie 6 für ES6 und so weiter?

Ich werde auch hinzufügen, falls andere neu bei git sind oder ihr SSH nicht mit Github eingerichtet haben, können Sie es auch klonen mit: git clone https://github.com/ajaxorg/ace.git/ . _Ich bin öfter darüber gestolpert, als ich zugeben möchte_

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen