2017-03-16 2 views
0

J'ai deux projets Xtext (2.11) de plug-in Eclipse (appelés projets A et B) Le fichier de grammaire du projet B dépend du fichier de grammaire du projet A. L'extension du fichier de grammaire du projet A est a et le projet B est b. Je suis capable de générer le serveur de langage pour le projet B. Je veux générer le serveur de langue unique pour les deux projets (Actuellement, dans le projet B il inclut le projet A.) Selon le type d'extension, il doit invoquer la fonctionnalité grammaticale Xtext respective.Serveur de langue Xtext unique pour deux extensions

Dans le scénario ci-dessus, j'ai questions ci-dessous:

  1. Est-ce que Xtext peut gérer ce genre de scénario en toute transparence? Dois-je également générer le serveur de langue pour le projet A et ajouter le projet B? Quelle est la meilleure façon de procéder?
  2. Quels types de modifications Xtext sont nécessaires?
  3. Quels types de modifications sont également nécessaires côté client? comme dans le code visuel/Che?

Répondre

2
  1. Xtext LS peut être utilisé avec plusieurs langages Xtext. Il utilise le chargement du service Java pour rechercher les configurations de langue: https://github.com/eclipse/xtext-core/blob/master/org.eclipse.xtext/src/org/eclipse/xtext/resource/ResourceServiceProviderServiceLoader.xtend#L25. Dans le projet ide de votre langue, vous devriez être en mesure de trouver le fichier META-INF/services/org.ecalipse.xtext.ISetup qui dit java quelles implémentations devraient être utilisées pour l'interface ISetup. Avoir des jars pour les projets IDE sur le classpath devrait suffire. Aucun changement requis
  2. le code VS et Che ne doit être enregistrée pour les
+0

Je ne suis toujours pas en mesure soucie pas des détails de mise en œuvre de Xtext LS, mais les deux langues pour voir le serveur de la langue s'active pour mon « une » extension. Y a-t-il un blog ou des documents pour cette intégration? Comment le code VS va-t-il connaître l'extension 'a'? –

+0

Si j'ai bien compris votre commentaire, alors je n'ai rien à faire si ce n'est d'ajouter le module des modules ide des projets A dans le module ide de B. Pouvez-vous s'il vous plaît ajouter plus d'accent sur ce domaine? –

+0

true pour le code vs vous devez enregistrer votre langue, vous pouvez regarder ce tutoriel pour apprendre à le faire: http://typefox.io/building-a-vs-code-extension-with-xtext-and-the -language-server-protocol –