public void VsTextViewCreated(IVsTextView vsTextView) { if (vsTextView == null) { throw new ArgumentNullException(nameof(vsTextView)); } if (ErrorHandler.Failed(vsTextView.GetBuffer(out var textLines))) { return; } IVsUserData userData = textLines as IVsUserData; if (userData == null) { return; } Guid monikerGuid = typeof(IVsUserData).GUID; if (ErrorHandler.Failed(userData.GetData(ref monikerGuid, out var monikerObj))) { return; } string filePath = monikerObj as string; _rdt.Value.FindDocument(filePath, out var hierarchy, out var itemId, out var docCookie); AbstractProject project = GetXamlProject(hierarchy); if (project == null) { project = new XamlProject( _vsWorkspace.GetProjectTrackerAndInitializeIfNecessary(_serviceProvider), hierarchy, _serviceProvider, _vsWorkspace); } IVisualStudioHostDocument vsDocument = project.GetCurrentDocumentFromPath(filePath); if (vsDocument == null) { if (!TryCreateXamlDocument(project, filePath, out vsDocument)) { return; } project.AddDocument(vsDocument, isCurrentContext: true, hookupHandlers: true); } AttachRunningDocTableEvents(); var wpfTextView = _editorAdaptersFactory.GetWpfTextView(vsTextView); var target = new XamlOleCommandTarget(wpfTextView, CommandHandlerServiceFactory, _editorAdaptersFactory, _serviceProvider); target.AttachToVsTextView(); }
public void VsTextViewCreated(IVsTextView vsTextView) { if (vsTextView == null) { throw new ArgumentNullException(nameof(vsTextView)); } if (ErrorHandler.Failed(vsTextView.GetBuffer(out var textLines))) { return; } IVsUserData userData = textLines as IVsUserData; if (userData == null) { return; } Guid monikerGuid = typeof(IVsUserData).GUID; if (ErrorHandler.Failed(userData.GetData(ref monikerGuid, out var monikerObj))) { return; } string filePath = monikerObj as string; _rdt.Value.FindDocument(filePath, out var hierarchy, out var itemId, out var docCookie); if (hierarchy == null) { return; } VisualStudioProject project; if (!_xamlProjects.TryGetValue(hierarchy, out project)) { string name; hierarchy.TryGetName(out name); project = _visualStudioProjectFactory.CreateAndAddToWorkspace(name + "-XamlProject", StringConstants.XamlLanguageName); _xamlProjects.Add(hierarchy, project); } if (!project.ContainsSourceFile(filePath)) { project.AddSourceFile(filePath); } AttachRunningDocTableEvents(); var wpfTextView = _editorAdaptersFactory.GetWpfTextView(vsTextView); var target = new XamlOleCommandTarget(wpfTextView, CommandHandlerServiceFactory, _editorAdaptersFactory, _serviceProvider); target.AttachToVsTextView(); }
public void TextViewCreated(IWpfTextView textView) { if (_serverUIContext.IsActive) { return; } if (textView == null) { throw new ArgumentNullException(nameof(textView)); } var filePath = textView.GetFilePath(); _projectService.TrackOpenDocument(filePath); var target = new XamlOleCommandTarget(textView, (IComponentModel)_serviceProvider.GetService(typeof(SComponentModel))); target.AttachToVsTextView(); }
public void VsTextViewCreated(IVsTextView vsTextView) { if (vsTextView == null) { throw new ArgumentNullException(nameof(vsTextView)); } IVsTextLines textLines; if (ErrorHandler.Failed(vsTextView.GetBuffer(out textLines))) { return; } IVsUserData userData = textLines as IVsUserData; if (userData == null) { return; } object monikerObj; Guid monikerGuid = typeof(IVsUserData).GUID; if (ErrorHandler.Failed(userData.GetData(ref monikerGuid, out monikerObj))) { return; } string filePath = monikerObj as string; uint itemId; uint docCookie; IVsHierarchy hierarchy; _rdt.Value.FindDocument(filePath, out hierarchy, out itemId, out docCookie); AbstractProject project = GetXamlProject(hierarchy); if (project == null) { project = new XamlProject(_vsWorkspace.ProjectTracker, hierarchy, _serviceProvider, _vsWorkspace); } IVisualStudioHostDocument vsDocument = project.GetCurrentDocumentFromPath(filePath); if (vsDocument == null) { if (!TryCreateXamlDocument(project, filePath, out vsDocument)) { return; } project.AddDocument(vsDocument, isCurrentContext: true, hookupHandlers: true); } AttachRunningDocTableEvents(); var wpfTextView = _editorAdaptersFactory.GetWpfTextView(vsTextView); var target = new XamlOleCommandTarget(wpfTextView, CommandHandlerServiceFactory, _editorAdaptersFactory, _serviceProvider); target.AttachToVsTextView(); }