void DictTreeDeferrer_Idle(object sender, BackgroundDeferrer.IdleEventArgs e) { try { ApplyDictTreeFilter(); } catch (Exception ex) { this.ShowError(ex); } }
void _defer_Idle(object sender, BackgroundDeferrer.IdleEventArgs e) { ThreadHelper.JoinableTaskFactory.RunAsync(async () => { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); Reparse(); var ev = TagsChanged; if (ev != null) ev(this, new SnapshotSpanEventArgs(new SnapshotSpan(_snapshot, 0, _snapshot.Length))); }); }
private void _backgroundFecDeferrer_Idle(object sender, BackgroundDeferrer.IdleEventArgs e) { ThreadHelper.JoinableTaskFactory.RunAsync(async() => { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); try { if (_model != null && _model.FileContext != FileContext.Include && ProbeEnvironment.CurrentAppSettings.FileExistsInApp(_model.FileName)) { if (ProbeToolsPackage.Instance.EditorOptions.RunBackgroundFecOnSave) { Compiler.BackgroundFec.Run(_model.FileName, _model.Snapshot.TextBuffer.CurrentSnapshot); } else { ErrorTaskProvider.Instance.RemoveAllForSource(ErrorTaskSource.BackgroundFec, _model.FileName); } if (ProbeToolsPackage.Instance.EditorOptions.RunCodeAnalysisOnSave) { var textBuffer = _model.Snapshot.TextBuffer; var fileStore = CodeModel.FileStore.GetOrCreateForTextBuffer(textBuffer); if (fileStore == null) { return; } var fileName = VsTextUtil.TryGetDocumentFileName(textBuffer); var preprocessedModel = fileStore.CreatePreprocessedModel(_model.AppSettings, fileName, textBuffer.CurrentSnapshot, false, "Background Code Analysis"); var ca = new CodeAnalysis.CodeAnalyzer(null, preprocessedModel); ca.Run(); } else { ErrorTaskProvider.Instance.RemoveAllForSource(ErrorTaskSource.CodeAnalysis, _model.FileName); } } } catch (Exception ex) { Log.WriteEx(ex); } }); }
private void WordSelectDeferrer_Idle(object sender, BackgroundDeferrer.IdleEventArgs e) { ThreadHelper.JoinableTaskFactory.RunAsync(async() => { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); var snapPt = (SnapshotPoint)e.Value; if (_sourceBuffer.CurrentSnapshot != snapPt.Snapshot) { Update(snapPt, null); return; } var snapshot = snapPt.Snapshot; var fileStore = CodeModel.FileStore.GetOrCreateForTextBuffer(_sourceBuffer); if (fileStore != null) { var appSettings = ProbeEnvironment.CurrentAppSettings; var fileName = VsTextUtil.TryGetDocumentFileName(_sourceBuffer); var model = fileStore.GetCurrentModel(appSettings, fileName, _sourceBuffer.CurrentSnapshot, "Word select idle"); var modelPos = model.AdjustPosition(snapPt); var caretToken = model.File.FindDownwardTouching(modelPos).LastOrDefault(t => t.SourceDefinition != null); if (caretToken == null) { Update(snapPt, null); return; } var sourceDef = caretToken.SourceDefinition; var file = model.File; var matchingTokens = file.FindDownward(t => t.SourceDefinition == sourceDef); var wordSpans = new NormalizedSnapshotSpanCollection(from t in matchingTokens select new SnapshotSpan(snapshot, VsTextUtil.ModelSpanToVsSnapshotSpan(model.Snapshot, t.Span, snapshot))); if (!wordSpans.Any()) { wordSpans = null; } Update(snapPt, wordSpans); } }); }