zoukankan      html  css  js  c++  java
  • 编写VSIP扩展 折叠代码区域(region)

    private void OnCreateHiddenRegion(ExecuteEventArgs ea)
    {
         IVsHiddenTextSession Session 
    = 
    GetHiddenTextSession(DXCoreEngine.Source.Active);

         TextSpan Span 
    = new TextSpan();
         SourceRange Range 
    = DXCoreEngine.Source.Active.Range;
         Span.iStartLine 
    = Range.Start.Line - 1;
         Span.iStartIndex 
    = Range.Start.Offset - 1;
         Span.iEndLine 
    = Range.End.Line - 1;
         Span.iEndIndex 
    = Range.End.Offset - 1;

         IVsEnumHiddenRegions ExistingRegionsEnumerator 
    = null;
         Session.EnumHiddenRegions(
    00nullout ExistingRegionsEnumerator);
         
    uint ExistingCount = 0;
         ExistingRegionsEnumerator.GetCount(
    out ExistingCount);
         
    if (ExistingCount > 0)
         {
             IVsHiddenRegion[] ExistingRegions 
    = new 
    IVsHiddenRegion[ExistingCount];
             
    uint pcElFetched = 0;
             ExistingRegionsEnumerator.Next(ExistingCount, ExistingRegions, 
    out pcElFetched);

             
    foreach (IVsHiddenRegion Canidate in ExistingRegions)
             {
                 TextSpan[] SpanRetrieverArra1 
    = new TextSpan[1];
                 Canidate.GetSpan(SpanRetrieverArra1);
                 TextSpan SpanCanidate 
    = SpanRetrieverArra1[0];
                 
    if ((SpanCanidate.iStartLine    == Span.iStartLine) &&
                     (SpanCanidate.iStartIndex   
    == Span.iStartIndex) &&
                     (SpanCanidate.iEndLine      
    == Span.iEndLine) &&
                     (SpanCanidate.iEndIndex     
    == Span.iEndIndex))
                 {
                     Canidate.Invalidate(
    0);
                     
    return;
                 }
             }
         }

         
    string Banner = 
    DXCoreEngine.Documents.ActiveTextDocument.GetLine(Range.Start.Line);
         Banner 
    = Banner.TrimStart();
         Banner 
    = Banner.TrimEnd();

         NewHiddenRegion[] NewHiddenRegionArray 
    = new NewHiddenRegion[1];
         NewHiddenRegionArray[
    0].dwBehavior = 1;
         NewHiddenRegionArray[
    0].dwClient = 0x2cff;
         NewHiddenRegionArray[
    0].dwState = 0;
         NewHiddenRegionArray[
    0].iType = 1;
         NewHiddenRegionArray[
    0].pszBanner = Banner;
         NewHiddenRegionArray[
    0].tsHiddenText = Span;

         Session.AddHiddenRegions(
    01, NewHiddenRegionArray, null);
    }
  • 相关阅读:
    Struts2.1.8 + Spring3.0+ Hibernate3.2整合笔记
    SSH整合之_架构的历史序列图
    Spring整合Hibernate笔记
    Oracle日志文件的管理与查看
    java调用Oracle存储存储过程
    Oracle PLSQL笔记(过程的创建和及调用)
    使用 Spring 2.5 TestContext 测试DAO层
    SpringBoot 启动慢的解决办法
    C++ CEF 浏览器中显示 Tooltip(标签中的 title 属性)
    Chromium CEF 2623 -- 支持 xp 的最后一个版本源码下载和编译步骤
  • 原文地址:https://www.cnblogs.com/jintan/p/1515838.html
Copyright © 2011-2022 走看看