Я пытался (без особой удачи) написать макрос для Visual Studio 2008, который будет сортировать открытые файлы .cpp и .h в две группы вкладок, размещая заголовки в левой группе вкладок и файлы .cpp справа. Мне бы хотелось иметь эту функцию из-за количества времени, которое я трачу, перемещая свои вкладки, чтобы я мог видеть обе части класса, над которым я работаю. Я знаю, что существует несвободная надстройка для Visual Studio, которая позволяет управлять вкладками, но она конфликтует с надстройкой, которую мне нужно использовать для работы, поэтому на данный момент мой макрос - лучший вариант.
Я уверен, что это можно применить и к другим макетам, а также к сортировке, если я смогу заставить ее работать. Я думал, чтобы сортировка выполнялась автоматически каждый раз, когда я открываю окно документа, поэтому я создал макрос Visual Basic в разделе событий среды в Visual Studio Macro IDE. Ниже приведен код, который у меня есть:
Public Sub keepHeaderAndCxxInDifferentTabs() Handles WindowEvents.WindowCreated
Dim openedFile As String
openedFile = ActiveWindow.Document.FullName
If openedFile.Contains(".h") Then
' if the file being opened is a header file make sure it appears on the left
If DTE.ActiveDocument.ActiveWindow.Left > 600 Then
DTE.ExecuteCommand("Window.MovetoNextTabGroup")
End If
ElseIf openedFile.Contains(".cpp") Then
' if the file being opened is a cpp file make sure it appears on the right
If DTE.ActiveDocument.ActiveWindow.Left < 250 Then
DTE.ExecuteCommand("Window.MovetoNextTabGroup")
End If
Else
' if the file being opened is anything else make sure it appears on the right
If DTE.ActiveDocument.ActiveWindow.Left < 250 Then
DTE.ExecuteCommand("Window.MovetoNextTabGroup")
End If
End If
End Sub
К сожалению, этот макрос в настоящее время ничего не делает. Мое лучшее предположение состояло в том, что я мог использовать свойство «Left» активного окна, чтобы выяснить, в какой группе вкладок появилось новое окно, а затем переместить окно в следующую группу вкладок, если оно не там, где я хочу его видеть. Я испробовал ряд различных значений для свойства 'Left', но пока ни одна из моих вкладок не перемещается.
Кто-нибудь знает, что я сделал не так или есть предложения? Заранее спасибо за ваше время.