int IVsImmediateStatementCompletion2.GetFilter(IVsTextView textView, out IVsTextViewFilter filter) { // They never even call this, so just make it compile Debug.Assert(false); filter = null; return(VSConstants.S_OK); }
public int GetTextViewFilter( IVsIntellisenseHost intellisenseHost, IOleCommandTarget nextCmdTarget, out IVsTextViewFilter textViewFilter) { var wpfTextView = GetViewFromIVsIntellisenseHost(intellisenseHost); if (wpfTextView == null) { textViewFilter = null; return(VSConstants.E_FAIL); } textViewFilter = new VenusCommandFilter(wpfTextView, SubjectBuffer, nextCmdTarget, ComponentModel); return(VSConstants.S_OK); }
public int GetTextViewFilter( IVsIntellisenseHost intellisenseHost, IOleCommandTarget nextCmdTarget, out IVsTextViewFilter textViewFilter) { var wpfTextView = GetViewFromIVsIntellisenseHost(intellisenseHost); if (wpfTextView == null) { textViewFilter = null; return(VSConstants.E_FAIL); } textViewFilter = new VenusCommandFilter <TPackage, TLanguageService>(_languageService, wpfTextView, SubjectBuffer, nextCmdTarget, _editorAdaptersFactoryService); 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; }
public int GetTextViewFilter(IVsIntellisenseHost pISenseHost, IOleCommandTarget pNextCmdTarget, out IVsTextViewFilter pTextViewFilter) { IVsTextLines buffer; ErrorHandler.ThrowOnFailure(bufferCoordinator.GetSecondaryBuffer(out buffer)); bool doOutlining = LanguageService.Preferences.AutoOutlining; LanguageService.Preferences.AutoOutlining = false; PythonSource source = LanguageService.CreateSource(buffer) as PythonSource; LanguageService.Preferences.AutoOutlining = doOutlining; CodeWindowManager windowMgr = LanguageService.CreateCodeWindowManager(null, source); language.AddCodeWindowManager(windowMgr); TextViewWrapper view = new TextViewWrapper(languageHost, pISenseHost, bufferCoordinator, pNextCmdTarget); windowMgr.OnNewView(view); language.AddSpecialSource(source, view); pTextViewFilter = view.InstalledFilter; PythonViewFilter pythonFilter = pTextViewFilter as PythonViewFilter; if (null != pythonFilter) { pythonFilter.BufferCoordinator = this.bufferCoordinator; } return VSConstants.S_OK; }
public int GetTextViewFilter(IVsIntellisenseHost pISenseHost, IOleCommandTarget pNextCmdTarget, out IVsTextViewFilter pTextViewFilter) { IVsTextLines buffer; ErrorHandler.ThrowOnFailure(bufferCoordinator.GetSecondaryBuffer(out buffer)); bool doOutlining = LanguageService.Preferences.AutoOutlining; LanguageService.Preferences.AutoOutlining = false; PythonSource source = LanguageService.CreateSource(buffer) as PythonSource; LanguageService.Preferences.AutoOutlining = doOutlining; CodeWindowManager windowMgr = LanguageService.CreateCodeWindowManager(null, source); language.AddCodeWindowManager(windowMgr); TextViewWrapper view = new TextViewWrapper(languageHost, pISenseHost, bufferCoordinator, pNextCmdTarget); windowMgr.OnNewView(view); language.AddSpecialSource(source, view); pTextViewFilter = view.InstalledFilter; PythonViewFilter pythonFilter = pTextViewFilter as PythonViewFilter; if (null != pythonFilter) { pythonFilter.BufferCoordinator = this.bufferCoordinator; } 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; }
public int GetTextViewFilter(IVsIntellisenseHost pISenseHost, IOleCommandTarget pNextCmdTarget, out IVsTextViewFilter pTextViewFilter) { pTextViewFilter = null; IVsTextLines buffer; ErrorHandler.ThrowOnFailure(bufferCoordinator.GetSecondaryBuffer(out buffer)); var secondaryFilePath = FilePathUtilities.GetFilePath(buffer); if (secondaryFilePath == null) { secondaryFilePath = NemerleSource.GetStubFileForSecondaryBuffer(buffer); } var secondaryFileIndex = Location.GetFileIndex(secondaryFilePath); var primaryFileindex = Location.GetFileIndex(_filePath); bool doOutlining = LanguageService.Preferences.AutoOutlining; LanguageService.Preferences.AutoOutlining = false; if (_projectInfo != null && LanguageService.GetSource(buffer) == null) { // создаем и регистрируем в проекте временный source, чтобы не сломалась логика // конструктора NemerleSource (см вызов LanguageService.AddEditableSource) //_projectInfo.ReplaseOrAddSource(new FileNemerleSource(secondaryFileIndex)); _projectInfo.AddEditableSource((NemerleSource)LanguageService.CreateSource(buffer)); } NemerleSource source = LanguageService.GetOrCreateSource(buffer) as NemerleSource; source.SetBufferCoordinator(bufferCoordinator); if (_projectInfo != null) { _projectInfo.Engine.RequestOnBuildTypesTree(); } LanguageService.Preferences.AutoOutlining = doOutlining; _windowManager = LanguageService.CreateCodeWindowManager(null, source); language.AddCodeWindowManager(_windowManager); // увеличиваем внутренний счетчик openCount, для того чтобы впоследствии корректно отработала логика закрытия соурса source.Open(); TextViewWrapper view = new TextViewWrapper(languageHost, pISenseHost, bufferCoordinator, pNextCmdTarget, source); _windowManager.OnNewView(view); pTextViewFilter = view.InstalledFilter; NemerleViewFilter nemerleFilter = pTextViewFilter as NemerleViewFilter; if (null != nemerleFilter) { nemerleFilter.BufferCoordinator = this.bufferCoordinator; } // сохраним значение DocumentEvents в переменной класса, чтобы исключить преждевременное уничтожение // объекта и автоматическоей отписывание от событий. // // Источник решения: // PRB: Visual Studio .NET events being disconnected from add-in (http://www.mztools.com/articles/2005/mz2005012.aspx) _documentEvents = _projectItem.DTE.Events.get_DocumentEvents(_projectItem.Document); _documentEvents.DocumentClosing += _documentClosingEventHandler; return(VSConstants.S_OK); }
public int GetTextViewFilter(IVsIntellisenseHost pISenseHost, IOleCommandTarget pNextCmdTarget, out IVsTextViewFilter pTextViewFilter) { pTextViewFilter = null; IVsTextLines buffer; ErrorHandler.ThrowOnFailure(bufferCoordinator.GetSecondaryBuffer(out buffer)); var secondaryFilePath = FilePathUtilities.GetFilePath(buffer); if (secondaryFilePath == null) secondaryFilePath = NemerleSource.GetStubFileForSecondaryBuffer(buffer); var secondaryFileIndex = Location.GetFileIndex(secondaryFilePath); var primaryFileindex = Location.GetFileIndex(_filePath); bool doOutlining = LanguageService.Preferences.AutoOutlining; LanguageService.Preferences.AutoOutlining = false; if (_projectInfo != null && LanguageService.GetSource(buffer) == null) { // создаем и регистрируем в проекте временный source, чтобы не сломалась логика // конструктора NemerleSource (см вызов LanguageService.AddEditableSource) //_projectInfo.ReplaseOrAddSource(new FileNemerleSource(secondaryFileIndex)); _projectInfo.AddEditableSource((NemerleSource)LanguageService.CreateSource(buffer)); } NemerleSource source = LanguageService.GetOrCreateSource(buffer) as NemerleSource; source.SetBufferCoordinator(bufferCoordinator); if (_projectInfo != null) { _projectInfo.Engine.RequestOnBuildTypesTree(); } LanguageService.Preferences.AutoOutlining = doOutlining; _windowManager = LanguageService.CreateCodeWindowManager(null, source); language.AddCodeWindowManager(_windowManager); // увеличиваем внутренний счетчик openCount, для того чтобы впоследствии корректно отработала логика закрытия соурса source.Open(); TextViewWrapper view = new TextViewWrapper(languageHost, pISenseHost, bufferCoordinator, pNextCmdTarget, source); _windowManager.OnNewView(view); pTextViewFilter = view.InstalledFilter; NemerleViewFilter nemerleFilter = pTextViewFilter as NemerleViewFilter; if (null != nemerleFilter) nemerleFilter.BufferCoordinator = this.bufferCoordinator; // сохраним значение DocumentEvents в переменной класса, чтобы исключить преждевременное уничтожение // объекта и автоматическоей отписывание от событий. // // Источник решения: // PRB: Visual Studio .NET events being disconnected from add-in (http://www.mztools.com/articles/2005/mz2005012.aspx) _documentEvents = _projectItem.DTE.Events.get_DocumentEvents(_projectItem.Document); _documentEvents.DocumentClosing += _documentClosingEventHandler; return VSConstants.S_OK; }