Vscode-ng-language-service: Angular Language Service-Roadmap

Erstellt am 30. Mai 2019  ·  20Kommentare  ·  Quelle: angular/vscode-ng-language-service

Es ist mehr als ein Jahr her , dass
Jetzt, da Version 8 veröffentlicht ist, möchten wir einige Updates und eine Roadmap für den zukünftigen Sprachdienst bereitstellen.

  1. Stabilität / Leistung ✔️ fertig!
    Es ist unsere oberste Priorität, sicherzustellen, dass der Sprachdienst nicht in der Leistung nachlässt. Wir werden uns weiterhin mit Stabilitätsproblemen befassen, falls vorhanden.

  2. Umstellung auf tsserver-Plugin ✔️ fertig!
    In den kommenden Monaten werden wir die verbleibende Arbeit übernehmen, die für den Übergang zum tsserver-Plugin-Modell erforderlich ist. Die Hauptvorteile eines tsserver-Plugins sind Leistung (keine doppelte TS-Kompilierung) und kein Versionskonflikt (sowohl Angular als auch TS). Die meiste Arbeit besteht darin, sicherzustellen, dass externe HTML-Vorlagen gut unterstützt werden.
    Update 11.11.2019: Während wir den Plugin-Modus weiterhin unterstützen, haben wir uns entschieden, die Standalone-Erweiterung beizubehalten. Die Erweiterung wurde komplett überarbeitet, um die Leistungsprobleme zu beheben, und viele Funktionen wurden hinzugefügt. In Verbindung mit der Veröffentlichung von Angular Version 9 wurde eine neue Version auf dem Marktplatz veröffentlicht.

  3. Fehlerbehebungen / Verbesserungen ✔️ fertig!
    Sobald das Plugin fertig ist, werden wir einige seit langem bestehende Fehler in Bezug auf die Überprüfung des Vorlagentyps und einige häufig nachgefragte Funktionsverbesserungen beheben.

  4. Sprachdienst auf Ivy-Compiler umstellen ✔️ fertig!
    Da sich das Kompilierungsmodell unter Ivy deutlich von dem unter View Engine unterscheidet, muss das Sprachdienst-Backend überarbeitet werden, um die zukünftige Kompatibilität zu gewährleisten.

Vielen Dank für das Feedback und lassen Sie es uns wissen, wenn Sie dazu beitragen möchten!

Hilfreichster Kommentar

Neuestes Update: Der Ivy-Sprachdienst wird für Betatests in Version 11 verfügbar sein. Die Veröffentlichung ist derzeit für den 11. November 2020 geplant. Wir möchten die Leistung verbessern und einen breiteren Funktionsumfang in dieser völlig neuen Iteration des Sprachdienstes bereitstellen. Zu den neuen Funktionen gehören:

  1. Bessere Eingaben in Angular-Vorlagen
  2. Erstellen Sie dieselbe Diagnose wie der Compiler
  3. angularCompilerOptions Benutzers

Wir wissen, dass es lange her ist, aber danke für die Unterstützung und die Geduld!

Alle 20 Kommentare

Nun, nur um es hier zu verlinken, habe ich zwei gut beschriebene leistungsintensive Probleme / Bugs:

Während es beim ersten einen Workaround gibt, zumindest den zuletzt geöffneten Editor nicht zu schließen, besteht beim zweiten nur das Deaktivieren des Plugins. Aus meinen intensiven Tests mit dem Plugin kann ich sagen, wenn diese beiden behoben sind, ist das Plugin fast perfekt.

Eine neue Version der Angular-Erweiterung wird auf GitHub als frühe Vorschau veröffentlicht, siehe https://github.com/angular/vscode-ng-language-service/releases/tag/v0.900.0-next.0.

Wenn Sie es ausprobieren, teilen Sie uns bitte alle Probleme / Fehler mit. Dankeschön!

@kyliau : Ich würde gerne die integrierte neuere Angular-Smartness in Eclipse Wild Web Developer ausprobieren. Enthält die Erweiterung, die Sie in Ihrem vorherigen Kommentar verlinkt haben, einen Sprachserver (wie in einem Prozess, der LSP spricht)? Wenn ja, wird erwartet, dass es sowohl mit TS- als auch mit HTML-Dateien funktioniert? Und wenn ja, wie wird dieser Sprachserver empfohlen?

@kyliau Ich habe die Anweisungen zur Installation von v0.900.0-next.0 befolgt, es gibt jedoch keine Vorschläge zur automatischen Vervollständigung für irgendetwas (z. B. Komponentenselektoren, Eigenschaften, Ereignisse usw.).

Ich freue mich, Ihnen mitteilen zu können, dass die RC-Version veröffentlicht wurde und in wenigen Wochen eine brandneue Erweiterung auf dem vscode- Marktplatz veröffentlicht wird .
Wenn Sie es in der Zwischenzeit ausprobieren möchten, laden Sie bitte die Binärdatei von der Release- Seite herunter.
Wir konzentrieren uns derzeit auf Workitem (3), in dem wir einige langjährige Fehler beheben werden.

