c# – Visual Studio中的折叠区域
发布时间:2020-12-15 22:22:35 所属栏目:百科 来源:网络整理
导读:我正在做一个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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |