Example #1
0
 public CompletionSource(ITextBuffer textBuffer, NodejsClassifier classifier, IServiceProvider serviceProvider, IGlyphService glyphService)
 {
     _textBuffer      = textBuffer;
     _classifier      = classifier;
     _serviceProvider = serviceProvider;
     _glyphService    = glyphService;
 }
Example #2
0
        internal static IEnumerator <ClassificationSpan> ReverseClassificationSpanEnumerator(NodejsClassifier classifier, SnapshotPoint startPoint)
        {
            var startLine = startPoint.GetContainingLine();
            int curLine   = startLine.LineNumber;
            var tokens    = classifier.GetClassificationSpans(new SnapshotSpan(startLine.Start, startPoint));

            for (; ;)
            {
                for (int i = tokens.Count - 1; i >= 0; i--)
                {
                    yield return(tokens[i]);
                }

                // indicate the line break
                yield return(null);

                curLine--;
                if (curLine >= 0)
                {
                    var prevLine = startPoint.Snapshot.GetLineFromLineNumber(curLine);
                    tokens = classifier.GetClassificationSpans(prevLine.Extent);
                }
                else
                {
                    break;
                }
            }
        }