Die neue Erweiterung ist jetzt live. Bitte laden Sie es von https://marketplace.visualstudio.com/items?itemName=Angular.ng-template herunter

Ich habe eine Frage zu Punkt 4 "Sprachdienst auf Ivy-Compiler umstellen [in Bearbeitung]"

Wir verfügen über eine eigene interne Bibliothek, die nur in den von uns selbst entwickelten Anwendungen verwendet wird. Also haben wir es zu Ivy migriert, weil unsere gesamte Codebasis auf einmal migriert wurde. Aber jetzt erkennt vscode die Direktiven und Komponenten aus der Bibliothek nicht mehr.

Das heißt, der beste Weg wäre vorerst, die Bibliothek mit der View Engine zu kompilieren, bis der Sprachdienst Ivy vollständig unterstützt. Ist das richtig? Wenn ja, gibt es einen Fahrplan, wann der Support für den Sprachdienst ankommt?

Die Anwendungen, die den Ivy-Compiler verwenden, haben kein Problem. Komponenten aus den Anwendungen werden korrekt aufgelöst.

@furti Wie Sie bereits bemerkt haben, müssen Bibliotheken und Anwendungen metadata.json übernimmt, die heute die Grundlage des Sprachdienstes bilden.
@xiaoxiangmoe Ich arbeite mit dem Compiler-Team daran, Ivy vollständig in den Sprachdienst zu integrieren. Derzeit streben wir einen Beta-Release in Version 10 an, der voraussichtlich Ende Juni / Anfang Juli erfolgen soll, sofern es keine Überraschungen gibt. Unsere Planung wurde aufgrund der anhaltenden WFH-Situation etwas gestört, aber wir werden unser Bestes geben, um an der ursprünglichen Roadmap festzuhalten.

Schön zu sehen, dass Angular v10 veröffentlicht hat
Gibt es ein Update für "Sprachdienst auf Ivy-Compiler umstellen"?

@xiaoxiangmoe Der Zeitplan für den Ivy-Sprachdienst hat sich aufgrund einiger interner Umstrukturierungen verschoben.
Die Arbeit hat bereits begonnen und wir haben einige Mitglieder aufgenommen, um die Dynamik dieses Projekts zu erhöhen.
Sie können den Fortschritt des gesamten Projekts verfolgen hier .
Wir planen, Ivy LS neben dem bestehenden LS zu veröffentlichen, damit Benutzer, die eine "frühe Vorschau" ausprobieren möchten, dies über ihre Editoreinstellungen tun können. Bitte bleiben Sie dran!

Ich denke, die Leistung ist noch nicht wirklich fertig. Diese Erweiterung war für mich und viele andere Leute, die ich kenne, seit langem die größte Quelle für hohe CPU-Spitzen und macht in letzter Zeit Fans von macOS verrückt.

Ja, ich stimme @DenysVuika zu. Ich hatte monatelang Probleme mit diesem Plugin. Ich habe es gestern aufgegeben und deaktiviert. Nachdem ich vscode und ng Webserver gestartet habe, wird die CPU irgendwann in die Höhe schnellen und dort bleiben, bis ich vscode neu starte. Intellisense wird mehrmals täglich aufhören zu arbeiten. Ich bin gezwungen, vscode jeden Tag mehrmals neu zu starten. Seit ich es deaktiviert habe, ist alles wieder normal. Ich bin auch auf macOS. Hier ein paar Kontextinformationen:

Winkel-CLI: 10.0.1
Knoten: 12.13.0
Betriebssystem: Darwin x64

Winkel: 10.0.2
... Animationen, Common, Compiler, Compiler-Cli, Core, Formulare
... Plattform-Browser, Plattform-Browser-dynamisch, Router
Efeu-Arbeitsbereich: Ja

Paketversion

@angular-devkit/architect 0.1000.1
@angular-devkit/build-angular 0.1000.1
@angular-devkit/build-optimizer 0.1000.1
@angular-devkit/build-webpack 0.1000.1
@angular-devkit/core 10.0.1
@angular-devkit/schematics 10.0.1
@angular/cdk 10.0.1
@angular/cli 10.0.1
@angular/material 10.0.1
@ngtools/webpack 10.0.1
@schematics/angular 10.0.1
@schematics/update 0.1000.1
rxjs 6.6.0
Typoskript 3.9.6
Webpack 4.43.0

In meinem aktuellen Angular 10-Projekt mit Version: 1.48.0-insider habe ich weder Angular Intellisense in meinen HTML-Vorlagen noch eine Fehlerprüfung mehr (wie wenn ich an eine nicht vorhandene Variable gebunden wäre).

