Отображение пути решения / файла в среде разработки Visual Studio

80

Я часто работаю с несколькими экземплярами Visual Studio, часто работая над разными ветвями одного и того же решения.

Visual C ++ 6.0 раньше отображал полный путь к текущему исходному файлу в строке заголовка, но Visual Studio 2005 этого не делает. Это немного затрудняет определение того, какую ветвь решения я просматриваю в данный момент (самый быстрый способ, о котором я знаю, - это навести курсор на вкладку, чтобы получить путь к исходному файлу в виде всплывающей подсказки).

Есть ли способ получить полное решение или путь к файлу в строке заголовка или, по крайней мере, где-нибудь, что всегда видно, чтобы я мог быстро определить, какая ветка загружается в каждый экземпляр?

Джеймс Сазерленд
источник
11 лет и до сих пор нет в наличии: - /
joym8

Ответы:

24

Нет собственного способа сделать это, но вы можете добиться этого с помощью макроса. Подробности описаны здесь полностью: Как показать полный путь к файлу (или что-то еще) в строке заголовка VS 2005

Вам просто нужно добавить небольшой макрос Visual Basic в раздел макросов EvironmentEvents и перезапустить Visual Studio.

Примечание. Путь не будет отображаться при первой загрузке Visual Studio, но он будет отображаться всякий раз, когда вы изменяете просматриваемый файл. Вероятно, есть способ исправить это, но это не кажется большой проблемой.

Адам Хейл
источник
4
Путь к файлу в нижнем колонтитуле также является хорошим расширением
дан
1
@dan ... но съедает строчку внизу редактора (не в строке состояния (знаете, синяя меняется на оранжевый при отладке)). Учтите это, особенно для маленьких экранов и т. Д. В любом случае спасибо за указатель.
yO_
32

Это расширение доступно в онлайн-галерее, специально предназначенное для этой работы. Checkout Labs> Visual Studio Extension: Настройка Visual Studio Window Title .

Бруно Винисиус
источник
3
Потрясающе. Минималистичное расширение, которое просто работает. Конфигурация не требуется.
Erik Öjebo
4
Работает и в 2015 году
Дэнни Беккет
2
Работает и в 2017 году
irsis
1
Работает и в 2019 году. При желании повторно включите строку заголовка окна или просто наблюдайте за изменениями на панели задач. Проверено на v16.4.2.
Крис
17

Ознакомьтесь с последней версией VSCommands 2010 Lite . Он представил функцию под названием Friendly Solution Name, где вы можете настроить отображение пути к файлу решения (или любой его части) в заголовке главного окна Visual Studio.

Подробнее: http://vscommands.com/releasenotes/3.6.8.0 и http://vscommands.com/releasenotes/3.6.9.0

зарегистрированный пользователь
источник
версия vs2013: visualstudiogallery.msdn.microsoft.com/…
Simon_Weaver 01
Все ссылки (домен vscommands.com ) кажутся неработающими (время ожидания истекло).
Питер Мортенсен
Однако есть VSCommands для Visual Studio 2010 . Это то же самое?
Питер Мортенсен
5

Для Visual Studio 2008 немного лучший способ написать макрос из принятого ответа - использовать события решения вместо событий документа - это позволяет вам всегда редактировать строку заголовка, даже если у вас не выбран документ.

Вот макрос, который мы с коллегой создали на основе другого макроса - вам нужно изменить строки 15-18, чтобы вытащить имя ветки из исходного каталога, независимо от того, как вы настроены.

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
Дрю Миллер
источник
4

Это действительно неловко. Наведение на вкладку действительно одна из немногих полезных вещей.

Альтернатива: щелкните правой кнопкой мыши вкладку файла: найдите путь к файлу в Visual Studio . Похоже, мы тут причем тут.

Питер Мортенсен
источник
4

Как настроить заголовок окна Visual Studio

Установите плагин Customize Visual Studio Window Title .

После установки расширения настройки можно найти в меню.

Menu ToolsФункцииНастройка VS Window Title .

Больше информации

Настройка заголовка окна Visual Studio - это легкое расширение Visual Studio, которое позволяет изменять заголовок окна, чтобы включить в него дерево папок:

Введите описание изображения здесь

Особенности

  • Настраиваемое минимальное и максимальное расстояние по глубине от файла решения / проекта
  • Позволяет использовать специальные теги для помощи во многих других возможных сценариях, включая Git , Mercurial и TFS .
Ян Чживэй
источник
Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, как и / или почему он решает проблему, улучшит долгосрочную ценность ответа. Чтобы получить качественный ответ, прочтите эту инструкцию .
thewaywewere
3

Я использую VSCommands 10, чтобы показать полный путь к открытому файлу решения.

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

Теперь мое главное окно заголовка выглядит так:

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

Я могу быстро взглянуть и увидеть, что я работаю в папке trunk или в папке rc, потому что мы используем Mercurial (Hg) и храним отдельные папки для trunk, rc, preprod, prod следующим образом:

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
сверхлогичный
источник
Это то же самое, что и VSCommands для Visual Studio 2010 ?
Питер Мортенсен
2

Для людей, у которых метод VB не работает (например, я), вы можете использовать плагин:

Настроить заголовок окна Visual Studio

Он был протестирован в Visual Studio 2008 Ultimate. Вы можете настроить его в меню « Параметры» Visual Studio.

Лерой
источник
1

Примечание, связанное с данной: в качестве альтернативы для Visual Studio 2005 вы можете использовать меню команд ФайлРасширенные параметры сохранения . В диалоговом окне отображается полный путь к текущему файлу, и вы можете скопировать текст.

Питер Мортенсен
источник
1

Используйте команду MKLINK, чтобы создать ссылку на существующее решение. Что касается Visual Studio, она работает с файлом ссылки, но любые изменения относятся к базовому файлу .sln.

Я написал об этом запись в блоге ...

http://willissoftware.com/?p=72

Ли Уиллис
источник
Ссылка не работает ( «Мы не можем подключиться к серверу www.willissoftware.com.» ). Срок действия домена истек?
Питер Мортенсен
Этот ответ не очень полезен с неработающей ссылкой.
Питер Мортенсен
1

Если вы используете Visual Studio 2010 или более поздней версии, вы можете использовать расширение «Visual Studio Window Title Changer».

Установите его и используйте следующее выражение Window Title Setup для отображения пути решения:

'sln_dir + "/" + orig_title'

Используйте диспетчер расширений, чтобы загрузить и установить расширение. Подробную информацию о расширении и о том, как его использовать, можно найти здесь:

https://visualstudiogallery.msdn.microsoft.com/2e8ebfe4-023f-4c4d-9b7a-d05bbc5cb239?SRC=VSIDE

Муад'Диб
источник
1
Ссылка не работает (404).
Питер Мортенсен
0

TabsStudio | 49 долларов США

Это довольно хорошее (хотя и платное) расширение Visual Studio, которое предоставляет:

  • Группировка вкладок
  • Раскраска вкладок
  • Преобразование заголовка
  • Множество настроек и расширений

Скриншот Tabs Studio

Путь к файлу в нижнем колонтитуле | Свободный

Он отображает полный путь к файлу в нижней части окна редактора:

Путь к файлу на снимке экрана нижнего колонтитула

Почетное упоминание: код Visual Studio

В Visual Studio Code версии 1.26 реализованы хлебные крошки, которые отображают путь к файлу в отдельной строке в верхней части окна редактора при использовании вкладок или встраивают имя файла в собственном окне.

Скриншот Breadcrumbs кода Visual Studio

KyleMit
источник