Example #1
0
 public CodeLineModel(DiffLineKind kind, CodeLine codeLine, CommentThreadModel commentThread, CodeDiagnostic[] diagnostics)
 {
     CodeLine      = codeLine;
     CommentThread = commentThread;
     Diagnostics   = diagnostics;
     Kind          = kind;
 }
Example #2
0
        private static IEnumerable <DiffLine> FixupCloseBraces(IEnumerable <DiffLine> lines, CancellationToken cancellationToken)
        {
            var startLineStack = new Stack <DiffLine>();

            foreach (var diffLine in lines)
            {
                cancellationToken.ThrowIfCancellationRequested();

                int      braceDelta = GetBraceDelta(diffLine);
                DiffLine result     = diffLine;

                for (var i = braceDelta; i > 0; i--)
                {
                    startLineStack.Push(diffLine);
                }

                for (var i = braceDelta; i < 0 && startLineStack.Count > 0; i++)
                {
                    DiffLine     startLine     = startLineStack.Pop();
                    DiffLineKind fixedLineKind = startLine.Kind;
                    if (result.Kind != fixedLineKind)
                    {
                        result = new DiffLine(fixedLineKind, diffLine.Tokens);
                    }
                }

                yield return(result);
            }
        }
Example #3
0
        private static IEnumerable <DiffLine> GetLines(IEnumerable <DiffToken> tokens, CancellationToken cancellationToken)
        {
            var lines             = new List <DiffLine>();
            var currentLineTokens = new List <DiffToken>();

            foreach (var diffToken in tokens)
            {
                cancellationToken.ThrowIfCancellationRequested();

                if (diffToken.Kind != DiffTokenKind.LineBreak)
                {
                    currentLineTokens.Add(diffToken);
                }
                else
                {
                    DiffLineKind kind = GetDiffLineKind(currentLineTokens);
                    var          line = new DiffLine(kind, currentLineTokens);
                    lines.Add(line);
                    currentLineTokens.Clear();
                }
            }

            // HACH: Fixup lines that only have closing brace but
            return(FixupCloseBraces(lines, cancellationToken));
        }
Example #4
0
 public CodeLineModel(DiffLineKind kind, CodeLine codeLine, CommentThreadModel commentThread, CodeDiagnostic[] diagnostics, int lineNumber)
 {
     CodeLine      = codeLine;
     CommentThread = commentThread;
     Diagnostics   = diagnostics;
     Kind          = kind;
     LineNumber    = lineNumber;
 }
 public InlineDiffLine(T line, DiffLineKind kind)
 {
     Line = line;
     Kind = kind;
 }
Example #6
0
 public DiffLine(DiffLineKind kind, IEnumerable <DiffToken> tokens)
 {
     Kind   = kind;
     Tokens = new ReadOnlyCollection <DiffToken>(tokens.ToArray());
 }