klee-contrib / topmodel

Outil de modélisation et générateurs pour divers langages
https://klee-contrib.github.io/topmodel/
MIT License
11 stars 12 forks source link

[VSCode] Références et renommage (partiel) de propriétés #185

Closed JabX closed 1 year ago

JabX commented 1 year ago

Fix #9 Traite partiellement #10

Il est désormais possible de faire "Find All References" sur les propriétés, depuis n'importe quelle référence, pour avoir la liste exhaustive des références directes vers une propriété. Une propriété référencée indirectement (alias d'alias par exemple) ne sera pas listée, puisque ce n'est pas la même propriété. Les références de propriétés sur un exclude sont bien listées, malgré le fait que la propriété n'existe pas sur la classe cible, et les include implicites sont "redirigés" vers la référence de la classe de l'alias.

Certaines localisations peuvent donc maintenant référencer deux objets en même temps :

Dans ce cas, les références des deux objets seront listées et mélangées dans le résultat de la requête.

Le renommage des propriétés a aussi été partiellement implémenté. A l'inverse du listing des références, le renommage agit également sur les références indirectes : renommer un alias d'alias va renommer la propriété initiale, et inversement. En revanche, le renommage échouera si toutes les références n'ont pas le même nom (à cause d'une référence qui utilise un préfixe ou suffixe d'alias par exemple).

L'issue #10 reste donc ouverte pour lever cette limitation, au moins dans le sens "parent" => "enfant" où il est facile de recalculer le nom de la propriété après renommage (dans l'autre sens il faudrait vérifier que le nom choisi corresponde aux différents préfixes et suffixes, ce qui semble loin d'être immédiat, d'autant plus que la fonctionnalité n'a à priori pas beaucoup de valeur). On traitera aussi par la même occasion le renommage de classe qui ne renomme pas les alias vers une association, puisque c'est un peu le même problème.