Vscode-ng-language-service: Feuille de route du service linguistique angulaire

Créé le 30 mai 2019  ·  20Commentaires  ·  Source: angular/vscode-ng-language-service

Cela fait plus d'un an que @chuckjaz , l'auteur original du service linguistique, a quitté l'équipe. Depuis lors, l'équipe s'est éparpillée en travaillant sur divers objectifs ambitieux, à savoir le compilateur Ivy et l'intégration de Bazel avec CLI, entre autres.
Maintenant que la version 8 est sortie, nous aimerions fournir quelques mises à jour et une feuille de route pour le service linguistique à l'avenir.

  1. Stabilité/performance ✔️ c'est fait !
    Il est de notre plus grande priorité de nous assurer que le service linguistique ne régresse pas en termes de performances. Nous continuerons de nous attaquer aux problèmes de stabilité, le cas échéant.

  2. Transition vers le plugin tsserver ✔️ c'est fait !
    Au cours des prochains mois, nous prendrons en charge le reste du travail requis pour effectuer la transition vers le modèle de plug-in tsserver. Les principaux avantages d'un plugin tsserver sont les performances (pas de compilation TS en double) et aucune incompatibilité de version (à la fois Angular et TS). La plupart du travail consiste à s'assurer que les modèles HTML externes sont bien pris en charge.
    Mise à jour 11/11/2019 : bien que nous continuions à prendre en charge le mode plugin, nous avons décidé de maintenir l'extension autonome. L'extension a été complètement repensée pour résoudre les problèmes de performances, et de nombreuses fonctionnalités ont été ajoutées. Une nouvelle version a été publiée sur le marché en conjonction avec la sortie de la version angulaire 9.

  3. Corrections de bugs/améliorations ✔️ terminées !
    Une fois le plugin terminé, nous corrigerons certains bugs de longue date concernant la vérification du type de modèle et certaines améliorations de fonctionnalités très demandées.

  4. Basculer le service de langue vers le compilateur Ivy ✔️ terminé !
    Étant donné que le modèle de compilation sous Ivy est très différent de celui sous View Engine, le backend du service linguistique devra être réorganisé pour assurer la compatibilité future.

Merci pour tous vos commentaires, et n'hésitez pas à nous faire savoir si vous souhaitez contribuer !

Commentaire le plus utile

Dernière mise à jour : le service linguistique Ivy sera disponible pour un test bêta dans la version 11. La sortie est actuellement prévue pour le 11 novembre 2020. Nous visons à améliorer les performances et à fournir un ensemble de fonctionnalités plus large dans cette toute nouvelle itération du service linguistique. Parmi les nouvelles fonctionnalités, citons :

  1. Meilleures saisies dans les modèles angulaires
  2. Produire les mêmes diagnostics que le compilateur
  3. Honorer l'utilisateur angularCompilerOptions

Nous savons que cela a été long à venir, mais merci pour le soutien et la patience !

Tous les 20 commentaires

Eh bien, juste pour le lier ici, j'ai deux bons problèmes / bugs de performances décrits :

Alors que pour le premier, il existe une solution de contournement pour ne pas fermer au moins le dernier éditeur ouvert, pour le second, il suffit de désactiver le plugin. D'après mes tests intensifs avec le plugin, je peux dire que si ces deux sont corrigés, le plugin est presque parfait.

Une nouvelle version de l'extension Angular est publiée sur GitHub en avant-première, veuillez consulter https://github.com/angular/vscode-ng-language-service/releases/tag/v0.900.0-next.0.

Si vous l'essayez, veuillez nous faire part de tout problème / bogue. Merci!

@kyliau : J'aimerais essayer la nouvelle intelligence angulaire intégrée dans Eclipse Wild Web Developer. L'extension que vous avez liée dans votre commentaire précédent contient-elle un serveur de langue (comme dans un processus parlant LSP) ? Si oui, est-il censé fonctionner à la fois sur les fichiers TS et HTML ? Et si oui, quelle est la méthode recommandée pour démarrer ce serveur de langue ?

@kyliau J'ai suivi les instructions pour installer la v0.900.0-next.0, mais il n'y a aucune suggestion de saisie semi-automatique pour quoi que ce soit (par exemple, les sélecteurs de composants, les propriétés, les événements, etc.).

