Bonjour,
je recherche un exemple de classe en C++ qui me permette de mettre en forme mon code comme le fait une IDE (retour à ligne, indentation...)
une méthode qui me retournerait mon std::string converti.
Merci
Version imprimable
Bonjour,
je recherche un exemple de classe en C++ qui me permette de mettre en forme mon code comme le fait une IDE (retour à ligne, indentation...)
une méthode qui me retournerait mon std::string converti.
Merci
Salut,
Ce n'est pas une classe, mais carrément tout un sous projet fourni par clang: clang-format
Il s'agit aussi bien d'une bibliothèque (nommée libformat) que tu peux utiliser dans tes propres projet qu'un programme "stand alone" que tu peux utiliser pour formater ton code selon différentes lignes de conduites, dont certaines sont "prédéfinies", mais qui peuvent aussi être définies par toi-même.
merci, mais clang-format est un utilitaire en ligne de commande, comment puis -je l'intégrer à mon application ?
Bonjour,
Naïvement, en embarquant l'exécutable de clang-format à côté de votre exécutable, et en l'appelant de manière dynamique (system(), popen(), ...).
Par contre, il faut vérifier que la licence permet une telle utilisation ;).
Clang-format est en réalité une application qui utilise LibFormat, une bibliothèque qui fournit les différentes fonctionnalités permettant de formater le code.
Si tu souhaites l'intégrer directement à ton application, il "suffit" de l'intégrer exactement de la même manière que n'importe quelle autre bibliothèque externe, et de faire appel à la fonction
Quant au problème de licence, il ne se pose pas vraiment, car elle est particulièrement permissive (tu peux distribuer clang sous forme de sources, de binaires exéctuables, et modifier ses sources sans aucune restriction). Tout ce que tu dois faire, c'est de t'assurer de fournir une copie de la licence de clang lorsque tu l'utilise ;)Code:
1
2
3 tooling::Replacements reformat(const FormatStyle &Style, Lexer &Lex, SourceManager &SourceMgr, std::vector<CharSourceRange> Ranges);
maerci, mais je ne vois pas comment utiliser la méthode reformat() avec un std::string et comment récupérer le std::string formaté ?
je n'ai, moi-même, jamais intégré clang-format dans un projet, en tant que bibliothèque, donc, je te conseillerais sans doute de partir de ==>cette page <== de documentation pour savoir comment le faire ;)
Sinon, ==>cette discussion<== devrait pouvoir t'aider ;)
Finalement, j'ai intégré Artistic Style, ça m'a paru plus simple.
Ben... Euh... A-Style est lui aussi un tool en command line, non ?
oui et non, en regardant le code, je me suis aperçu qu'on pouvait l'intégrer.