public DocumentAnalysis(IDocument document, IDocumentTokenizer tokenizer, IParser parser)
        {
            _document        = document;
            _tokenizer       = tokenizer;
            _parser          = parser;
            _resultsRequests = new OrderedFixedSizeDictionary <ITextSnapshot, Task <IAnalysisResult> >(10);

            tokenizer.TokenizerUpdated += TokenizerUpdated;
            TokenizerUpdated(tokenizer.CurrentResult, CancellationToken.None);
        }
 public LocalThreadWorkerNodesLifecycleManager(IMessageHub messageHub, IMessageSink messageSink,
                                               IDocumentTokenizer documentTokenizer, IWeightNormalizer weightNormalizer,
                                               ISimilarityComparer similarityComparer, Options options)
 {
     this.messageHub         = messageHub ?? throw new ArgumentNullException(nameof(messageHub));
     this.messageSink        = messageSink ?? throw new ArgumentNullException(nameof(messageSink));
     this.documentTokenizer  = documentTokenizer ?? throw new ArgumentNullException(nameof(documentTokenizer));
     this.weightNormalizer   = weightNormalizer ?? throw new ArgumentNullException(nameof(weightNormalizer));
     this.similarityComparer = similarityComparer ?? throw new ArgumentNullException(nameof(similarityComparer));
     this.options            = options ?? throw new ArgumentNullException(nameof(options));
 }
Exemple #3
0
        internal BraceHighlighter(ITextView view, ITextBuffer sourceBuffer, IDocumentTokenizer documentTokenizer)
        {
            _view      = view;
            _buffer    = sourceBuffer;
            _tokenizer = documentTokenizer;

            wordSpans   = new NormalizedSnapshotSpanCollection();
            indentCts   = new CancellationTokenSource();
            currentWord = null;

            _view.Caret.PositionChanged += CaretPositionChanged;
            _view.LayoutChanged         += ViewLayoutChanged;
        }
        public LocalThreadWorkerNode(int id, IMessageHub messageHub, IMessageSink messageSink,
                                     IDocumentTokenizer documentTokenizer, IWeightNormalizer weightNormalizer,
                                     ISimilarityComparer similarityComparer)
        {
            Id = id;

            this.messageHub         = messageHub ?? throw new ArgumentNullException(nameof(messageHub));
            this.messageSink        = messageSink ?? throw new ArgumentNullException(nameof(messageSink));
            this.documentTokenizer  = documentTokenizer ?? throw new ArgumentNullException(nameof(documentTokenizer));
            this.weightNormalizer   = weightNormalizer ?? throw new ArgumentNullException(nameof(weightNormalizer));
            this.similarityComparer = similarityComparer ?? throw new ArgumentNullException(nameof(similarityComparer));

            workIsDoneTCS = new TaskCompletionSource <int>();

            assignments = messageHub.WorkAssignemnts
                          .Where(assignment => assignment.NodeId == id);
        }
Exemple #5
0
        private static string TryGetDescriptionToTheRight(IDocumentTokenizer tokenizer, ITokenizerResult tokenizerResult, SnapshotPoint tokenEnd)
        {
            var currentLine        = tokenEnd.GetContainingLine();
            var currentLineComment = tokenizerResult
                                     .GetTokens(new Span(tokenEnd, currentLine.End - tokenEnd))
                                     .Where(t => tokenizer.IsTypeOf(t.Type, RadAsmTokenType.Comment))
                                     .ToList();

            if (currentLineComment.Count == 0)
            {
                return(null);
            }

            var text = currentLineComment
                       .First()
                       .GetText(tokenEnd.Snapshot);

            return(GetCommentText(text));
        }
Exemple #6
0
        private static string TryGetDescriptionAbove(IDocumentTokenizer tokenizer, ITokenizerResult tokenizerResult, SnapshotPoint tokenEnd)
        {
            var lines             = new LinkedList <string>();
            var currentLineNumber = tokenEnd.GetContainingLine().LineNumber - 1;
            var snapshot          = tokenEnd.Snapshot;

            while (currentLineNumber >= 0)
            {
                var currentLine        = snapshot.GetLineFromLineNumber(currentLineNumber);
                var currentLineComment = tokenizerResult
                                         .GetTokens(new Span(currentLine.Start, currentLine.Length))
                                         .ToList();

                // if there are some other tokens, then the comment ended
                if (currentLineComment.Any(t =>
                                           !tokenizer.IsTypeOf(t.Type, RadAsmTokenType.Comment) &&
                                           !tokenizer.IsTypeOf(t.Type, RadAsmTokenType.Whitespace)))
                {
                    break;
                }

                currentLineComment.RemoveAll(t =>
                                             tokenizer.IsTypeOf(t.Type, RadAsmTokenType.Whitespace));

                if (currentLineComment.Count != 1)
                {
                    break;
                }

                var trackingToken = currentLineComment.First();
                var tokenSpan     = new SnapshotSpan(snapshot, trackingToken.GetSpan(snapshot));
                var tokenText     = GetCommentText(tokenSpan.GetText());

                lines.AddFirst(tokenText);
                currentLineNumber = tokenSpan.Start.GetContainingLine().LineNumber - 1;
            }

            return(lines.Count != 0
                ? string.Join(System.Environment.NewLine, lines)
                : null);
        }
 public PositionalIndex(IDocumentTokenizer<string> tokenizer)
 {
     _tokenizer = tokenizer;
 }
Exemple #8
0
 public TokenizerClassifier(IDocumentTokenizer tokenizer)
 {
     _tokenizer = tokenizer;
     _tokenizer.TokenizerUpdated += TokenizerUpdated;
     TokenizerUpdated(_tokenizer.CurrentResult, CancellationToken.None);
 }
Exemple #9
0
 private static bool IsTypeOf(this IDocumentTokenizer tokenizer, int tokenType,
                              RadAsmTokenType targetTokenType) =>
 tokenizer.GetTokenType(tokenType) == targetTokenType;