private void AnalysisUpdated(IAnalysisResult analysisResult, RescanReason reason, CancellationToken cancellationToken) { if (reason == RescanReason.ContentChanged) { ThreadHelper.JoinableTaskFactory.RunAsync(() => UpdateTagSpansAsync(analysisResult.Snapshot, analysisResult.Scopes, cancellationToken)); } }
private void UpdateFunctionList(IAnalysisResult analysisResult, RescanReason reason, CancellationToken cancellationToken) { if (reason == RescanReason.ContentChanged) { UpdateFunctionList(analysisResult, cancellationToken); } }
public void Rescan(RescanReason rescanReason, CancellationToken cancellationToken) { if (_tokenizer.CurrentResult == null) { return; } ForceRescan(_tokenizer.CurrentResult, rescanReason, cancellationToken); }
private void AnalysisUpdated(IAnalysisResult analysisResult, RescanReason reason, CancellationToken ct) { _analysisResult = analysisResult; if (reason != RescanReason.ContentChanged) { ClassificationChanged?.Invoke(this, new ClassificationChangedEventArgs(new SnapshotSpan(analysisResult.Snapshot, 0, analysisResult.Snapshot.Length))); } }
private void Rescan(ITokenizerResult tokenizerResult, RescanReason rescanReason, CancellationToken cancellationToken) { if (_resultsRequests.ContainsKey(tokenizerResult.Snapshot)) { return; } _resultsRequests.Add(tokenizerResult.Snapshot, RunAnalysisAsync(tokenizerResult, rescanReason, cancellationToken)); }
private void AnalysisUpdated(IAnalysisResult analysisResult, RescanReason reason, CancellationToken ct) { if (reason != RescanReason.ContentChanged) { return; } _currentResult = analysisResult; UpdateIndentGuides(); }
private async Task <IAnalysisResult> RunParserAsync(ITokenizerResult tokenizerResult, RescanReason reason, CancellationToken cancellationToken) { // TODO: for the future "GoTo include" feature var includes = new List <IDocument>(); try { var parserResult = await _parser.RunAsync(_document, tokenizerResult.Snapshot, tokenizerResult.Tokens, cancellationToken); var analysisResult = new AnalysisResult(_document, parserResult, includes, tokenizerResult.Snapshot); CurrentResult = analysisResult; AnalysisUpdated?.Invoke(analysisResult, reason, cancellationToken); return(analysisResult); } catch (AggregateException /* tokenizer changed but plinq haven't checked CancellationToken yet */) { throw new OperationCanceledException(); } }
private Task <IAnalysisResult> RunAnalysisAsync(ITokenizerResult tokenizerResult, RescanReason reason, CancellationToken cancellationToken) => Task.Run(() => RunParserAsync(tokenizerResult, reason, cancellationToken), cancellationToken);
private void ForceRescan(ITokenizerResult tokenizerResult, RescanReason rescanReason, CancellationToken cancellationToken) { _resultsRequests.Remove(tokenizerResult.Snapshot); _resultsRequests.Add(tokenizerResult.Snapshot, RunAnalysisAsync(tokenizerResult, rescanReason, cancellationToken)); }
private void UpdateErrorMarker(IAnalysisResult analysisResult, RescanReason rescanReason, CancellationToken cancellationToken) => Task.Run(() => UpdateSpanAdornments(analysisResult, cancellationToken), cancellationToken);