12
votes

Advanced (C ++) Code source Re-formatage avec Visual Studio?

Nous aimerions pouvoir reformater des blocs / fonctions du code C ++ directement à partir de l'IDE Visual Studio, de sorte que les développeurs puissent facilement assurer que le nouveau code ils insèrent des adhérences à nos directives de formatage. < / p>

J'ai trouvé le outil de style artistique , ce qui couvre à peu près les fonctionnalités dont nous aurions besoin. Cependant, cela ne peut travailler que sur des fichiers entiers de la CLI, de sorte que ce n'est pas très utile pour ce que nous voudrions l'utiliser. (Le reformatage de fichiers entier n'est certainement jamais ce que nous voulons [a].)

Visual Studio (2005) comporte des fonctionnalités de format automatique limitées, mais AFAICS, il s'agit principalement d'indenter correctement, ce qui manque un peu.

Donc, ma question est de savoir s'il y a des outils pouvant effectuer une reformatation avancée sur une sélection de la VS IDE, ou peut-être s'il existe un plugin VS IDE faisant l'utilisation d'ASTTYLE?

Edit: La question liée à la recherche d'un outil - Profactor's Stylemanager - y a-t-il d'autres outils comme celui-ci?

NOTE [A]: Reformater des fichiers entiers ou des arbres de projet entiers n'est utile que pour des projets personnels ou pour le code initial Checkins, IMHO. Pour un (grand) projet d'équipe, la réformat de couverture vous gâchera l'historique des modifications des fichiers ou des lignes dans les fichiers, ce qui en fait beaucoup plus difficile à suivre qui a changé quoi.


3 commentaires

Je gère personnellement style périodiquement sur l'ensemble du projet. Cela aide à maintenir un style cohérent sur des fichiers source.


stackoverflow.com/questions/ 1663794 / ...


Pour votre note [a]: Je n'ai jamais rencontré de tels problèmes. Le mécanisme DIFF utilisé par la plupart des systèmes de contrôle de version (au moins sur Linux) est tolérant au déplacement des lignes. Et Astyle peut être configuré pour ne pas modifier les horaires des fichiers qu'il touche, de sorte qu'il ne vissez pas le système de construction. À condition que vous exécutez ASTYLE avant de vous rendre à la fois (ou avant la construction) à chaque fois, il n'y a absolument aucun problème.


3 Réponses :


1
votes

regarde il y a déjà une réponse pour ce https://stackoverflow.com/questions/ 1663794 / Visual-Studio-non exploité-Code-Code-Formatter

aussi. Je sais dans kdevelop and code :: Blocks Ils ont de belles réformatrices de code C ++ et vous pouvez personnaliser très efficacement le style. J'aime les deux .. mais code :: Les blocs ne me pleurent pas sur moi pour le moment: (


1 commentaires

J'ai déjà mentionné cette question / réponse dans un commentaire-lien et une question d'édition avant votre réponse.



3
votes

J'ai trouvé un message de blog qui explique comment intégrer une formatrice de code externe avec Visual Studio: Formatage de code PER-Project dans Visual Studio

(...) Vous pouvez ensuite configurer votre (s) IDE (S) afin que leurs commandes de formatage par défaut Au lieu de cela, utilisez l'inclusion. En valeur visuelle Studio, par exemple, on peut créer un outil externe. En supposant que les noncrustifications.cfg est à côté du fichier de solution, puis le Ligne de commande

-c $ (solutiondir) noncrustify.cfg -no-backup "$ (itemPath)"

reformatera le fichier source actuel. Vous pouvez ensuite affecter une cartographie du clavier (ou réaffectait celui-ci pour Edit.formatDocument, comme moi) pour Accès rapide.

Je ne l'ai pas essayé, mais il semble bouillir pour configurer votre formateur (par exemple, astlye / noncrustify) en tant qu'outil externe dans Visual Studio pour pouvoir l'appeler sur un fichier source de l'IDE.

Toujours seulement par fichier, mais semble l'une des meilleures idées que j'ai trouvées.


0 commentaires

0
votes

La question est un peu ancienne, mais la question n'est pas.

J'utilise un vs macro Pour laver le code C ++ via le décompte et le déclencher par un raccourci clavier (Alt + Shift + U, ma préférence). La macro s'exécute non crustifiée sur le document de l'éditeur actuellement actif, envoie la sortie à un fichier temporaire, puis remplace le texte de l'éditeur actuel avec la sortie d'UNCUSTIFIDE.

Évidemment, ce flux de travail change tout le code dans le fichier, mais une utilisation fréquente du raccourci gardera votre code agréable et propre. Son concevable que la macro soit déclenchée automatiquement lorsque N% du texte de l'éditeur change? Je laisserai ça à EnvdTE Gurus.


0 commentaires