internal void Create(HtmlEditorDocument document, IVsContainedLanguage containedLanguage, IVsTextBufferCoordinator bufferCoordinator, LanguageProjectionBuffer languageBuffer, out IVsTextViewFilter containedLanguageViewfilter) { containedLanguageViewfilter = null; TextViewData textViewDataForBuffer = TextViewConnectionListener.GetTextViewDataForBuffer(document.TextBuffer); if (textViewDataForBuffer == null || textViewDataForBuffer.LastActiveView == null) { return; } TextView = textViewDataForBuffer.LastActiveView; IVsTextViewIntellisenseHostProvider vsTextViewIntellisenseHostProvider = TextView.QueryInterface <IVsTextViewIntellisenseHostProvider>(); if (vsTextViewIntellisenseHostProvider == null) { return; } Guid gUID = typeof(IVsTextViewIntellisenseHost).GUID; IntPtr intPtr; vsTextViewIntellisenseHostProvider.CreateIntellisenseHost(bufferCoordinator, ref gUID, out intPtr); if (intPtr == IntPtr.Zero) { return; } IVsTextViewIntellisenseHost vsTextViewIntellisenseHost = Marshal.GetObjectForIUnknown(intPtr) as IVsTextViewIntellisenseHost; Marshal.Release(intPtr); if (vsTextViewIntellisenseHost == null) { return; } HtmlMainController htmlMainController = HtmlMainController.FromTextView(TextView); ICommandTarget chainedController = htmlMainController.ChainedController; if (chainedController == null) { return; } OleToCommandTargetShim oleToCommandTargetShim = chainedController as OleToCommandTargetShim; if (containedLanguage.GetTextViewFilter(vsTextViewIntellisenseHost, oleToCommandTargetShim.OleTarget, out containedLanguageViewfilter) != 0) { return; } IOleCommandTarget oleTarget = containedLanguageViewfilter as IOleCommandTarget; OleToCommandTargetShim containedLanguageTarget = new OleToCommandTargetShim(TextView, oleTarget); ContainedLanguageTarget = containedLanguageTarget; _languageBuffer = languageBuffer; _languageBuffer.MappingsChanged += OnMappingsChanged; }
public int GetLanguage(IVsHierarchy pHierarchy, uint itemid, IVsTextBufferCoordinator pBufferCoordinator, out IVsContainedLanguage ppLanguage) { ModuleId id = new ModuleId(pHierarchy, itemid); NemerleContainedLanguage lang; if (!languages.TryGetValue(id, out lang)) { lang = new NemerleContainedLanguage(pBufferCoordinator, intellisenseProject, itemid, pHierarchy); languages.Add(id, lang); } ppLanguage = lang; return VSConstants.S_OK; }
public int GetLanguage( IVsHierarchy hierarchy, uint itemid, IVsTextBufferCoordinator bufferCoordinator, out IVsContainedLanguage language ) { var project = FindMatchingProject(hierarchy, itemid); if (project == null) { language = null; return(VSConstants.E_INVALIDARG); } language = CreateContainedLanguage(bufferCoordinator, project, hierarchy, itemid); return(VSConstants.S_OK); }
internal void Create(HtmlEditorDocument document, IVsContainedLanguage containedLanguage, IVsTextBufferCoordinator bufferCoordinator, LanguageProjectionBuffer languageBuffer, out IVsTextViewFilter containedLanguageViewfilter) { containedLanguageViewfilter = null; TextViewData textViewDataForBuffer = TextViewConnectionListener.GetTextViewDataForBuffer(document.TextBuffer); if (textViewDataForBuffer == null || textViewDataForBuffer.LastActiveView == null) return; TextView = textViewDataForBuffer.LastActiveView; IVsTextViewIntellisenseHostProvider vsTextViewIntellisenseHostProvider = TextView.QueryInterface<IVsTextViewIntellisenseHostProvider>(); if (vsTextViewIntellisenseHostProvider == null) return; Guid gUID = typeof(IVsTextViewIntellisenseHost).GUID; IntPtr intPtr; vsTextViewIntellisenseHostProvider.CreateIntellisenseHost(bufferCoordinator, ref gUID, out intPtr); if (intPtr == IntPtr.Zero) return; IVsTextViewIntellisenseHost vsTextViewIntellisenseHost = Marshal.GetObjectForIUnknown(intPtr) as IVsTextViewIntellisenseHost; Marshal.Release(intPtr); if (vsTextViewIntellisenseHost == null) return; HtmlMainController htmlMainController = HtmlMainController.FromTextView(TextView); ICommandTarget chainedController = htmlMainController.ChainedController; if (chainedController == null) return; OleToCommandTargetShim oleToCommandTargetShim = chainedController as OleToCommandTargetShim; if (containedLanguage.GetTextViewFilter(vsTextViewIntellisenseHost, oleToCommandTargetShim.OleTarget, out containedLanguageViewfilter) != 0) return; IOleCommandTarget oleTarget = containedLanguageViewfilter as IOleCommandTarget; OleToCommandTargetShim containedLanguageTarget = new OleToCommandTargetShim(TextView, oleTarget); ContainedLanguageTarget = containedLanguageTarget; _languageBuffer = languageBuffer; _languageBuffer.MappingsChanged += OnMappingsChanged; }
private void InitContainedLanguage() { IVsTextLines vsTextLines = EnsureBufferCoordinator(); IVsContainedLanguage vsContainedLanguage; languageFactory.GetLanguage(hierarchy, MarkdownCodeProject.FileItemId, _textBufferCoordinator, out vsContainedLanguage); if (vsContainedLanguage == null) { Logger.Log("Markdown: Couldn't get IVsContainedLanguage for " + ProjectionBuffer.IProjectionBuffer.ContentType); return; } Guid langService; vsContainedLanguage.GetLanguageServiceID(out langService); vsTextLines.SetLanguageServiceID(ref langService); containedLanguage = vsContainedLanguage; IVsContainedLanguageHost legacyContainedLanguageHost = GetLegacyContainedLanguageHost(); vsContainedLanguage.SetHost(legacyContainedLanguageHost); _legacyCommandTarget = new LegacyContainedLanguageCommandTarget(); IVsTextViewFilter textViewFilter; _legacyCommandTarget.Create(owner.Document, vsContainedLanguage, _textBufferCoordinator, ProjectionBuffer, out textViewFilter); IWebContainedLanguageHost webContainedLanguageHost = legacyContainedLanguageHost as IWebContainedLanguageHost; webContainedLanguageHost.SetContainedCommandTarget(_legacyCommandTarget.TextView, _legacyCommandTarget.ContainedLanguageTarget); containedLanguage2 = (webContainedLanguageHost as IContainedLanguageHostVs); containedLanguage2.TextViewFilter = textViewFilter; ProjectionBuffer.ResetMappings(); WebEditor.TraceEvent(1005); }
public int GetLanguage(IVsHierarchy pHierarchy, uint itemid, IVsTextBufferCoordinator pBufferCoordinator, out IVsContainedLanguage ppLanguage) { ModuleId id = new ModuleId(pHierarchy, itemid); PythonContainedLanguage lang; if (!languages.TryGetValue(id, out lang)) { lang = new PythonContainedLanguage(pBufferCoordinator, intellisenseProject, itemid); languages.Add(id, lang); } ppLanguage = lang; return(VSConstants.S_OK); }