Neuestes Update: Der Ivy-Sprachdienst wird für Betatests in Version 11 verfügbar sein. Die Veröffentlichung ist derzeit für den 11. November 2020 geplant. Wir möchten die Leistung verbessern und einen breiteren Funktionsumfang in dieser völlig neuen Iteration des Sprachdienstes bereitstellen. Zu den neuen Funktionen gehören:

  1. Bessere Eingaben in Angular-Vorlagen
  2. Erstellen Sie dieselbe Diagnose wie der Compiler
  3. angularCompilerOptions Benutzers

Wir wissen, dass es lange her ist, aber danke für die Unterstützung und die Geduld!

@kyliau Wird dies mit Winkel v11.0.0-rc.2 oder v11.0.0-rc.3 veröffentlicht?

@kyliau Wird dies mit Winkel v11.0.0-rc.2 oder v11.0.0-rc.3 veröffentlicht?

@xiaoxiangmoe Der Ivy-Sprachdienst bleibt experimentell und wird in v11.0 aktiviert, da wir noch einiges zu tun haben, um die Benutzererfahrung zu verbessern und einige Fehler auszubügeln. Wer es trotzdem ausprobieren möchte, kann die RC-Version von https://github.com/angular/vscode-ng-language-service/releases/tag/v0.1100.0-rc.0 herunterladen und installieren .vsix Datei manuell.

Da dies ein großer Meilenstein für das Projekt ist, möchten wir sicherstellen, dass die Erweiterung gut getestet und die Funktionen vollständig sind, bevor sie als stabil veröffentlicht wird. Wir haben enorme Fortschritte gemacht und freuen uns, die Arbeit mit der Community zu teilen, aber wir schätzen etwas mehr Geduld, während wir die losen Enden zusammenbinden.

@kyliau Wann können wir damit rechnen, dass die Fehler, die für den Ivy Language-Dienst geöffnet wurden, untersucht werden?
Geöffnet https://github.com/angular/vscode-ng-language-service/issues/936

@kyliau Wird dies mit Winkel v11.0.0-rc.2 oder v11.0.0-rc.3 veröffentlicht?

@xiaoxiangmoe Der Ivy-Sprachdienst bleibt experimentell und wird in v11.0 aktiviert, da wir noch einiges zu tun haben, um die Benutzererfahrung zu verbessern und einige Fehler auszubügeln. Wer es trotzdem ausprobieren möchte, kann die RC-Version von https://github.com/angular/vscode-ng-language-service/releases/tag/v0.1100.0-rc.0 herunterladen und installieren .vsix Datei manuell.

Da dies ein großer Meilenstein für das Projekt ist, möchten wir sicherstellen, dass die Erweiterung gut getestet und die Funktionen vollständig sind, bevor sie als stabil veröffentlicht wird. Wir haben enorme Fortschritte gemacht und freuen uns, die Arbeit mit der Community zu teilen, aber wir schätzen etwas mehr Geduld, während wir die losen Enden zusammenbinden.

Wie aktiviere ich Ivy Language Service richtig? Ich habe diese experimentelle Einstellung bereits auf "true" gesetzt, aber ngcc kann nicht ausgeführt werden. Ich habe versucht, es direkt manuell auszuführen, aber es funktioniert nicht. Gibt es einen offensichtlichen Schritt, den ich nicht unternehme?

Ich hoffe, Sie lehnen diesen Kommentar nicht wie andere Benutzer-Support-Anfragen ab. Ich weiß, dass du dafür nicht bereit bist. Ich möchte nur wissen, wie ich das richtig testen kann.

@Arkthur Das sind meine eckigenCompilerOptions:

{
    "angularCompilerOptions": {
        "fullTemplateTypeCheck": true,
        "strictInjectionParameters": true,
        "strictInputAccessModifiers": true,
        "strictTemplates": true
    }
}

Wenn Sie vscode-ng-language-service v0.1100.1 oder v0.1100.3 verwenden, installieren Sie bitte v0.1100.0 neu. Es scheint, dass vscode-ng-language-service v0.1100.1 schwerwiegende Fehler hat und der Ivy-Sprachdienst nicht funktioniert.

Es hat lange gedauert, aber heute ist der Ivy-Native-Sprachdienst in v11.1.0 endlich zum Ausprobieren verfügbar!
Ivy-native LS behebt viele grundlegende Probleme, die in View Engine nicht behoben werden konnten:

  • inkrementelle Kompilierungsleistung,
  • robustere Typprüfung,
  • gleiche Diagnose wie Compiler usw.

Es führt auch einige neue Funktionen ein, wie das Finden von Referenzen für Variablen in Vorlagen.

Bitte laden Sie vom vscode-Marktplatz herunter und lassen Sie uns wissen, wenn Sie Feedback haben.
Anweisungen zum Aktivieren von Ivy-native LS finden Sie in den Versionshinweisen .

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen