Nitra.Visualizer.NitraFoldingStrategy.CreateNewFoldings C# (CSharp) Method

CreateNewFoldings() public method

public CreateNewFoldings ( TextDocument document, int &firstErrorOffset ) : IEnumerable
document ICSharpCode.AvalonEdit.Document.TextDocument
firstErrorOffset int
return IEnumerable
    public override IEnumerable<NewFolding> CreateNewFoldings(TextDocument document, out int firstErrorOffset)
    {
      var parseResult = ParseResult;
      if (parseResult == null)
      {
        firstErrorOffset = 0;
        return Enumerable.Empty<NewFolding>();
      }

      try
      {//parseResult.SourceSnapshot
        var timer = Stopwatch.StartNew();
        var outlining = new List<OutliningInfo>();
        parseResult.GetOutlining(outlining);
        TimeSpan = timer.Elapsed;

        var result = new List<NewFolding>();
        foreach (var o in outlining)
        {
          var newFolding = new NewFolding
          {
            DefaultClosed = o.IsDefaultCollapsed,
            StartOffset = o.Span.StartPos,
            EndOffset = o.Span.EndPos
          };
          result.Add(newFolding);
        }
        result.Sort((a, b) => a.StartOffset.CompareTo(b.StartOffset));

        firstErrorOffset = 0;
        return result;
      }
      catch (Exception ex)
      {
        Debug.WriteLine(ex.GetType().Name + ":" + ex.Message);
        firstErrorOffset = 0;
        return Enumerable.Empty<NewFolding>();
      }
    }
NitraFoldingStrategy