Après discution avec @slobberbone et @cyrilphoenix71, il serait intéressant de pouvoir afficher la liste des #tags# et fonctions() avec leur documentation respective dans la fenêtre d'équipement, genre ici: https://prnt.sc/q9fz9t
Ça doit pouvoir s'adapter au contexte (exemple: #slider# qui n'est pas tout le temps un tag valide)
Ça passerait par une refonte de chaque fonction qui deviendrait alors une classe de ce style que l'on devrait implémenter:
class IEvaluateFormatter {
abstract string evaluate($input);
abstract string getDoc();
}
Évidemment, c'est à implémenter pour chaque fonction existante mais on pourrait aussi implémenter nous même (dans un plugin par exemple, pour ajouter nos propre fonctions custom):
Inconvénient: Pour appeler une fonction tel que lastChangeStateDuration, on devrait remplacer: lastChangeStateDuration(XXX) par FormatterValue\NextDom\LastChangeStateDuration::eval(XXX) ou MonPlugin\MaClasse::eval(XXX)
Mais on pourrait imaginer une syntaxe qui remplace lastChangeStateDuration(XXX) par FormatterValue\NextDom\LastChangeStateDuration::eval(XXX) et MonPlugin\MaClasse(XXX) par MonPlugin\MaClasse::eval(XXX) afin de rendre plus lisible les scénarios/commandes.
Après discution avec @slobberbone et @cyrilphoenix71, il serait intéressant de pouvoir afficher la liste des
#tags#
etfonctions()
avec leur documentation respective dans la fenêtre d'équipement, genre ici: https://prnt.sc/q9fz9tÇa doit pouvoir s'adapter au contexte (exemple:
#slider#
qui n'est pas tout le temps un tag valide)Ça passerait par une refonte de chaque fonction qui deviendrait alors une classe de ce style que l'on devrait implémenter:
Évidemment, c'est à implémenter pour chaque fonction existante mais on pourrait aussi implémenter nous même (dans un plugin par exemple, pour ajouter nos propre fonctions custom):
Inconvénient: Pour appeler une fonction tel que lastChangeStateDuration, on devrait remplacer:
lastChangeStateDuration(XXX)
parFormatterValue\NextDom\LastChangeStateDuration::eval(XXX)
ouMonPlugin\MaClasse::eval(XXX)
Mais on pourrait imaginer une syntaxe qui remplace
lastChangeStateDuration(XXX)
parFormatterValue\NextDom\LastChangeStateDuration::eval(XXX)
etMonPlugin\MaClasse(XXX)
parMonPlugin\MaClasse::eval(XXX)
afin de rendre plus lisible les scénarios/commandes.