102 votes

Visual Studio : Raccourci pour faire défiler l'explorateur de solutions jusqu'au fichier actuel

Je suis ne pas demander pour la possibilité de automatiquement suivre le fichier actuel dans l'explorateur de solutions. Cette question a été traitée dans cette question et j'ai désactivé cette option parce que je déteste ce comportement.

J'aimerais disposer d'un raccourci (ou d'une macro, ou de ....) pour accéder au fichier que je suis en train de modifier dans l'explorateur de solutions.

3voto

Mate Points 2228

Pour VS2010 j'ai trouvé cette macro et elle fonctionne pour moi :

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90

Public Module Utilities
    Public Sub TrackProjectItem()
        Dim solution As Solution2 = DTE.Solution
        If Not solution.IsOpen OrElse DTE.ActiveDocument Is Nothing Then Return

        solution.FindProjectItem(DTE.ActiveDocument.FullName).ExpandView()

        Dim FileName As String = DTE.ActiveDocument.FullName

        Dim SolutionExplorerPath As String
        Dim items As EnvDTE.UIHierarchyItems = DTE.ToolWindows.SolutionExplorer.UIHierarchyItems
        Dim item As Object = FindItem(items, FileName, SolutionExplorerPath)

        If item Is Nothing Then
            MsgBox("Couldn't find the item in Solution Explorer.")
            Return
        End If

        DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate()
        DTE.ActiveWindow.Object.GetItem(SolutionExplorerPath).Select(vsUISelectionType.vsUISelectionTypeSelect)
    End Sub

    Public Function FindItem(ByVal Children As UIHierarchyItems, ByVal FileName As String, ByRef SolutionExplorerPath As String) As Object
        For Each CurrentItem As UIHierarchyItem In Children
            Dim TypeName As String = Microsoft.VisualBasic.Information.TypeName(CurrentItem.Object)
            If TypeName = "ProjectItem" Then
                Dim projectitem As EnvDTE.ProjectItem = CType(CurrentItem.Object, EnvDTE.ProjectItem)
                Dim i As Integer = 1
                While i <= projectitem.FileCount
                    If projectitem.FileNames(i) = FileName Then
                        SolutionExplorerPath = CurrentItem.Name
                        Return CurrentItem
                    End If
                    i = i + 1
                End While
            End If

            Dim ChildItem As UIHierarchyItem = FindItem(CurrentItem.UIHierarchyItems, FileName, SolutionExplorerPath)
            If Not ChildItem Is Nothing Then
                SolutionExplorerPath = CurrentItem.Name + "\" + SolutionExplorerPath
                Return ChildItem
            End If
        Next
    End Function
End Module

Source originale aquí

3voto

user503386 Points 518

Dans Visual Studio 2010/2012, vous pouvez utiliser cette extension ( lien ). Il ajoute l'option de synchronisation sur la barre d'outils de l'explorateur de solutions et le menu contextuel du code.

3voto

cpoDesign Points 1996

Pour VS 2017, la configuration par défaut est la suivante :

CTRL + [,S

Et la liste complète des raccourcis se trouve ici :

http://visualstudioshortcuts.com/2017/

1voto

amirdaraee Points 49

Si j'ai bien compris votre question, vous pouvez aller dans Outils -> Options -> Projets et solutions -> Général et cocher l'option "Suivre l'élément actif dans l'explorateur de solutions".

0voto

Jim Aho Points 66

Sur mon clavier, je devais appuyer :

Ctrl + ` + S

Notez que le signe au milieu est la touche juste à gauche du retour arrière.

Utilisation de Visual Studio 2015.

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