Je suis heureux d'annoncer que la version RC est sortie, et dans quelques semaines une toute nouvelle extension sera publiée sur vscode marketplace .
En attendant, si vous souhaitez l'essayer, veuillez télécharger le binaire à partir de la page Release .
Nous nous concentrons actuellement sur l'élément de travail (3), dans lequel nous corrigerons quelques bogues de longue date.

La nouvelle extension est maintenant en ligne. Veuillez le télécharger à partir de https://marketplace.visualstudio.com/items?itemName=Angular.ng-template

J'ai une question sur le point 4 "Basculer le service de langue vers le compilateur Ivy [en cours]"

Nous avons notre propre bibliothèque interne, qui n'est utilisée que dans les applications que nous développons nous-mêmes. Nous l'avons donc migré vers Ivy, car toute notre base de code a été migré en même temps. Mais maintenant, vscode ne reconnaît plus les directives et les composants de la bibliothèque.

Cela signifie que le meilleur moyen pour le moment serait de compiler la bibliothèque avec View Engine jusqu'à ce que le service de langue prenne pleinement en charge Ivy. Est-ce correct? Si tel est le cas, existe-t-il une feuille de route à laquelle le support arrivera pour le service linguistique ?

Les applications qui utilisent le compilateur ivy n'ont aucun problème. Les composants des applications sont résolus correctement.

@furti Comme vous l'avez noté, oui, pour l'instant, les bibliothèques et les applications devront être compilées avec View Engine pour que le service de langue récupère le metadata.json qui est la base du service de langue aujourd'hui.
@xiaoxiangmoe Je travaille avec l'équipe du compilateur pour intégrer pleinement Ivy dans le service linguistique. Actuellement, nous visons une version bêta en version 10, qui devrait arriver vers fin juin / début juillet, sauf surprise. Notre planification a été quelque peu perturbée en raison de la situation actuelle de la FMH, mais nous ferons de notre mieux pour nous en tenir à la feuille de route d'origine.

Ravi de voir qu'angular a sorti la v10 🎉
Existe-t-il une mise à jour pour « Basculer le service de langue vers le compilateur Ivy » ?

@xiaoxiangmoe Le calendrier du service linguistique Ivy a reculé en raison d'une réorganisation interne.
Le travail a déjà commencé et nous avons intégré quelques membres pour donner un nouvel élan à ce projet.
Vous pouvez suivre l'avancement de l'ensemble du projet ici .
Nous prévoyons de sortir Ivy LS avec le LS existant, afin que les utilisateurs qui souhaitent essayer un « aperçu anticipé » puissent le faire à partir des paramètres de leur éditeur. S'il vous plaît restez à l'écoute!

Je pense que la performance n'est pas encore vraiment terminée. Cette extension a été la plus grande source de pics de CPU élevés pour moi et pour de nombreuses autres personnes que je connais depuis longtemps et qui a récemment rendu fous les fans de macOS.

Oui je suis d'accord avec @DenysVuika. J'ai eu des problèmes avec ce plugin pendant des mois. J'ai abandonné hier et l'ai désactivé. Après avoir démarré vscode et le serveur Web ng, le processeur montera en flèche à un moment donné et y restera jusqu'à ce que je redémarre vscode. Intellisense cessera de fonctionner plusieurs fois par jour. Je suis obligé de redémarrer vscode tous les jours, plusieurs fois. Depuis que je l'ai désactivé, tout est rentré dans l'ordre. Je suis aussi sur macOS. Voici quelques informations contextuelles :

CLI angulaire : 10.0.1
Nœud : 12.13.0
OS : darwin x64

Angulaire : 10.0.2
... animations, commun, compilateur, compilateur-cli, noyau, formulaires
... plate-forme-navigateur, plate-forme-navigateur-dynamique, routeur
Espace de travail Ivy : Oui

Version du package

@angular-devkit/architecte 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
@angulaire/cdk 10.0.1
@angulaire/cli 10.0.1
@angulaire/matériau 10.0.1
@ngtools/webpack 10.0.1
@schematics/angular 10.0.1
@schéma/mise à jour 0.1000.1
rxjs 6.6.0
tapuscrit 3.9.6
Webpack 4.43.0

