public void Create(int instanceId) { var evaluator = CreateInteractiveEvaluator(_vsServiceProvider, _classifierAggregator, _contentTypeRegistry, _vsWorkspace); Debug.Assert(this._vsInteractiveWindow == null); // ForceCreate means that the window should be created if the persisted layout indicates that it is visible. _vsInteractiveWindow = _vsInteractiveWindowFactory.Create(Id, instanceId, Title, evaluator, __VSCREATETOOLWIN.CTW_fForceCreate); _vsInteractiveWindow.SetLanguage(LanguageServiceGuid, evaluator.ContentType); var window = _vsInteractiveWindow.InteractiveWindow; window.TextView.Options.SetOptionValue(DefaultTextViewHostOptions.SuggestionMarginId, true); EventHandler closeEventDelegate = null; closeEventDelegate = (sender, e) => { window.TextView.Closed -= closeEventDelegate; InteractiveWindow.InteractiveWindow intWindow = window as InteractiveWindow.InteractiveWindow; LogCloseSession(intWindow.LanguageBufferCounter); evaluator.Dispose(); }; // the tool window now owns the engine: window.TextView.Closed += closeEventDelegate; // vsWindow.AutoSaveOptions = true; // fire and forget: window.InitializeAsync(); LogSession(LogMessage.Window, LogMessage.Create); }
public void Create(int instanceId) { var evaluator = CreateInteractiveEvaluator(_vsServiceProvider, _classifierAggregator, _contentTypeRegistry, _vsWorkspace); Debug.Assert(_vsInteractiveWindow == null); // ForceCreate means that the window should be created if the persisted layout indicates that it is visible. _vsInteractiveWindow = _vsInteractiveWindowFactory.Create(Id, instanceId, Title, evaluator, __VSCREATETOOLWIN.CTW_fForceCreate); _vsInteractiveWindow.SetLanguage(LanguageServiceGuid, evaluator.ContentType); if (_vsInteractiveWindow is ToolWindowPane interactiveWindowPane) { evaluator.OnBeforeReset += is64bit => interactiveWindowPane.Caption = Title + (is64bit ? " (64-bit)" : " (32-bit)"); } var window = _vsInteractiveWindow.InteractiveWindow; window.TextView.Options.SetOptionValue(DefaultTextViewHostOptions.SuggestionMarginId, true); void closeEventDelegate(object sender, EventArgs e) { window.TextView.Closed -= closeEventDelegate; LogCloseSession(evaluator.SubmissionCount); evaluator.Dispose(); } // the tool window now owns the engine: window.TextView.Closed += closeEventDelegate; // vsWindow.AutoSaveOptions = true; // fire and forget: window.InitializeAsync(); LogSession(LogMessage.Window, LogMessage.Create); }
public void Create(int instanceId) { var evaluator = CreateInteractiveEvaluator( _vsServiceProvider, _classifierAggregator, _contentTypeRegistry, _vsWorkspace ); Debug.Assert(_vsInteractiveWindow == null); // ForceCreate means that the window should be created if the persisted layout indicates that it is visible. _vsInteractiveWindow = _vsInteractiveWindowFactory.Create( Id, instanceId, Title, evaluator, __VSCREATETOOLWIN.CTW_fForceCreate ); _vsInteractiveWindow.SetLanguage(LanguageServiceGuid, evaluator.ContentType); if (_vsInteractiveWindow is ToolWindowPane interactiveWindowPane) { evaluator.OnBeforeReset += platform => interactiveWindowPane.Caption = Title + platform switch { InteractiveHostPlatform.Desktop64 => " (.NET Framework " + ServicesVSResources.Bitness64 + ")", InteractiveHostPlatform.Desktop32 => " (.NET Framework " + ServicesVSResources.Bitness32 + ")", InteractiveHostPlatform.Core => " (.NET Core)", _ => throw ExceptionUtilities.Unreachable }; } var window = _vsInteractiveWindow.InteractiveWindow; window.TextView.Options.SetOptionValue( DefaultTextViewHostOptions.SuggestionMarginId, true ); void closeEventDelegate(object sender, EventArgs e) { window.TextView.Closed -= closeEventDelegate; LogCloseSession(evaluator.SubmissionCount); evaluator.Dispose(); } // the tool window now owns the engine: window.TextView.Closed += closeEventDelegate; // vsWindow.AutoSaveOptions = true; // fire and forget: window.InitializeAsync(); LogSession(LogMessage.Window, LogMessage.Create); }
public void Create(int instanceId) { var evaluator = CreateInteractiveEvaluator(_vsServiceProvider, _classifierAggregator, _contentTypeRegistry, _vsWorkspace); Debug.Assert(_vsInteractiveWindow == null); // ForceCreate means that the window should be created if the persisted layout indicates that it is visible. _vsInteractiveWindow = _vsInteractiveWindowFactory.Create(Id, instanceId, Title, evaluator, __VSCREATETOOLWIN.CTW_fForceCreate); _vsInteractiveWindow.SetLanguage(LanguageServiceGuid, evaluator.ContentType); var window = _vsInteractiveWindow.InteractiveWindow; window.TextView.Options.SetOptionValue(DefaultTextViewHostOptions.SuggestionMarginId, true); EventHandler closeEventDelegate = null; closeEventDelegate = (sender, e) => { window.TextView.Closed -= closeEventDelegate; LogCloseSession(evaluator.SubmissionCount); evaluator.Dispose(); }; // the tool window now owns the engine: window.TextView.Closed += closeEventDelegate; // vsWindow.AutoSaveOptions = true; // fire and forget: window.InitializeAsync(); LogSession(LogMessage.Window, LogMessage.Create); }