Nous avons des modèles de domaine décrits dans certains formats xml. Étant donné les modèles de domaine que je veux générer des outils qui aident les testeurs/experts de domaine à exprimer des données dans le texte (et un cadre de test spécifique à un domaine plus tard). Le support IDE est obligatoire (IDEA ou eclipse).syntaxe textuelle pour les modèles de domaine
dire, j'ai ce modèle pseudo
User
fn string 120 chars mandatory
ln string 120 chars mandatory
address not-mandatory
Address
street mandatory
city mandatory
Un scénario typique d'utilisation:
user opens the IDE
creates a new file
when content assist invoked, should give options 'user', 'address' etc
If I choose user, furthur ctrl-space should give 'fn', 'ln', 'address' as options.
Je sais que cela peut être fait par XText ou JetBrains mps etc. Mais, je veux comprendre ce qui la technologie prête pour les exigences suivantes.
- les modèles sont fournis au système lors de l'exécution (nouveaux, mises à jour, suppressions, etc.). donc, je ne peux pas avoir un ensemble statique de grammaires. Comment puis-je le structurer pour que l'aide modèle/propriété soit résolue au moment de l'exécution ou au moins la grammaire est générée (peut en faire partie)
- lorsque je travaille avec un ensemble de «grammaires», si je pointe mon serveur cible à une version différente (qui peut avoir différents ensembles de modèles), je veux que l'éditeur valide mes fichiers existants et signale les erreurs. Je reçois les fichiers de données en XML, texte ou via des recherches de serveur.
- Il est très important pour moi de transformer les modèles dans un autre format ou de les interpréter dans java/groovy.
Ex, je peut avoir le fichier de données suivantes
user {
fn : Tom
ln : Jill
hobby : movies
}
mais, quand je valide ce fichier sur un serveur qui ne connaît pas la propriété « passe-temps », je veux l'éditeur pour marquer l'erreur sur cette propriété.
J'ai prévu d'ajouter beaucoup plus de fonctionnalités à ce dsl/toolkit. Est-ce que la technologie est plus appropriée?
grâce
Votre question a besoin d'une réponse très importante. Cependant, vous pouvez suivre ce lien et voir s'il y a des mises à jour. https://mps-support.jetbrains.com/hc/en-us/community/posts/206609185-textual-representation-of-the-module –