[英]Collapsed regions in Visual Studio
我正在做一個Visual Studio擴展,它包含編輯器邊距,它顯示每個代碼行的注釋和按行號鏈接的數據。
當我的代碼有折疊區域(函數,代碼塊或區域)時,我得到的行號不正確。
如何計算折疊的線條? 或者更簡單地說,如何展開所有折疊的塊並禁用折疊按鈕?
我找到了解決方案
Dim _outliningManager As Outlining.IOutliningManager
Dim _oldCollapsedRegions As List(Of ICollapsed)
'Getting access to ServiceProvider
<Import>
Dim ServiceProvider As SVsServiceProvider
'Getting IOutliningManagerService object
Dim componentModel As IComponentModel = ServiceProvider.GetService(GetType(SComponentModel))
Dim outliningManagerService As IOutliningManagerService = componentModel.GetService(Of IOutliningManagerService)()
'Creating IOutliningManager for current textView
If outliningManagerService IsNot Nothing Then
_outliningManager = outliningManagerService.GetOutliningManager(textView)
If _outliningManager IsNot Nothing Then AddHandler _outliningManager.RegionsCollapsed, AddressOf RegionCollapsed
End If
'Getting all regions and expand them
If _outliningManager IsNot Nothing Then
Dim snapshot = _textView.TextSnapshot
Dim snapshotSpan = New Microsoft.VisualStudio.Text.SnapshotSpan(snapshot, New Microsoft.VisualStudio.Text.Span(0, snapshot.Length))
_oldCollapsedRegions = _outliningManager.GetCollapsedRegions(snapshotSpan).ToList()
For Each reg In _oldCollapsedRegions
_outliningManager.Expand(reg)
Next
End If
'Blocking regions collapsed
Sub RegionCollapsed(sender As Object, e As RegionsCollapsedEventArgs)
If Me.Visibility = Windows.Visibility.Visible Then
For Each reg In e.CollapsedRegions
_outliningManager.Expand(reg)
Next
End If
End Sub
需要參考:microsoft.visualstudio.shell.immutable.10.0,Microsoft.VisualStudio.ComponentModelHost,當然,Microsoft.VisualStudio.Text
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.