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);
    }
  • 相关阅读:
    Direct2D (6) : 绘制质量(设置抗锯齿模式)
    寂寞如此美丽:脱离Application_Start,让初始化代码更优美
    ASP.NET FormsAuthentication跨站点登录时绝对地址返回的问题
    将ASP.NET MVC中的form提交改为ajax提交
    WCF Web API 轻松实现 REST
    C# 正则表达式 —— 中文/英文空格(全角/半角空格)处理
    用 ASP.NET MVC 实现基于 XMLHttpRequest long polling(长轮询) 的 Comet
    [C#]科学计数法(scientific notation)显示为正常数字
    WCF异步调用实战:OneWay+Asynchronous Operation
    用 ASP.NET MVC 实现基于 Multipart XMLHttpRequest 的 Comet
  • 原文地址:https://www.cnblogs.com/jintan/p/1515838.html
Copyright © 2011-2022 走看看