Comment commencer par créer un programme pour formater C et son code dérivé en code format .net de sorte que si je saisis un programme. Ce programme peut reconnaître et reformater en ajoutant correctement l'indentation et d'autres choses.Comment créer un code de formatage et d'indexation en C#
Répondre
Ceci est une tâche extrêmement complexe car les langages de programmation ont une grammaire complexe. Si vous voulez formater non seulement C#, mais aussi C et C++, c'est même plus complexe - probablement impossible car il peut y avoir une syntaxe dans une langue qui n'est pas valide (ou signifie quelque chose de différent) dans un autre.
Si vous voulez le faire uniquement pour C#, vous avez besoin d'un analyseur C#. Il y a quelques parseurs sans logiciel C# disponible:
Une fois que vous avez l'arbre d'analyse syntaxique, vous devrez marcher l'arbre et progressivement sortie correctement formaté. Certains des analyseurs C# peuvent déjà avoir cette fonctionnalité.
En ce qui concerne l'ambiguïté de la grammaire: Tenir compte de la ligne de code suivante:
Method(a<b,c>(d+1));
En C# la mise en forme correcte serait:
Method(a<b, c>(d + 1)); // “a<T1, T2>” is generic; Method has one argument
en C et C++ je crois que la mise en forme correcte serait:
Method(a < b, c > (d + 1)); // Method has two arguments with binary operators
Je comprends la complexité. Je n'ai aucun problème à utiliser une autre ressource gratuite. J'ai ce lien http://www.codeproject.com/KB/macros/makecodenicer.aspx où la macro est disponible. Mais je ne sais rien à ce sujet. –
@Shantanu: Quelle est votre question? – Timwi
ceci est marqué 'devoirs'. OP est chargé de recréer la fonction "Format Selected Code" de VS pour C# afai peut dire. –