private EditorData MakeInitialEditorData(string handledModuleFile, CodeLocation caretLocation) { // if possible, keep the EditorData, especially resolution contexts EditorData editorData; uint modificationCount = _editorDataProvider.ModificationCount(); if (_editorData == null || _editorDataModificationCount != modificationCount) { editorData = _editorDataProvider.MakeEditorData(); } else { // wait for pending task to finish/cancel, so we do not access // the context from different threads try { if (_task != null) { _ = _task.Result; } } catch (TaskCanceledException) { } catch (AggregateException) { } editorData = _editorData; } editorData.CancelToken = _cancellation.Token; handledModuleFile = EditorDataProvider.normalizePath(handledModuleFile); var ast = _vdServer.GetModule(handledModuleFile); editorData.SyntaxTree = ast ?? throw new COMException("module not found", 1); editorData.ModuleCode = _vdServer._sources[handledModuleFile]; editorData.CaretLocation = caretLocation; editorData.CaretOffset = GetCodeOffset(editorData.ModuleCode, caretLocation); _editorData = editorData; _editorDataModificationCount = modificationCount; return(editorData); }
public IdentifierTypesGenerator(VDServer vdServer, EditorDataProvider editorDataProvider) : base(vdServer, editorDataProvider) { }
public ReferencesListGenerator(VDServer vdServer, EditorDataProvider editorDataProvider) : base(vdServer, editorDataProvider) { _vdServer = vdServer; }
public TooltipGenerator(VDServer vdServer, EditorDataProvider editorDataProvider) : base(vdServer, editorDataProvider) { }
protected AbstractVDServerTask(VDServer vdServer, EditorDataProvider editorDataProvider) { _vdServer = vdServer; _editorDataProvider = editorDataProvider; }
public SemanticExpansionsGenerator(VDServer vdServer, EditorDataProvider editorDataProvider) : base(vdServer, editorDataProvider) { }
public SymbolDefinitionGenerator(VDServer vdServer, EditorDataProvider editorDataProvider) : base(vdServer, editorDataProvider) { }