LxLeChat / FlowChartCore

PowerShell Module Written in C# to create DOT graphs from PS Scripts
MIT License
19 stars 3 forks source link

Description des noeuds #34

Open LxLeChat opened 4 years ago

LxLeChat commented 4 years ago

J avais pour idée d implémenter une description pour les noeuds. Cette description reprendrendrai un commentaire qu'on pourrait retrouver au dessus d une AST exemple :

$sb = {
# Description: ce if fait quelque chose
If ( $x ) { "something" }
}

et au déclement de find-flowchartcore cela nous retournerai un champ supplémentaire appellé description

PS > Find-FLowChartNodes -ScriptBlock $sb

Condition : $x
Name      : IfNode
Description: "Ce if fait quelque chose"
Children  : {CodeNode}
Parent    :
Position  : 1
Depth     : 0
Id        : 01
Graph     : {}

Ensuite ce qui pourrait être marrant ça serait d'ajouter un switch a new-flowchartcore, par exemple -DescriptionAsLabel et que du coup au lieu d'avoir dans le label "$" on aie Ce if Fait quelque chose

alors cela impliquerait d'avoir une espece de convention qui dit : si le commentaire commence par description (ou un autre "tag") alors on le prend en charge

LaurentDardenne commented 4 years ago

Regarde l'usage d'un attribut, comme dans PSSA :

Enfin si j'ai compris le besoin.

LxLeChat commented 4 years ago
$sb={
    $grade = 92
    # Description: Grade superieur à 90 ?
    if ($grade -ge 90) { "Grade A" }
    # Description: Grade superieur à 70 ?
    elseif ($grade -ge 70)  { "Grade C"}
    else { "Grade D"}

}

image

LaurentDardenne commented 4 years ago

Je comprend le besoin, mais à mon avis cela va surcharger le code avec des duplications d'informations dédiées au rendu et plus au code en lui même. En cas de modification on doit changer le code et les annotations.

Codetour permet d'ajouter des annotations. Un attribut à la même fonction mais c'est le compilateur ou ici le un moteur PS qui est adressé. On peut effectivement adresser un autre outil (cf. PSSA).

Perso je préfère un document de spécifications ET du code. Cela reste une bonne idée, faut voir à l'usage. En même temps c'est paradoxal je trouve, on décrit visuellement les spécifications avec leur résultat :-)

LxLeChat commented 4 years ago

Ehehe effectivement ! Je vais créer une branche dédiée pour voir ce que ça donne! D ailleurs je vais réorganiser les branches un peu ... c le bazar !