/// <summary> /// Initialization of the package; this method is called right after the package is sited, so this is the place /// where you can put all the initialization code that rely on services provided by VisualStudio. /// </summary> protected override void OnInitialize() { // --- We are going to use this singleton instance Default = this; RegisterEditorFactory(new RomEditorFactory()); RegisterEditorFactory(new TzxEditorFactory()); RegisterEditorFactory(new TapEditorFactory()); RegisterEditorFactory(new DisAnnEditorFactory()); RegisterEditorFactory(new SpConfEditorFactory()); // --- Prepare for package shutdown _packageDteEvents = ApplicationObject.Events.DTEEvents; _packageDteEvents.OnBeginShutdown += () => { PackageClosing?.Invoke(this, EventArgs.Empty); }; _solutionEvents = ApplicationObject.Events.SolutionEvents; _solutionEvents.Opened += OnSolutionOpened; _solutionEvents.AfterClosing += OnSolutionClosed; // --- Create other helper objects DebugInfoProvider = new VsIntegratedSpectrumDebugInfoProvider(); CodeManager = new Z80CodeManager(); ErrorList = new ErrorListWindow(); TaskList = new TaskListWindow(); }
/// <summary> /// Initialization of the package; this method is called right after the package is sited, so this is the place /// where you can put all the initialization code that rely on services provided by VisualStudio. /// </summary> protected override void OnInitialize() { RegisterEditorFactory(new RomEditorFactory()); RegisterEditorFactory(new TzxEditorFactory()); RegisterEditorFactory(new TapEditorFactory()); // --- Let's create the ZX Spectrum virtual machine view model // --- that is used all around in tool windows CodeDiscoverySolution = new SolutionStructure(); // --- Prepare for package shutdown _packageDteEvents = ApplicationObject.Events.DTEEvents; _packageDteEvents.OnBeginShutdown += () => { Messenger.Default.Send(new PackageShutdownMessage()); }; _solutionEvents = ApplicationObject.Events.SolutionEvents; _solutionEvents.Opened += OnSolutionOpened; _solutionEvents.AfterClosing += OnSolutionClosed; // --- Create other helper objects CodeManager = new Z80CodeManager(); ErrorList = new ErrorListWindow(); TaskList = new TaskListWindow(); }
/// <summary> /// コンテキストメニュー "Task Edit" を選択したとき呼ばれます。 /// </summary> /// <param name="sender">呼び出し元オブジェクト</param> /// <param name="e">イベントデータ</param> private void toolStripMenuItem_TaskEdit_Click(object sender, EventArgs e) { var taskListWindow = new TaskListWindow(); taskListWindow.DataContext = _taskListVM; taskListWindow.ShowDialog(); }
/// <summary> /// Initialization of the package; this method is called right after the package is sited, so this is the place /// where you can put all the initialization code that rely on services provided by VisualStudio. /// </summary> protected override async Task OnInitializeAsync() { // --- We are going to use this singleton instance Default = this; // --- Prepare project system extension files CheckCpsFiles(); await JoinableTaskFactory.SwitchToMainThreadAsync(); RegisterEditorFactory(new RomEditorFactory()); RegisterEditorFactory(new TzxEditorFactory()); RegisterEditorFactory(new TapEditorFactory()); RegisterEditorFactory(new DisAnnEditorFactory()); RegisterEditorFactory(new SpConfEditorFactory()); RegisterEditorFactory(new VfddEditorFactory()); // --- Register providers SpectrumMachine.Reset(); SpectrumMachine.RegisterProvider <IRomProvider>(() => new PackageRomProvider()); SpectrumMachine.RegisterProvider <IKeyboardProvider>(() => new KeyboardProvider()); SpectrumMachine.RegisterProvider <IKempstonProvider>(() => new KempstonProvider()); SpectrumMachine.RegisterProvider <IBeeperProvider>(() => new AudioWaveProvider()); SpectrumMachine.RegisterProvider <ITapeProvider>(() => new VsIntegratedTapeProvider()); SpectrumMachine.RegisterProvider <ISoundProvider>(() => new AudioWaveProvider(AudioProviderType.Psg)); DebugInfoProvider = new VsIntegratedSpectrumDebugInfoProvider(); SpectrumMachine.RegisterProvider <ISpectrumDebugInfoProvider>(() => DebugInfoProvider); // --- Prepare for package shutdown _packageDteEvents = ApplicationObject.Events.DTEEvents; _packageDteEvents.OnBeginShutdown += () => { PackageClosing?.Invoke(this, EventArgs.Empty); }; _solutionEvents = ApplicationObject.Events.SolutionEvents; _solutionEvents.Opened += OnSolutionOpened; _solutionEvents.AfterClosing += OnSolutionClosed; // --- Create other helper objects CodeManager = new Z80CodeManager(); TestManager = new Z80TestManager(); StateFileManager = new VmStateFileManager(); ErrorList = new ErrorListWindow(); TaskList = new TaskListWindow(); }
/// <summary> /// Initialization of the package; this method is called right after the package is sited, so this is the place /// where you can put all the initialization code that rely on services provided by VisualStudio. /// </summary> /// <param name="cancellationToken">A cancellation token to monitor for initialization cancellation, which can occur when VS is shutting down.</param> /// <param name="progress">A provider for progress updates.</param> /// <returns>A task representing the async work of package initialization, or an already completed task if there is none. Do not return null from this method.</returns> protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress <ServiceProgressData> progress) { await base.InitializeAsync(cancellationToken, progress); // --- Background initialization part Default = this; // --- Prepare project system extension files CheckCpsFiles(); Z80AsmLanguage = new Z80AsmLanguageService(this); // --- Special providers for the ZX Spectrum virtual machine DebugInfoProvider = new VsIntegratedSpectrumDebugInfoProvider(); SpectrumMachine.Reset(); SpectrumMachine.RegisterDefaultProviders(); SpectrumMachine.RegisterProvider <IRomProvider>(() => new PackageRomProvider()); SpectrumMachine.RegisterProvider <IBeeperProvider>(() => new AudioWaveProvider()); SpectrumMachine.RegisterProvider <ISoundProvider>(() => new AudioWaveProvider(AudioProviderType.Psg)); SpectrumMachine.RegisterProvider <ITapeLoadProvider>(() => new VsIntegratedTapeLoadProvider()); SpectrumMachine.RegisterProvider <ITapeSaveProvider>(() => new VsIntegratedTapeSaveProvider()); SpectrumMachine.RegisterProvider <IKempstonProvider>(() => new KempstonProvider()); SpectrumMachine.RegisterProvider <ISpectrumDebugInfoProvider>(() => DebugInfoProvider); SpectrumMachine.RegisterStackDebugSupport(new SimpleStackDebugSupport()); // --- Initialize other services BreakpointChangeWatcher = new BreakpointChangeWatcher(); BreakpointChangeWatcher.Start(); // --- Main thread initialization part await JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken); // --- Initialize the package here InitializeCommands(); // --- Register custom editors RegisterEditorFactory(new RomEditorFactory()); RegisterEditorFactory(new TzxEditorFactory()); RegisterEditorFactory(new TapEditorFactory()); // --- Manage the solution and its events Solution = new SolutionStructure(); Solution.ActiveProjectChanged += OnActiveProjectChanged; ErrorList = new ErrorListWindow(); TaskList = new TaskListWindow(); // --- Create view models EmulatorViewModel = new EmulatorViewModel(); SpectrumViewModel = new SpectrumEmulatorToolWindowViewModel(); KeyboardToolModel = new KeyboardToolWindowViewModel(); RegistersViewModel = new RegistersToolWindowViewModel(); MemoryViewModel = new MemoryToolWindowViewModel(); DisassemblyViewModel = new DisassemblyToolWindowViewModel(); StackViewModel = new StackToolWindowViewModel(); BasicListViewModel = new BasicListToolWindowViewModel(); WatchViewModel = new WatchToolWindowViewModel(); // --- Prepare the provider for debugging DebugInfoProvider.Prepare(); // --- Prepare language services Z80AsmClassifierProvider.AttachToPackage(); Z80AsmViewTaggerProvider.AttachToPackage(); Log("SpectNetIdePackage initialized."); }