private void OnMappingsChanged(object sender, MappingsChangedEventArgs e) { if (e.Mappings.Count > 0) { _languageBuffer.MappingsChanged -= OnMappingsChanged; IContainedLanguageHost host = ContainedLanguageHost.GetHost(TextView, _languageBuffer.IProjectionBuffer); host.SetContainedCommandTarget(TextView, ContainedLanguageTarget); ContainedLanguageTarget = null; TextView = null; _languageBuffer = null; } }
protected override void OnTextViewConnected(ITextView textView, ITextBuffer textBuffer) { RMainController.Attach(textView, textBuffer, Shell); if (textBuffer != textView.TextBuffer) { // Projected scenario _containedLanguageHost = ContainedLanguageHost.GetHost(textView, textBuffer, Shell); if (_containedLanguageHost != null) { _containedLanguageHost.Closing += OnContainedLanguageHostClosing; _textBuffer = textBuffer; var mainController = RMainController.FromTextView(textView); var nextTarget = _containedLanguageHost.SetContainedCommandTarget(textView, mainController); // Convert chained target to ICommandTarget (chained target might be IOleCommandTarget and host will create a shim then). mainController.ChainedController = nextTarget; } } base.OnTextViewConnected(textView, textBuffer); }
/// <summary> /// Retrives contained language host. Typically called from text view connection listener. /// </summary> /// <param name="textView">Primary text view</param> /// <param name="textBuffer">Contained language buffer</param> /// <param name="shell"></param> /// <returns>Contained language host for this buffer and language, <seealso cref="IContainedLanguageHost"/></returns> public static IContainedLanguageHost GetHost(ITextView textView, ITextBuffer textBuffer, ICoreShell shell) { IContainedLanguageHost containedLanguageHost = TryGetHost(textBuffer); if (containedLanguageHost == null) { var containedLanguageHostProvider = ComponentLocatorForOrderedContentType <IContainedLanguageHostProvider> . FindFirstOrderedComponent(shell, textView.TextDataModel.DocumentBuffer.ContentType.TypeName); if (containedLanguageHostProvider != null) { containedLanguageHost = containedLanguageHostProvider.GetContainedLanguageHost(textView, textBuffer); } } return(containedLanguageHost); }
protected override void OnTextViewConnected(ITextView textView, ITextBuffer textBuffer) { var mainController = RMainController.Attach(textView, textBuffer, Services); if (textBuffer != textView.TextBuffer) { // Projected scenario _containedLanguageHost = textBuffer.GetService <IContainedLanguageHost>(); if (_containedLanguageHost != null) { _containedLanguageHost.Closing += OnContainedLanguageHostClosing; _textBuffer = textBuffer; var nextTarget = _containedLanguageHost.SetContainedCommandTarget(textView.ToEditorView(), mainController); // Convert chained target to ICommandTarget (chained target might be IOleCommandTarget and host will create a shim then). mainController.ChainedController = nextTarget; } } base.OnTextViewConnected(textView, textBuffer); }
public ExpressionTermFilter(IContainedLanguageHost clh) { _clh = clh; }