Dans mon projet Angular 10 actuel, en utilisant la version: 1.48.0-insider, je n'ai plus aucun Angular Intellisense dans mes modèles HTML ni aucune vérification d'erreur (comme si je me liais à une variable inexistante).

Dernière mise à jour : le service linguistique Ivy sera disponible pour un test bêta dans la version 11. La sortie est actuellement prévue pour le 11 novembre 2020. Nous visons à améliorer les performances et à fournir un ensemble de fonctionnalités plus large dans cette toute nouvelle itération du service linguistique. Parmi les nouvelles fonctionnalités, citons :

  1. Meilleures saisies dans les modèles angulaires
  2. Produire les mêmes diagnostics que le compilateur
  3. Honorer l'utilisateur angularCompilerOptions

Nous savons que cela a été long à venir, mais merci pour le soutien et la patience !

@kyliau Est-ce que cela sera publié avec angular v11.0.0-rc.2 ou v11.0.0-rc.3?

@kyliau Est-ce que cela sera publié avec angular v11.0.0-rc.2 ou v11.0.0-rc.3?

Le service linguistique https://github.com/angular/vscode-ng-language-service/releases/tag/v0.1100.0-rc.0 et installer le .vsix fichier manuellement.

Comme il s'agit d'une étape importante pour le projet, nous aimerions nous assurer que l'extension est bien testée et que les fonctionnalités sont complètes avant qu'elle ne soit publiée en tant que stable. Nous avons fait d'énormes progrès et sommes ravis de partager le travail avec la communauté, mais nous apprécions un peu plus de patience pendant que nous réglons les détails.

@kyliau Quand peut-on s'attendre à ce que les bogues ouverts pour le service Ivy Language soient étudiés ?
Ouvert https://github.com/angular/vscode-ng-language-service/issues/936

@kyliau Est-ce que cela sera publié avec angular v11.0.0-rc.2 ou v11.0.0-rc.3?

Le service linguistique https://github.com/angular/vscode-ng-language-service/releases/tag/v0.1100.0-rc.0 et installer le .vsix fichier manuellement.

Comme il s'agit d'une étape importante pour le projet, nous aimerions nous assurer que l'extension est bien testée et que les fonctionnalités sont complètes avant qu'elle ne soit publiée en tant que stable. Nous avons fait d'énormes progrès et sommes ravis de partager le travail avec la communauté, mais nous apprécions un peu plus de patience pendant que nous réglons les détails.

Quelle est la bonne façon d'activer Ivy Language Service ? J'ai déjà défini ce paramètre expérimental sur true, mais il ne peut pas exécuter ngcc. J'ai essayé de l'exécuter manuellement juste avant, mais cela ne fonctionne pas. Y a-t-il une étape évidente que je ne prends pas ?

J'espère que vous ne rejetez pas ce commentaire comme n'importe quelle autre demande de support utilisateur. Je sais que tu n'es pas prêt pour ça. Je veux juste savoir la bonne façon de tester cela.

@Arkthur Ceci est mon angularCompilerOptions:

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

De plus, si vous utilisez vscode-ng-language-service v0.1100.1 ou v0.1100.3, veuillez réinstaller v0.1100.0. Il semble que vscode-ng-language-service v0.1100.1 présente de sérieux bogues et que le service de langue ivy ne fonctionnera pas.

Cela a été long à préparer, mais aujourd'hui, le service en langue native d'Ivy est enfin disponible pour l'essayer dans la v11.1.0 !
Ivy-native LS résout de nombreux problèmes fondamentaux impossibles à résoudre dans View Engine :

  • performances de compilation incrémentielle,
  • une vérification de type plus robuste,
  • mêmes diagnostics que le compilateur, etc,

Il introduit également de nouvelles fonctionnalités telles que la recherche de références pour les variables dans les modèles.

Veuillez télécharger depuis le marché vscode et faites-nous savoir si vous avez des commentaires.
Les instructions pour activer Ivy-native LS sont disponibles dans les notes de version .

Cette page vous a été utile?
0 / 5 - 0 notes