public CodeLineModel(DiffLineKind kind, CodeLine codeLine, CommentThreadModel commentThread, CodeDiagnostic[] diagnostics) { CodeLine = codeLine; CommentThread = commentThread; Diagnostics = diagnostics; Kind = kind; }
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); } }
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)); }
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; }
public DiffLine(DiffLineKind kind, IEnumerable <DiffToken> tokens) { Kind = kind; Tokens = new ReadOnlyCollection <DiffToken>(tokens.ToArray()); }