85 votes

Afficher le chemin de la solution/du fichier dans l'IDE Visual Studio

Je travaille fréquemment avec plusieurs instances de Visual Studio, souvent sur différentes branches de la même solution.

Visual C++ 6.0 avait l'habitude d'afficher le chemin complet du fichier source actuel dans sa barre de titre, mais Visual Studio 2005 ne semble pas le faire. Il est donc un peu plus difficile qu'il ne le faudrait de savoir dans quelle branche de la solution je me trouve actuellement (le moyen le plus rapide que je connaisse est de passer la souris sur un onglet pour obtenir le chemin d'accès au fichier source sous forme d'infobulle).

Existe-t-il un moyen de faire figurer la solution complète ou le chemin d'accès au fichier dans la barre de titre, ou du moins à un endroit toujours visible, afin que je puisse savoir rapidement quelle branche est chargée dans chaque instance ?

3 votes

11 ans et toujours pas disponible hors de la boîte :-/

1 votes

Préférences > Fenêtre:Titre. Pas besoin de plugin, => existe depuis 2017 au moins.

33voto

Bruno Vinicius Points 151

Il s'agit d'une extension disponible dans la galerie en ligne spécialement conçue pour ce travail. Caisse Labos > Extension Visual Studio : Personnaliser le titre de la fenêtre Visual Studio .

3 votes

Génial. Une extension minimaliste qui fonctionne tout simplement. Pas de configuration nécessaire.

4 votes

Fonctionne également en 2015

2 votes

Fonctionne également en 2017

25voto

Adam Haile Points 12576

Il n'existe pas de méthode native pour le faire, mais vous pouvez le faire avec une macro. Les détails sont décrits ici dans leur intégralité : Comment afficher le chemin d'accès complet au fichier (ou tout autre élément) dans la barre de titre de VS 2005 ?

Il vous suffit d'ajouter une petite macro Visual Basic à la section macro EvironmentEvents et de redémarrer Visual Studio.

Remarque : le chemin d'accès n'apparaîtra pas lors du premier chargement de Visual Studio, mais il apparaîtra chaque fois que vous modifierez le fichier que vous visualisez. Il existe probablement un moyen de corriger cela, mais cela ne semble pas être un problème majeur.

4 votes

Chemin du fichier en pied de page est également une bonne extension

2 votes

@dan ...mais mange une ligne en bas de l'éditeur (pas dans la barre d'état (vous savez, la bleue qui devient orange quand on débogue)). Prenez-le en considération, surtout pour les petits écrans, etc. En tout cas, merci pour l'indication.

17voto

Registered User Points 1123

Découvrez la dernière version de VSCommands 2010 Lite . Il a introduit une fonctionnalité appelée Friendly Solution Name, qui permet d'afficher le chemin d'accès au fichier de la solution (ou une partie de celui-ci) dans le titre de la fenêtre principale de Visual Studio.

Plus de détails : http://vscommands.com/releasenotes/3.6.8.0 et http://vscommands.com/releasenotes/3.6.9.0

0 votes

0 votes

Tous les liens (domaine vscommands.com ) semble être cassé (il ne fonctionne pas).

0 votes

Cependant, il y a VSCommandes pour Visual Studio 2010 . C'est la même chose ?

5voto

Drew Miller Points 307

Pour Visual Studio 2008, une façon légèrement meilleure d'écrire la macro de la réponse acceptée est d'utiliser les événements de la solution au lieu de ceux du document - cela vous permet de toujours modifier la barre de titre, même si vous n'avez pas de document sélectionné.

Voici la macro que mon collègue et moi avons créée en nous basant sur l'autre - vous devrez modifier les lignes 15-18 pour tirer le nom de votre branche du répertoire source, quelle que soit la façon dont vous l'avez configurée.

Private timer As System.Threading.Timer

Declare Auto Function SetWindowText Lib "user32" (ByVal hWnd As System.IntPtr, ByVal lpstring As String) As Boolean

Private _branchName As String = String.Empty

Private Sub SolutionEvents_Opened() Handles SolutionEvents.Opened
    Try
        If timer Is Nothing Then
            ' Create timer which refreshes the caption because
            ' IDE resets the caption very often
            Dim autoEvent As New System.Threading.AutoResetEvent(False)
            Dim timerDelegate As System.Threading.TimerCallback = _
                AddressOf tick
            timer = New System.Threading.Timer(timerDelegate, autoEvent, 0, 25)
        End If
        Dim sourceIndex As Integer = DTE.Solution.FullName.IndexOf("\Source")
        Dim shortTitle As String = DTE.Solution.FullName.Substring(0, sourceIndex)
        Dim lastIndex As Integer = shortTitle.LastIndexOf("\")
        _branchName = shortTitle.Substring(lastIndex + 1)
        showTitle(_branchName)
    Catch ex As Exception

    End Try
End Sub

Private Sub SolutionEvents_BeforeClosing() Handles SolutionEvents.BeforeClosing
    If Not timer Is Nothing Then
        timer.Dispose()
    End If
End Sub

''' <summary>Dispose the timer on IDE shutdown.</summary>
Public Sub DTEEvents_OnBeginShutdown() Handles DTEEvents.OnBeginShutdown
    If Not timer Is Nothing Then
        timer.Dispose()
    End If
End Sub

'''<summary>Called by timer.</summary>
Public Sub tick(ByVal state As Object)
    Try
        showTitle(_branchName)
    Catch ex As System.Exception
    End Try
End Sub

'''<summary>Shows the title in main window.</summary>
Private Sub showTitle(ByVal title As String)
    SetWindowText(New System.IntPtr(DTE.MainWindow.HWnd), title & " - " & DTE.Name)
End Sub

2voto

superlogical Points 5129

J'utilise VSCommands 10 pour afficher le chemin complet du fichier de solution ouvert.

Friendly Name: {repo}
Solution Path Regex: (?<repo>.*)

Maintenant, ma fenêtre de titre principale ressemble à ceci :

c:\repositories\acme.marketplace.trunk\Acme.Marketplace.web\Acme.Marketplace.Web.sln

Je peux rapidement voir que je travaille dans le dossier trunk ou dans un dossier rc car nous utilisons Mercurial (Hg) et gardons des dossiers séparés pour trunk, rc, preprod, prod comme ceci :

c:\repositories\acme.marketplace.rc1
c:\repositories\acme.marketplace.rc2
c:\repositories\acme.marketplace.trunk
c:\repositories\acme.marketplace.preprod
c:\repositories\acme.marketplace.prod

0 votes

Est-ce la même chose que VSCommandes pour Visual Studio 2010 ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X