C’est une fonction à laquelle je me suis habitué dans Eclipse (Ctrl+Tab). Existe-t-il un équivalent dans Visual C++?
Dans Visual Studio 2013 et versions ultérieures, il existe un raccourci clavier par défaut pour cela: Ctrl+K, Ctrl+O (Vous devrez maintenir Ctrl et taper ko puis relâche Ctrl )
Dans les versions antérieures, voir:
Macro Visual Studio pour basculer entre les fichiers CPP et H
ou
Dans Visual Studio 2013, un raccourci clavier par défaut est Ctrl+K, Ctrl+O
Vous pouvez ajouter cette macro à votre configuration VS (via Outils -> Macros -> Explorateur de macros), puis lui attribuer un raccourci clavier (via Outils -> Options -> Environnement -> Clavier).
Je viens juste de l'écrire (je voulais essayer cela depuis des lustres!), Mais cela semble fonctionner jusqu'à présent, à la fois dans VS2008 et VS2010.
Étant donné qu’il s’agit d’une macro, vous pouvez la modifier pour inclure les règles de votre choix (recherche dans d’autres dossiers, règles de dénomination spéciales, par exemple, si vous avez un en-tête unique partagé par plusieurs fichiers cpp ou similaire).
Voici la macro (je suis sûr que cela pourrait être mieux écrit; je ne suis pas familier avec les objets VS et seules les macros réalisaient que .Net utilisait à peu près à la moitié de l'écriture de la chose :)):
Sub FileSwitch()
Try
Dim CurrentPath As String = DTE.ActiveDocument.FullName
Dim OtherPath As String
If (IO.Path.HasExtension(CurrentPath)) Then
Dim CurrentExtension As String = IO.Path.GetExtension(CurrentPath)
Select Case CurrentExtension
Case ".h", ".hpp", ".hxx"
OtherPath = IO.Path.ChangeExtension(CurrentPath, ".cpp")
If (Not IO.File.Exists(OtherPath)) Then
OtherPath = IO.Path.ChangeExtension(CurrentPath, ".c")
If (Not IO.File.Exists(OtherPath)) Then
OtherPath = IO.Path.ChangeExtension(CurrentPath, ".cxx")
End If
End If
Case ".cpp", ".c", ".cxx"
OtherPath = IO.Path.ChangeExtension(CurrentPath, ".h")
If (Not IO.File.Exists(OtherPath)) Then
OtherPath = IO.Path.ChangeExtension(CurrentPath, ".hpp")
If (Not IO.File.Exists(OtherPath)) Then
OtherPath = IO.Path.ChangeExtension(CurrentPath, ".hxx")
End If
End If
Case Else
End Select
If (OtherPath <> Nothing) Then
DTE.ItemOperations.OpenFile(OtherPath)
End If
End If
Catch ex As System.Exception
MsgBox(ex.Message)
End Try
End Sub
Voici une capture d'écran (très large :) montrant ce à quoi doivent ressembler l'éditeur de macro et les boîtes de dialogue raccourci clavier/options, pour aider ceux qui ne le connaissent pas:
Essayez Visual Assist, qui présente cette fonctionnalité (entre autres):
Les fonctionnalités de navigation dans le code, dont l’en-tête swap cpp/en-tête, sont vraiment utiles.
(J'ai également évalué ses fonctionnalités intellisense et de refactoring, mais toutes les personnes à qui j'ai parlé ne sont pas d'accord avec moi.)
EDIT: je viens juste de me rappeler que le plug-in de solution Nifty effectue également cette opération, en plus d'une autre fonctionnalité très pratique, comme Visual Assist, mais rien d'autre, et ils sont gratuits:
http://code.google.com/p/niftyplugins/
(Le plugin du gars est forcément génial aussi. Bien mieux que les ordures par défaut de VSSCC.)
Essayez PhatStudio . C'est gratuit et vient avec un installateur facile.
ALT + S = Basculer entre en-tête/fichier source
ALT + O = Ouvrir un fichier (supporte la recherche instantanée via la frappe, comme le menu Démarrer de Windows Vista/7).
Je ne vois pas cette réponse ici, mais au moins dans Visual Studio 2012 (Express inclus!), Vous pouvez simplement assigner votre propre commande de clavier pour accéder au fichier d'en-tête (REMARQUE: ne va que dans un sens - vous ne pouvez pas aller retour au fichier source malheureusement ...)
Vous ne savez pas dans quelles versions de VS cela fonctionne, mais cela ne nécessite aucun complément et semble faire l'affaire dans au moins une direction.
Dans Visual Studio 2008 et 2010, vous pouvez cliquer avec le bouton droit de la souris sur votre fichier .cpp et choisir Accéder au fichier d'en-tête ... qui vous mènera dans une direction. Pour l’autre direction, si vous cliquez avec le bouton droit de la souris sur quelque chose que vous déclarez dans l’en-tête et choisissez Aller à la définition, cela vous mènera dans l’autre direction. Vous devrez peut-être passer par une boîte de dialogue de résolution d'ambiguïté si vous choisissez le constructeur, car le nom de la fonction correspond au nom de la classe, mais si vous choisissez une autre option, vous irez directement où vous le souhaitez. Je sais que c’est une approche en deux clics, plutôt qu’une frappe au clavier, mais elle fait ce que vous voulez.
Si vous positionnez votre souris sur une déclaration de fonction dans l'en-tête et appuyez sur F12, le fichier cpp sera ouvert à la définition du fichier cpp ... J'utilise cette fonctionnalité à fond!
Essayez d’utiliser Switch, c’est un complément qui vous permet de feuilleter source et en-tête, code et concepteur, XAML et codebehind, etc.
http://www.dwmkerr.com/switch/ ou directement à partir de Produits et extensions pour Visual Studio
Je suis fan de Visual Assist pour cela. Ce n’est pas bon marché, mais il offre beaucoup plus de fonctionnalités que de passer de l’en-tête à la source. J'utilise aussi beaucoup son fichier ouvert dans les fonctionnalités de navigation dans les projets et les classes. Bien sûr la macro est gratuite ...
Il existe également une macro répertoriée sur le forum de support Whole Tomato qui contient quelques mappages de fichiers supplémentaires.
Pour Visual Studio 2013, comme mentionné par d'autres, il s'agit de la commande nommée:
EditorContextMenus.CodeWindow.ToggleHeaderCodeFile
et il a comme combinaison de touches par défaut: Ctrl+K,Ctrl+O, mais cela peut être changé si vous introduisez la nouvelle combinaison de touches que vous aimez dans le menu déroulant.
Appuyez sur les touches de raccourci:
sous
Outils -> Options -> Environnement -> Clavier.
Ainsi, vous pouvez choisir une combinaison de touches personnalisée comme mon favori pour le commutateur .h à .cpp est Ctrl+Tab.
Visual assist ne prend pas non plus en charge les éditions Visual Studio Express. Donc, vous êtes coincé avec la macro si vous utilisez cet IDE>
Dans Visual Studio 2008, c'est Alt + O.
Dans Visual Studio 2013, il s'agit de ALT
+ O
Dans leur sagesse (in) finie, MS a décidé de supprimer les macros dans MSVS 2012 afin que la macro ci-dessus ne fonctionne pas.
Pour MSVS 2012, j'ai trouvé ceci:
http://www.dwmkerr.com/switch/
C'est hautement configurable + si vous voulez aider à l'améliorer, vous pouvez le faire sur GitHub.