public RunningDocTableEvents(GenerateDslCodePackage package) { _package = package; _projectItemsEvents = ((Events2) _package.Dte.Events).ProjectItemsEvents; _projectItemsEvents.ItemRemoved += LogRemovedFile; _projectItemsEvents.ItemRenamed += OnItemRenamed; }
public WebResourceList() { InitializeComponent(); _dte = Package.GetGlobalService(typeof(DTE)) as DTE; if (_dte == null) return; _solution = _dte.Solution; if (_solution == null) return; _events = _dte.Events; var windowEvents = _events.WindowEvents; windowEvents.WindowActivated += WindowEventsOnWindowActivated; _solutionEvents = _events.SolutionEvents; _solutionEvents.BeforeClosing += BeforeSolutionClosing; _solutionEvents.Opened += SolutionOpened; _solutionEvents.ProjectAdded += SolutionProjectAdded; _solutionEvents.ProjectRemoved += SolutionProjectRemoved; _solutionEvents.ProjectRenamed += SolutionProjectRenamed; _events2 = (Events2)_dte.Events; _projectItemsEvents = _events2.ProjectItemsEvents; _projectItemsEvents.ItemAdded += ProjectItemAdded; _projectItemsEvents.ItemRemoved += ProjectItemRemoved; _projectItemsEvents.ItemRenamed += ProjectItemRenamed; }
public AutoLinkerService(DTE2 visualStudio, IConfigurationService configurationService, IVisualStudioService visualStudioService) { Argument.IsNotNull("visualStudio", visualStudio); Argument.IsNotNull("configurationService", configurationService); Argument.IsNotNull("visualStudioService", visualStudioService); _visualStudio = visualStudio; _configurationService = configurationService; _visualStudioService = visualStudioService; var events = (Events2)_visualStudio.Events; _solutionEvents = events.SolutionEvents; _solutionEvents.Opened += OnSolutionOpened; _solutionEvents.AfterClosing += OnSolutionClosed; _solutionItemsEvents = events.MiscFilesEvents; _solutionItemsEvents.ItemAdded += OnSolutionItemAdded; _solutionItemsEvents.ItemRemoved += OnSolutionItemRemoved; _solutionItemsEvents.ItemRenamed += OnSolutionItemRenamed; _projectItemsEvents = events.ProjectItemsEvents; _projectItemsEvents.ItemAdded += OnSolutionItemAdded; _projectItemsEvents.ItemRemoved += OnSolutionItemRemoved; _projectItemsEvents.ItemRenamed += OnSolutionItemRenamed; }
/// <summary>Implements the OnConnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being loaded.</summary> /// <param term='application'>Root object of the host application.</param> /// <param term='connectMode'>Describes how the Add-in is being loaded.</param> /// <param term='addInInst'>Object representing this Add-in.</param> /// <seealso class='IDTExtensibility2' /> public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom) { _application = (DTE2)application; _addInInstance = (AddIn)addInInst; // Core var name = _addInInstance.Name; var outputPane = _application.ToolWindows.OutputWindow.OutputWindowPanes.GetPane(name); var feedback = new FeedbackManager(name, outputPane); _core = new Core(feedback); // Events _events = (Events2)_application.Events; _projectsEvents = _events.ProjectsEvents; _projectItemsEvents = _events.ProjectItemsEvents; _documentEvents = _events.DocumentEvents; _buildEvents = _events.BuildEvents; AttachEvents(); // If being connected when Solution is already loaded - try to load all projects if (_application.Solution != null) { _core.Load(_application.Solution); } }
public DteWithEvents(DTE dte) { DTE = dte; SolutionEvents = dte.Events.SolutionEvents; ProjectItemsEvents = ((Events2)dte.Events).ProjectItemsEvents; DocumentEvents = ((Events2) dte.Events).DocumentEvents; BuildEvents = ((Events2) dte.Events).BuildEvents; CodeModelEvents = ((Events2)dte.Events).CodeModelEvents; }
public static void Enable(DTE2 dte) { if (_events == null) { _events = ((Events2)dte.Events).ProjectItemsEvents; _events.ItemAdded += ItemAdded; _events.ItemRenamed += ItemRenamed; } }
public SolutionListener(SVsServiceProvider sp, ILogger logger, SettingsPersister persister, SettingsLocator locator) { this.logger = logger; this.locator = locator; this.persister = persister; dte = (DTE)sp.GetService(typeof(DTE)); dteEvents = dte.Events.DTEEvents; solutionEvents = dte.Events.SolutionEvents; projectEvents = ((Events2)dte.Events).ProjectItemsEvents; }
protected override void Initialize() { this.dte = GetService(typeof(SDTE)) as DTE; this.solutionEvents = this.dte.Events.SolutionEvents; this.solutionEvents.Opened += this.solutionEvents_Opened; this.solutionEvents.BeforeClosing += this.solutionEvents_BeforeClosing; this.projectItemsEvents = ((EnvDTE80.Events2)this.dte.Events).ProjectItemsEvents; this.projectItemsEvents.ItemAdded += this.projectItemsEvents_ItemAdded; this.projectItemsEvents.ItemRemoved += this.projectItemsEvents_ItemRemoved; }
public ItemEvents([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider) { Guard.NotNull(() => serviceProvider, serviceProvider); var dte = serviceProvider.GetService<SDTE, DTE>(); if (dte != null) { projectItemsEvents = dte.Events.GetObject(typeof(ProjectItemsEvents).Name) as ProjectItemsEvents; projectItemsEvents.ItemRemoved += new _dispProjectItemsEvents_ItemRemovedEventHandler(OnItemRemoved); } }
public DteWithEvents(DTE dte, IIdeTracer tracer) { DTE = dte; SolutionEvents = dte.Events.SolutionEvents; ProjectItemsEvents = ((Events2)dte.Events).ProjectItemsEvents; DocumentEvents = ((Events2) dte.Events).DocumentEvents; BuildEvents = ((Events2) dte.Events).BuildEvents; CodeModelEvents = ((Events2)dte.Events).CodeModelEvents; SolutionEventsListener = new SolutionEventsListener(); FileChangeEventsListener = new FileChangeEventsListener(tracer); SolutionEvents.BeforeClosing += FileChangeEventsListener.StopListening; }
// constructor private SolutionEventHandlers(DTE dte, DTE2 dte2) { ThreadHelper.ThrowIfNotOnUIThread(); _dte = dte; _dte2 = dte2; myEvents = dte.Events; myDocumentEvents = dte.Events.DocumentEvents; myDocumentEvents.DocumentOpened += myDocumentEvents_DocumentOpened; myDocumentEvents.DocumentSaved += myDocumentEvents_DocumentSaved; CSharpProjectItemsEvents = (ProjectItemsEvents)dte.Events.GetObject("CSharpProjectItemsEvents"); CSharpProjectItemsEvents.ItemRenamed += CSharpItemRenamed; myEvents.SolutionEvents.Opened += SolutionEvents_Opened; _VSOutputWindow = new VSOutputWindow(_dte2); }
public DteWithEvents(DTE dte, IIdeTracer tracer) { DTE = dte; this.tracer = tracer; SolutionEvents = dte.Events.SolutionEvents; ProjectItemsEvents = ((Events2)dte.Events).ProjectItemsEvents; DocumentEvents = ((Events2)dte.Events).DocumentEvents; BuildEvents = new Lazy <BuildEvents>(() => ((Events2)dte.Events).BuildEvents, true); CodeModelEvents = ((Events2)dte.Events).CodeModelEvents; SolutionEventsListener = new SolutionEventsListener(); FileChangeEventsListener = new FileChangeEventsListener(tracer); SolutionEvents.BeforeClosing += FileChangeEventsListener.StopListening; }
public DteEventsHandler(DTE _dte) { ThreadHelper.ThrowIfNotOnUIThread(); dte = _dte; var events = dte.Events as Events2; buildEvents = events.BuildEvents; buildEvents.OnBuildBegin += buildEvents_OnBuildBegin; buildEvents.OnBuildProjConfigBegin += OnBuildProjConfigBegin; documentEvents = events.get_DocumentEvents(null); documentEvents.DocumentSaved += DocumentSaved; projectItemsEvents = events.ProjectItemsEvents; projectItemsEvents.ItemAdded += ProjectItemsEvents_ItemAdded; projectItemsEvents.ItemRemoved += ProjectItemsEvents_ItemRemoved; projectItemsEvents.ItemRenamed += ProjectItemsEvents_ItemRenamed; solutionEvents = events.SolutionEvents; solutionEvents.ProjectAdded += SolutionEvents_ProjectAdded; solutionEvents.ProjectRemoved += SolutionEvents_ProjectRemoved; solutionEvents.Opened += SolutionEvents_Opened; solutionEvents.AfterClosing += SolutionEvents_AfterClosing; windowEvents = events.WindowEvents; windowEvents.WindowActivated += WindowEvents_WindowActivated; var debugCommandsGUID = "{5EFC7975-14BC-11CF-9B2B-00AA00573819}"; debugStartEvents = events.get_CommandEvents(debugCommandsGUID, 295); debugStartEvents.BeforeExecute += debugStartEvents_BeforeExecute; debugStartWithoutDebuggingEvents = events.get_CommandEvents(debugCommandsGUID, 368); debugStartWithoutDebuggingEvents.BeforeExecute += debugStartWithoutDebuggingEvents_BeforeExecute; f1HelpEvents = events.get_CommandEvents( typeof(VSConstants.VSStd97CmdID).GUID.ToString("B"), (int)VSConstants.VSStd97CmdID.F1Help); f1HelpEvents.BeforeExecute += F1HelpEvents_BeforeExecute; dispId_VCFileConfiguration_ExcludedFromBuild = GetPropertyDispId(typeof(VCFileConfiguration), "ExcludedFromBuild"); dispId_VCCLCompilerTool_UsePrecompiledHeader = GetPropertyDispId(typeof(VCCLCompilerTool), "UsePrecompiledHeader"); dispId_VCCLCompilerTool_PrecompiledHeaderThrough = GetPropertyDispId(typeof(VCCLCompilerTool), "PrecompiledHeaderThrough"); dispId_VCCLCompilerTool_PreprocessorDefinitions = GetPropertyDispId(typeof(VCCLCompilerTool), "PreprocessorDefinitions"); dispId_VCCLCompilerTool_AdditionalIncludeDirectories = GetPropertyDispId(typeof(VCCLCompilerTool), "AdditionalIncludeDirectories"); InitializeVCProjects(); }
public DTEEventSource( Events2 events) { _buildEvents = events.BuildEvents; _dteEvents = events.DTEEvents; _debuggerEvents = events.DebuggerEvents; _debuggerProcessEvents = events.DebuggerProcessEvents; _debuggerExpressionEvaluationEvents = events.DebuggerExpressionEvaluationEvents; _findEvents = events.FindEvents; _miscFileEvents = events.MiscFilesEvents; _projectItemsEvents = events.ProjectItemsEvents; _projectEvents = events.ProjectsEvents; _publishEvents = events.PublishEvents; _selectionEvents = events.SelectionEvents; _solutionEvents = events.SolutionEvents; _solutionItemEvents = events.SolutionItemsEvents; }
// private DocumentEvents documentEvents; public void SubscribeToEvents(Events2 events) { // documentEvents = events.DocumentEvents; //documentEvents.DocumentSaved += DocumentEvents_DocumentSaved; projectItemsEvents = events.ProjectItemsEvents; projectItemsEvents.ItemAdded += Scanner.ScanProjectItem; // projectItemsEvents.ItemRemoved += Scanner.RemoveProjectItem; // projectItemsEvents.ItemRenamed += Scanner.RenameProjectItem; solutionEvents = events.SolutionEvents; solutionEvents.Opened += Scanner.ScanSolution; solutionEvents.ProjectAdded += Scanner.ScanProject; solutionEvents.ProjectRemoved += Scanner.RemoveProject; solutionEvents.ProjectRenamed += Scanner.RenameProject; }
public DTEEventSource(Events2 events) { _buildEvents = events.BuildEvents; _dteEvents = events.DTEEvents; _debuggerEvents = events.DebuggerEvents; _debuggerProcessEvents = events.DebuggerProcessEvents; _debuggerExpressionEvaluationEvents = events.DebuggerExpressionEvaluationEvents; _findEvents = events.FindEvents; _miscFileEvents = events.MiscFilesEvents; _projectItemsEvents = events.ProjectItemsEvents; _projectEvents = events.ProjectsEvents; _publishEvents = events.PublishEvents; _selectionEvents = events.SelectionEvents; _solutionEvents = events.SolutionEvents; _solutionItemEvents = events.SolutionItemsEvents; }
public void SetupCommands() { CommandID commandSol = new CommandID(CommandGuids.guidDiffCmdSet, (int)CommandId.CreateSolutionSettings); OleMenuCommand menuCommandSol = new OleMenuCommand((s, e) => ApplySolutionSettings(), commandSol); menuCommandSol.BeforeQueryStatus += SolutionBeforeQueryStatus; _mcs.AddCommand(menuCommandSol); ProjectItemsEvents projectEvents = ((Events2)_dte.Events).ProjectItemsEvents; projectEvents.ItemRemoved += ItemRemoved; projectEvents.ItemRenamed += ItemRenamed; SolutionEvents solutionEvents = ((Events2)_dte.Events).SolutionEvents; solutionEvents.ProjectRemoved += ProjectRemoved; }
/// <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 System.Threading.Tasks.Task InitializeAsync(System.Threading.CancellationToken cancellationToken, IProgress <ServiceProgressData> progress) { await base.InitializeAsync(cancellationToken, progress); // When initialized asynchronously, we *may* be on a background thread at this point. // Do any initialization that requires the UI thread after switching to the UI thread. // Otherwise, remove the switch to the UI thread if you don't need it. await this.JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken); IVisualStudioServiceProvider serviceProvider = new VisualStudioServiceProvider(this); this.messageManager = new VisualStudioMessageManager(); this.iOWrapper = new IOWrapper(); this.projectConfigurationManager = new ProjectConfigurationManager(); this.vsPackageWrapper = new VsPackageWrapper(); this.projectManager = new ProjectManager(serviceProvider, iOWrapper, vsPackageWrapper, messageManager, projectConfigurationManager); this.authManager = new AuthenticationManager(messageManager, projectManager); this.arasDataProvider = new ArasDataProvider(authManager, messageManager); this.dialogFactory = new DialogFactory(authManager, arasDataProvider, serviceProvider, iOWrapper, messageManager); ICodeFormatter codeFormatter = new VisualStudioCodeFormatter(this.projectManager); this.codeProviderFactory = new CodeProviderFactory(codeFormatter, messageManager, iOWrapper); this.globalConfiguration = new GlobalConfiguration(iOWrapper); Commands.OpenFromArasCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory, messageManager); Commands.OpenFromPackageCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory, messageManager); Commands.CreateMethodCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory, globalConfiguration, messageManager); Commands.SaveToArasCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory, messageManager); Commands.SaveToPackageCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory, messageManager); Commands.UpdateMethodCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory, messageManager); Commands.ConnectionInfoCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, messageManager); Commands.CreateCodeItemCmd.Initialize(projectManager, dialogFactory, projectConfigurationManager, codeProviderFactory, messageManager); Commands.RefreshConfigCmd.Initialize(projectManager, dialogFactory, projectConfigurationManager, messageManager); Commands.DebugMethodCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory, messageManager); Commands.MoveToCmd.Initialize(projectManager, dialogFactory, projectConfigurationManager, codeProviderFactory, messageManager); var dte = (DTE)serviceProvider.GetService(typeof(DTE)); this.projectItemsEvents = dte.Events.GetObject("CSharpProjectItemsEvents") as ProjectItemsEvents; if (this.projectItemsEvents != null) { this.projectItemsEvents.ItemRemoved += this.ProjectItemsEvents_ItemRemoved; this.projectItemsEvents.ItemRenamed += this.ProjectItemsEvents_ItemRenamed; } }
public VisualStudioEventProxy(DTE2 dte) { _dte = dte; _buildEvents = _dte.Events.BuildEvents; _solutionEvents = _dte.Events.SolutionEvents; _documentEvents = _dte.Events.DocumentEvents; _projectItemsEvents = ((Events2)dte.Events).ProjectItemsEvents; AddDefaultEventHandlers(); RegisterForSolutionLevelEvents(); foreach (Project project in _dte.Solution.Projects) { RegisterForProjectLevelEvents(project.Object as VSProject); } }
private void Init() { Events2 events2 = (Events2)_applicationObject.Events; if ((advisementResult = (uint)_ptrSolution.AdviseSolutionEvents(this, out pdwCookie)) != S_OK) { Debug.WriteLine("!!! Unable to hook into the advisement of solution events. !!!"); } // Build Events this._buildEvents = events2.BuildEvents; this._buildEvents.OnBuildBegin += _buildEvents_OnBuildBegin; this._buildEvents.OnBuildDone += _buildEvents_OnBuildDone; this._buildEvents.OnBuildProjConfigBegin += _buildEvents_OnBuildProjConfigBegin; this._buildEvents.OnBuildProjConfigDone += _buildEvents_OnBuildProjConfigDone; // Solution Events this._solutionEvents = events2.SolutionEvents; this._solutionEvents.AfterClosing += _solutionEvents_AfterClosing; this._solutionEvents.BeforeClosing += _solutionEvents_BeforeClosing; this._solutionEvents.Opened += _solutionEvents_Opened; this._solutionEvents.ProjectAdded += _solutionEvents_ProjectAdded; this._solutionEvents.ProjectRemoved += _solutionEvents_ProjectRemoved; this._solutionEvents.ProjectRenamed += _solutionEvents_ProjectRenamed; this._solutionEvents.QueryCloseSolution += _solutionEvents_QueryCloseSolution; this._solutionEvents.Renamed += _solutionEvents_Renamed; // Project Events this._projectEvents = events2.ProjectsEvents; this._projectEvents.ItemAdded += _projectEvents_ItemAdded; this._projectEvents.ItemRemoved += _projectEvents_ItemRemoved; this._projectEvents.ItemRenamed += _projectEvents_ItemRenamed; // Project Item Events this._projectItemEvents = events2.ProjectItemsEvents; this._projectItemEvents.ItemAdded += ProjectItemsEvents_ItemAdded; this._projectItemEvents.ItemRemoved += _projectItemEvents_ItemRemoved; this._projectItemEvents.ItemRenamed += _projectItemEvents_ItemRenamed; // Command Events this._commandEvents = events2.CommandEvents; this._commandEvents.BeforeExecute += _commandEvents_BeforeExecute; this._commandEvents.AfterExecute += _commandEvents_AfterExecute; }
protected override void Initialize() { base.Initialize(); _dte = GetService(typeof(SDTE)) as DTE; if (_dte == null) { return; } _controller = new Controller(); _buildEvents = _dte.Events.BuildEvents; _buildEvents.OnBuildBegin += OnBuildBegin; _documentEvents = _dte.Events.DocumentEvents; _documentEvents.DocumentSaved += DocumentSaved; var events2 = _dte.Events as Events2; if (events2 == null) { return; } _projectItemsEvents = events2.ProjectItemsEvents; _projectItemsEvents.ItemAdded += ItemAdded; _projectItemsEvents.ItemRemoved += ItemRemoved; _projectItemsEvents.ItemRenamed += ItemRenamed; _solutionEvents = _dte.Events.SolutionEvents; _solutionEvents.ProjectRemoved += ProjectRemoved; var menuCommandService = GetService(typeof(IMenuCommandService)) as OleMenuCommandService; if (null != menuCommandService) { var showOptionsCommandId = new CommandID(GuidList.guidAutoT4MVCCmdSet, (int)PkgCmdIDList.cmdidShowOptions); var showOptionsMenuCommand = new OleMenuCommand(ShowOptions, showOptionsCommandId); menuCommandService.AddCommand(showOptionsMenuCommand); showOptionsMenuCommand.BeforeQueryStatus += ShowOptionsMenuCommandOnBeforeQueryStatus; } }
public static void BindEvents(DTE2 application) { if (_events != null) return; _application = application; var letsDoTheMSCastBoogie = (Events2)_application.Events; _events = letsDoTheMSCastBoogie.ProjectItemsEvents; _solutionEvents = _application.Events.SolutionItemsEvents; _added = new _dispProjectItemsEvents_ItemAddedEventHandler(_events_ItemAdded); _deleted = new _dispProjectItemsEvents_ItemRemovedEventHandler(_events_ItemRemoved); _renamed = new _dispProjectItemsEvents_ItemRenamedEventHandler(_events_ItemRenamed); _events.ItemAdded += _added; _events.ItemRemoved += _deleted; _events.ItemRenamed += _renamed; //_solutionEvents.ItemAdded += _added; //_solutionEvents.ItemRemoved += _deleted; //_solutionEvents.ItemRenamed += _renamed; }
/// <summary> /// Subscribe to all events necessary for correct operation of this /// Visual Studio extension /// </summary> /// <param name="dteEvents"><see cref="DTE2.Events"/> property</param> public void SubscribeTo(Events2 dteEvents) { // Keep references to objects with events that will be subscribed // to: otherwise they can go out of scope and be garbage collected _projectItemsEvents = dteEvents.ProjectItemsEvents; _solutionEvents = dteEvents.SolutionEvents; _windowEvents = dteEvents.WindowEvents; _windowEvents.WindowActivated += WindowEventsWindowActivated; _windowEvents.WindowClosing += WindowEventsWindowClosing; _windowEvents.WindowCreated += WindowEventsWindowCreated; _projectItemsEvents.ItemRenamed += ProjectItemsEventsItemRenamed; _solutionEvents.AfterClosing += SolutionEventsAfterClosing; _solutionEvents.Opened += SolutionEventsOpened; _solutionEvents.ProjectRenamed += SolutionEventsProjectRenamed; }
public static async Task InitializeAsync(AsyncPackage package) { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); _dte = await package.GetServiceAsync(typeof(DTE)) as DTE2; Assumes.Present(_dte); _buildEvents = _dte.Events.BuildEvents; _buildEvents.OnBuildBegin += OnBuildBegin; _windowEvents = _dte.Events.WindowEvents; _windowEvents.WindowActivated += OnWindowActivated; _projectsEvents = (_dte.Events as Events2).ProjectItemsEvents; _projectsEvents.ItemAdded += (p) => OnProjectItemChange(p); _projectsEvents.ItemRemoved += (p) => OnProjectItemChange(p); _projectsEvents.ItemRenamed += (p, n) => OnProjectItemChange(p); }
public DteEventsHandler(DTE _dte) { dte = _dte; var events = dte.Events as Events2; buildEvents = events.BuildEvents; buildEvents.OnBuildBegin += buildEvents_OnBuildBegin; buildEvents.OnBuildProjConfigBegin += OnBuildProjConfigBegin; buildEvents.OnBuildDone += buildEvents_OnBuildDone; documentEvents = events.get_DocumentEvents(null); documentEvents.DocumentSaved += DocumentSaved; projectItemsEvents = events.ProjectItemsEvents; projectItemsEvents.ItemAdded += ProjectItemsEvents_ItemAdded; projectItemsEvents.ItemRemoved += ProjectItemsEvents_ItemRemoved; projectItemsEvents.ItemRenamed += ProjectItemsEvents_ItemRenamed; solutionEvents = events.SolutionEvents; solutionEvents.ProjectAdded += SolutionEvents_ProjectAdded; solutionEvents.ProjectRemoved += SolutionEvents_ProjectRemoved; solutionEvents.Opened += SolutionEvents_Opened; solutionEvents.AfterClosing += SolutionEvents_AfterClosing; var debugCommandsGUID = "{5EFC7975-14BC-11CF-9B2B-00AA00573819}"; debugStartEvents = events.get_CommandEvents(debugCommandsGUID, 295); debugStartEvents.BeforeExecute += debugStartEvents_BeforeExecute; debugStartWithoutDebuggingEvents = events.get_CommandEvents(debugCommandsGUID, 368); debugStartWithoutDebuggingEvents.BeforeExecute += debugStartWithoutDebuggingEvents_BeforeExecute; dispId_VCFileConfiguration_ExcludedFromBuild = GetPropertyDispId(typeof(VCFileConfiguration), "ExcludedFromBuild"); dispId_VCCLCompilerTool_UsePrecompiledHeader = GetPropertyDispId(typeof(VCCLCompilerTool), "UsePrecompiledHeader"); dispId_VCCLCompilerTool_PrecompiledHeaderThrough = GetPropertyDispId(typeof(VCCLCompilerTool), "PrecompiledHeaderThrough"); dispId_VCCLCompilerTool_PreprocessorDefinitions = GetPropertyDispId(typeof(VCCLCompilerTool), "PreprocessorDefinitions"); dispId_VCCLCompilerTool_AdditionalIncludeDirectories = GetPropertyDispId(typeof(VCCLCompilerTool), "AdditionalIncludeDirectories"); RegisterVCProjectEngineEvents(); DefaultEditorsClient.Initialize(this); DefaultEditorsClient.Instance.Listen(); }
private ProjectInfoService() { _dte = (DTE2)Microsoft.VisualStudio.Shell.Package.GetGlobalService(typeof(SDTE)); _solutionItemEvents = _dte.Events.SolutionItemsEvents; _solutionItemEvents.ItemAdded += delegate { _solutionRescanQueued = true; }; _solutionItemEvents.ItemRenamed += delegate { _solutionRescanQueued = true; }; _solutionItemEvents.ItemRemoved += delegate { _solutionRescanQueued = true; }; _solutionEvents = _dte.Events.SolutionEvents; _solutionEvents.Opened += delegate { _solutionRescanQueued = true; }; new DispatcherTimer() { Interval = new TimeSpan(0, 0, 0, 1), IsEnabled = true }.Tick += OnTick; OnTick(null, null); AvaloniaBuildEvents.Instance.BuildEnd += delegate { _targetPathRescanQueued = true; }; }
private void BackgroundThreadInitialization() { Dte = (DTE)GetService(typeof(DTE)); _projectItemsEvents = (Dte.Events as Events2).ProjectItemsEvents; _projectItemsEvents.ItemAdded += ProjectItemsEvents_ItemAdded; _projectItemsEvents.ItemRenamed += ProjectItemsEvents_ItemRenamed; _projectItemsEvents.ItemRemoved += ProjectItemsEvents_ItemRemoved; FileHelper.Dte = (DTE2)GetService(typeof(SDTE)); CommandHelper.Dte = Dte; OptionsHelper.Dte = Dte; _tortoiseProc = FileHelper.GetTortoiseSvnProc(); // Add our command handlers for menu (commands must exist in the .vsct file) _mcs = GetService(typeof(IMenuCommandService)) as OleMenuCommandService; TSVNToolWindowCommand.Initialize(this); }
internal void UnsubscribeToSolutionExplorerChanges() { if (!isListeningToSolutionExplorerChanges) { return; } DTE dte = (DTE)serviceProvider.GetService(typeof(DTE)); if (dte != null) { DTE2 dte2 = (DTE2)dte; this.solutionEvents = dte.Events.SolutionEvents; solutionEvents.ProjectAdded -= new _dispSolutionEvents_ProjectAddedEventHandler(OnProjectAdded); this.solutionItemsEvents = dte.Events.SolutionItemsEvents; solutionItemsEvents.ItemRemoved -= new _dispProjectItemsEvents_ItemRemovedEventHandler(OnProjectItemRemoved); solutionItemsEvents.ItemRenamed -= new _dispProjectItemsEvents_ItemRenamedEventHandler(OnProjectItemRenamed); } isListeningToSolutionExplorerChanges = false; }
internal ProjectSpecificDictionaryProvider() { var dte2 = (DTE2)Package.GetGlobalService(typeof(SDTE)); if (dte2 != null) { _events = dte2.Events as Events2; if (_events != null) { _ProjectItemsEvents = _events.ProjectItemsEvents; _ProjectItemsEvents.ItemRenamed += ProjectItemsEvents_ItemRenamed; _ProjectItemsEvents.ItemAdded += ProjectItemsEvents_ItemAddedOrRemoved; _ProjectItemsEvents.ItemRemoved += ProjectItemsEvents_ItemAddedOrRemoved; _SolutionEvents = _events.SolutionEvents; _SolutionEvents.AfterClosing += SolutionEvents_AfterClosing; _SolutionEvents.ProjectRenamed += SolutionEvents_ProjectRenamed; _SolutionEvents.ProjectRemoved += SolutionEvents_ProjectRemoved; } } }
private void Initialize() { if (m_DTE == null) { return; } m_SolutionEvents = m_DTE.Events.SolutionEvents; m_SolutionEvents.Opened += SolutionEvents_Opened; m_SolutionEvents.ProjectAdded += SolutionEvents_ProjectAdded; m_SolutionEvents.ProjectRemoved += SolutionEvents_ProjectRemoved; m_SolutionEvents.QueryCloseSolution += SolutionEvents_QueryCloseSolution; m_ProjectItemsEvents = m_DTE.Events.MiscFilesEvents; m_ProjectItemsEvents.ItemAdded += ProjectItemsEvents_ItemAdded; m_ProjectItemsEvents.ItemRemoved += ProjectItemsEvents_ItemRemoved; m_DocumentEvents = m_DTE.Events.DocumentEvents; m_DocumentEvents.DocumentSaved += DocumentEvents_DocumentSaved; this.ParseFiles(); }
public static void BindEvents(DTE2 application) { if (_events != null) { return; } _application = application; var letsDoTheMSCastBoogie = (Events2)_application.Events; _events = letsDoTheMSCastBoogie.ProjectItemsEvents; _solutionEvents = _application.Events.SolutionItemsEvents; _added = new _dispProjectItemsEvents_ItemAddedEventHandler(_events_ItemAdded); _deleted = new _dispProjectItemsEvents_ItemRemovedEventHandler(_events_ItemRemoved); _renamed = new _dispProjectItemsEvents_ItemRenamedEventHandler(_events_ItemRenamed); _events.ItemAdded += _added; _events.ItemRemoved += _deleted; _events.ItemRenamed += _renamed; //_solutionEvents.ItemAdded += _added; //_solutionEvents.ItemRemoved += _deleted; //_solutionEvents.ItemRenamed += _renamed; }
public AutoAddDelete(Plugin plugin) : base("AutoAddDelete", "Automatically adds and deletes files matching project add/delete") { m_plugin = plugin; m_projectEvents = ((EnvDTE80.Events2)m_plugin.App.Events).ProjectItemsEvents; m_solutionEvents = ((EnvDTE80.Events2)m_plugin.App.Events).SolutionEvents; if (((Config)m_plugin.Options).autoAdd) { Log.Info("Adding handlers for automatically add files to perforce as you add them to the project"); m_projectEvents.ItemAdded += new _dispProjectItemsEvents_ItemAddedEventHandler(OnItemAdded); m_solutionEvents.ProjectAdded += new _dispSolutionEvents_ProjectAddedEventHandler(OnProjectAdded); } if (((Config)m_plugin.Options).autoDelete) { Log.Info("Adding handlers for automatically deleting files from perforce as you remove them from the project"); m_projectEvents.ItemRemoved += new _dispProjectItemsEvents_ItemRemovedEventHandler(OnItemRemoved); m_solutionEvents.ProjectRemoved += new _dispSolutionEvents_ProjectRemovedEventHandler(OnProjectRemoved); } }
/// <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 Initialize() { OpenFileCustomCommand.Initialize(this); base.Initialize(); UnadviseSolutionEvents(); AdviseSolutionEvents(); DTE2 dte2 = Package.GetGlobalService(typeof(DTE)) as DTE2; // set up listeners for solution modified events solutionEvents = dte2.Events.SolutionEvents; solutionEvents.ProjectAdded += SolutionEvents_ProjectAdded; solutionEvents.ProjectRemoved += SolutionEvents_ProjectRemoved; solutionEvents.ProjectRenamed += SolutionEvents_ProjectRenamed; // set up listeners for project modified events projectItemsEvents = ((Events2)dte2.Events).ProjectItemsEvents; projectItemsEvents.ItemAdded += ProjectItemsEvents_ItemAdded; projectItemsEvents.ItemRemoved += ProjectItemsEvents_ItemRemoved; projectItemsEvents.ItemRenamed += ProjectItemsEvents_ItemRenamed; }
private void SolutionLoaded() { dte = (DTE)GetService(typeof(DTE)); if (dte == null) { Debug.WriteLine("Unable to get the EnvDTE.DTE service."); return; } var events = dte.Events as Events2; if (events == null) { Debug.WriteLine("Unable to get the Events2."); return; } documentEvents = events.get_DocumentEvents(); projectItemsEvents = events.ProjectItemsEvents; projectItemsEvents.ItemAdded += ProjectItemsEventsOnItemAdded; documentEvents.DocumentSaved += DocumentEventsOnDocumentSaved; }
public AutoAddDelete(Plugin plugin) : base("AutoAddDelete", "Automatically adds and deletes files matching project add/delete") { m_plugin = plugin; m_projectEvents = ((EnvDTE80.Events2)m_plugin.App.Events).ProjectItemsEvents; m_solutionEvents = ((EnvDTE80.Events2)m_plugin.App.Events).SolutionEvents; if(((Config)m_plugin.Options).autoAdd) { Log.Info("Adding handlers for automatically add files to perforce as you add them to the project"); m_projectEvents.ItemAdded += new _dispProjectItemsEvents_ItemAddedEventHandler(OnItemAdded); m_solutionEvents.ProjectAdded += new _dispSolutionEvents_ProjectAddedEventHandler(OnProjectAdded); } if(((Config)m_plugin.Options).autoDelete) { Log.Info("Adding handlers for automatically deleting files from perforce as you remove them from the project"); m_projectEvents.ItemRemoved += new _dispProjectItemsEvents_ItemRemovedEventHandler(OnItemRemoved); m_solutionEvents.ProjectRemoved += new _dispSolutionEvents_ProjectRemovedEventHandler(OnProjectRemoved); } }
/// <summary>Implements the OnConnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being loaded.</summary> /// <param term='application'>Root object of the host application.</param> /// <param term='connectMode'>Describes how the Add-in is being loaded.</param> /// <param term='addInInst'>Object representing this Add-in.</param> /// <seealso class='IDTExtensibility2' /> public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom) { _application = (DTE2)application; _addIn = (EnvDTE.AddIn)addInInst; // Events _events = (Events2)_application.Events; _projectsEvents = _events.ProjectsEvents; _projectItemsEvents = _events.ProjectItemsEvents; _documentEvents = _events.DocumentEvents; _buildEvents = _events.BuildEvents; AttachEvents(); _core = new Core(); // If being connected when Solution is already loaded - try to load all projects if (_application.Solution != null) { _core.Load(_application.Solution); } }
public Project(Func <EnvDTE.Project> vsProjectFuncFunc) { _vsProjectFunc = vsProjectFuncFunc; _dte = Package.GetGlobalService(typeof(DTE)) as DTE; if (_events2 != null) { return; } _events2 = _dte.Events as Events2; _codeModelEvents = _events2.CodeModelEvents; _commandEvents = _events2.CommandEvents; _projectItemsEvents = _events2.ProjectItemsEvents; _documentEvents = _events2.DocumentEvents; _documentEvents.DocumentSaved += document => { if (document.IsGaugeConceptFile()) { RefreshImplementations(); } }; _projectItemsEvents.ItemAdded += projectItem => RefreshImplementations(); _projectItemsEvents.ItemRemoved += projectItem => RefreshImplementations(); _projectItemsEvents.ItemRenamed += (item, name) => RefreshImplementations(); _codeModelEvents.ElementAdded += element => RefreshImplementations(); _codeModelEvents.ElementChanged += (element, change) => RefreshImplementations(); _codeModelEvents.ElementDeleted += (parent, element) => RefreshImplementations(); _commandEvents.AfterExecute += (cmdId, id, customIn, customOut) => { if ((VSConstants.VSStd2KCmdID)id == VSConstants.VSStd2KCmdID.RENAME) { RefreshImplementations(); } }; }
protected override void Initialize() { base.Initialize(); _dte = GetService(typeof (SDTE)) as DTE; if (_dte == null) return; _controller = new Controller(); _buildEvents = _dte.Events.BuildEvents; _buildEvents.OnBuildBegin += OnBuildBegin; _documentEvents = _dte.Events.DocumentEvents; _documentEvents.DocumentSaved += DocumentSaved; var events2 = _dte.Events as Events2; if (events2 == null) return; _projectItemsEvents = events2.ProjectItemsEvents; _projectItemsEvents.ItemAdded += ItemAdded; _projectItemsEvents.ItemRemoved += ItemRemoved; _projectItemsEvents.ItemRenamed += ItemRenamed; _solutionEvents = _dte.Events.SolutionEvents; _solutionEvents.ProjectRemoved += ProjectRemoved; var menuCommandService = GetService(typeof(IMenuCommandService)) as OleMenuCommandService; if (null != menuCommandService) { var showOptionsCommandId = new CommandID(GuidList.guidAutoT4MVCCmdSet, (int) PkgCmdIDList.cmdidShowOptions); var showOptionsMenuCommand = new OleMenuCommand(ShowOptions, showOptionsCommandId); menuCommandService.AddCommand(showOptionsMenuCommand); showOptionsMenuCommand.BeforeQueryStatus += ShowOptionsMenuCommandOnBeforeQueryStatus; } }
/// <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 Initialize() { Debug.WriteLine(string.Format(CultureInfo.CurrentCulture, "Entering Initialize() of: {0}", this.ToString())); Dte = this.GetService(typeof(_DTE)) as _DTE; buildEvents = Dte.Events.BuildEvents; solutionEvents = Dte.Events.SolutionEvents; projectItemsEvents = ((EnvDTE80.Events2)Dte.Events).ProjectItemsEvents; ConnectEvents(); base.Initialize(); System.Threading.Tasks.Task.Run(() => { telemetry = new TelemetryClient(); telemetry.InstrumentationKey = "d5013fa4-b253-4166-9071-5b6c874acd0f"; telemetry.Context.Session.Id = Guid.NewGuid().ToString(); telemetry.Context.Device.OperatingSystem = Environment.OSVersion.ToString(); telemetry.Context.Device.Model = "VSIX"; FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(typeof(Mubiquity).Assembly.Location); telemetry.Context.Device.Type = fvi.FileVersion; }); }
/// <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 Initialize() { base.Initialize(); var dllPath = Assembly.GetExecutingAssembly().Location; this.iOWrapper = new IOWrapper(); this.authManager = new AuthenticationManager(); this.arasDataProvider = new ArasDataProvider(authManager); this.dialogFactory = new DialogFactory(authManager, arasDataProvider, this, iOWrapper); this.projectConfigurationManager = new ProjectConfigurationManager(); this.vsPackageWrapper = new VsPackageWrapper(); this.projectManager = new ProjectManager(this, dialogFactory, iOWrapper, vsPackageWrapper); this.defaultCodeProvider = new DefaultCodeProvider(iOWrapper); this.codeProviderFactory = new CodeProviderFactory(projectManager, defaultCodeProvider, iOWrapper, dialogFactory); this.globalConfiguration = new GlobalConfiguration(iOWrapper); Commands.OpenFromArasCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory); Commands.OpenFromPackageCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory); Commands.CreateMethodCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory, globalConfiguration); Commands.SaveToArasCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory); Commands.SaveToPackageCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory); Commands.UpdateMethodCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory); Commands.ConnectionInfoCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager); Commands.CreateCodeItemCmd.Initialize(projectManager, dialogFactory, projectConfigurationManager, codeProviderFactory); Commands.RefreshConfigCmd.Initialize(projectManager, dialogFactory, projectConfigurationManager); Commands.DebugMethodCmd.Initialize(projectManager, authManager, dialogFactory, projectConfigurationManager, codeProviderFactory); Commands.MoveToCmd.Initialize(projectManager, dialogFactory, projectConfigurationManager, codeProviderFactory); var dte = (DTE)this.GetService(typeof(DTE)); this.projectItemsEvents = dte.Events.GetObject("CSharpProjectItemsEvents") as ProjectItemsEvents; if (this.projectItemsEvents != null) { this.projectItemsEvents.ItemRemoved += this.ProjectItemsEvents_ItemRemoved; this.projectItemsEvents.ItemRenamed += this.ProjectItemsEvents_ItemRenamed; } }
public void Dispose() { _dte = null; _solutionEvents = null; _documentEvents = null; _projectItemsEvents = null; OnProjectAdded.GetInvocationList().Map(del => OnProjectAdded -= (EventHandler <ProjectAddedEventArgs>)del); OnProjectRemoved.GetInvocationList().Map(del => OnProjectRemoved -= (EventHandler <ProjectRemovedEventArgs>)del); OnProjectReferenceAdded.GetInvocationList().Map(del => OnProjectReferenceAdded -= (EventHandler <ProjectReferenceAddedEventArgs>)del); OnProjectReferenceRemoved.GetInvocationList().Map(del => OnProjectReferenceRemoved -= (EventHandler <ProjectReferenceRemovedEventArgs>)del); OnProjectItemAdded.GetInvocationList().Map(del => OnProjectItemAdded -= (EventHandler <ProjectItemAddedEventArgs>)del); OnProjectItemRemoved.GetInvocationList().Map(del => OnProjectItemRemoved -= (EventHandler <ProjectItemRemovedEventArgs>)del); OnProjectItemRenamed.GetInvocationList().Map(del => OnProjectItemRenamed -= (EventHandler <ProjectItemRenamedEventArgs>)del); OnProjectItemOpened.GetInvocationList().Map(del => OnProjectItemOpened -= (EventHandler <ProjectItemOpenedEventArgs>)del); OnProjectItemClosed.GetInvocationList().Map(del => OnProjectItemClosed -= (EventHandler <ProjectItemClosedEventArgs>)del); OnProjectItemSaved.GetInvocationList().Map(del => OnProjectItemSaved -= (EventHandler <ProjectItemSavedEventArgs>)del); OnProjectItemSaveComplete.GetInvocationList().Map(del => OnProjectItemSaveComplete -= (EventHandler <ProjectItemSavedEventArgs>)del); OnBuildBegin.GetInvocationList().Map(del => OnBuildBegin -= (EventHandler <VisualStudioBuildEventArgs>)del); OnBuildDone.GetInvocationList().Map(del => OnBuildDone -= (EventHandler <VisualStudioBuildEventArgs>)del); OnSolutionClosing.GetInvocationList().Map(del => OnSolutionClosing -= (EventHandler <EventArgs>)del); OnSolutionOpening.GetInvocationList().Map(del => OnSolutionOpening -= (EventHandler <EventArgs>)del); OnCodeGenerated.GetInvocationList().Map(del => OnCodeGenerated -= (EventHandler <CodeGeneratedEventArgs>)del); }
// ReSharper restore PrivateFieldCanBeConvertedToLocalVariable public SolutionEventGenerator(IRSEnv env, IMessageBus messageBus, IDateUtils dateUtils, IThreading threading) : base(env, messageBus, dateUtils, threading) { _solutionEvents = DTE.Events.SolutionEvents; _solutionEvents.Opened += _solutionEvents_Opened; _solutionEvents.ProjectAdded += _solutionEvents_ProjectAdded; _solutionEvents.ProjectRenamed += _solutionEvents_ProjectRenamed; _solutionEvents.ProjectRemoved += _solutionEvents_ProjectRemoved; _solutionEvents.Renamed += _solutionEvents_Renamed; _solutionEvents.BeforeClosing += _solutionEvents_BeforeClosing; _solutionItemsEvents = DTE.Events.SolutionItemsEvents; _solutionItemsEvents.ItemAdded += _solutionItemsEvents_ItemAdded; _solutionItemsEvents.ItemRenamed += _solutionItemsEvents_ItemRenamed; _solutionItemsEvents.ItemRemoved += _solutionItemsEvents_ItemRemoved; _projectItemsEvents = DTE.Events.MiscFilesEvents; _projectItemsEvents.ItemAdded += _projectItemsEvents_ItemAdded; _projectItemsEvents.ItemRenamed += _projectItemsEvents_ItemRenamed; _projectItemsEvents.ItemRemoved += _projectItemsEvents_ItemRemoved; _selectionEvents = DTE.Events.SelectionEvents; _selectionEvents.OnChange += _selectionEvents_OnChange; }
/// <summary> /// Suppression de tous les évents /// </summary> public void UnregisterAllProjects() { // UnSubscribe to Misc Files events if (_projectItemsEvents != null) { this._projectItemsEvents.ItemRenamed -= new _dispProjectItemsEvents_ItemRenamedEventHandler(projectItemsEvents_ItemRenamed); this._projectItemsEvents.ItemRemoved -= new _dispProjectItemsEvents_ItemRemovedEventHandler(projectItemsEvents_ItemRemoved); this._projectItemsEvents.ItemAdded -= new _dispProjectItemsEvents_ItemAddedEventHandler(projectItemsEvents_ItemAdded); this._projectItemsEvents = null; } foreach (var kct in _knownCodeTypes.Values) kct.Dispose(); _knownCodeTypes = new Dictionary<string, KnownCodeTypes>(); }
/// <summary> /// Implements the OnStartupComplete method of the IDTExtensibility2 interface. Receives notification that the host application has completed loading. /// </summary> /// <param name="custom">Array of parameters that are host application specific.</param> /// <seealso cref="IDTExtensibility2"/> public void OnStartupComplete(ref Array custom) { this.eventsOnDocs = this.events.get_DocumentEvents(); this.eventsOnProjectItems = this.events.ProjectItemsEvents; this.eventsOnSolution = this.events.SolutionEvents; this.eventsOnBuild = this.events.BuildEvents; this.eventsOnCommand = this.events.CommandEvents; this.eventsOnCommand.BeforeExecute += new _dispCommandEvents_BeforeExecuteEventHandler(this.CommandEvents_BeforeExecute); this.eventsOnSolution.Opened += new _dispSolutionEvents_OpenedEventHandler(eventsOnSolution_Opened); this.eventsOnSolution.ProjectRemoved += new _dispSolutionEvents_ProjectRemovedEventHandler(this.SolutionEvents_ProjectRemoved); this.eventsOnSolution.AfterClosing += new _dispSolutionEvents_AfterClosingEventHandler(this.EventsOnSolution_AfterClosing); this.eventsOnProjectItems.ItemRenamed += new _dispProjectItemsEvents_ItemRenamedEventHandler(this.ProjectItemsEvents_ItemRenamed); this.eventsOnProjectItems.ItemAdded += new _dispProjectItemsEvents_ItemAddedEventHandler(this.ProjectItemsEvents_ItemAdded); this.eventsOnProjectItems.ItemRemoved += new _dispProjectItemsEvents_ItemRemovedEventHandler(this.ProjectItemsEvents_ItemRemoved); this.eventsOnDocs.DocumentSaved += new _dispDocumentEvents_DocumentSavedEventHandler(this.DocumentEvents_DocumentSaved); this.tasks = new TaskList(this.App); try { this.LoadActions(); } catch (Exception ex) { this.OutputWindowWriteText("Error in load action: " + ex.ToString()); } try { if (Settings.Instance().LessSyntaxHighlighting) { this.TreatLessAsCss(true); } } catch (Exception ex) { this.OutputWindowWriteText("Error in TreatLessAsCss: " + ex.ToString()); } // ensures the output window is lazy loaded so the multiple threads don't compete for and end up creating several if (Settings.Instance().ShowDetailLog) { this.OutputWindowWriteText("Ready"); } }
/// <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 InitializeAsync(CancellationToken cancellationToken, IProgress <ServiceProgressData> progress) { AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_OnAssemblyResolve; JoinableTaskFactory = ThreadHelper.JoinableTaskFactory; LicenseHeaderExtractor = new LicenseHeaderExtractor(); await base.InitializeAsync(cancellationToken, progress); await JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken); Dte2 = await GetServiceAsync(typeof(DTE)) as DTE2; Assumes.Present(Dte2); CreateAndConfigureFileAppender(Path.GetFileNameWithoutExtension(Dte2?.Solution.FullName)); await CreateAndConfigureOutputPaneAppenderAsync(); s_log.Info("Logger has been initialized"); _addedItems = new Stack <ProjectItem>(); await AddHeaderToProjectItemCommand.InitializeAsync(this); await RemoveHeaderFromProjectItemCommand.InitializeAsync(this); await AddLicenseHeaderToAllFilesInSolutionCommand.InitializeAsync(this); await RemoveLicenseHeaderFromAllFilesInSolutionCommand.InitializeAsync(this); await AddNewSolutionLicenseHeaderDefinitionFileCommand.InitializeAsync(this, Dte2?.Solution, () => DefaultLicenseHeaderPageModel.LicenseHeaderFileText); await OpenSolutionLicenseHeaderDefinitionFileCommand.InitializeAsync(this); await RemoveSolutionLicenseHeaderDefinitionFileCommand.InitializeAsync(this); await AddLicenseHeaderToAllFilesInProjectCommand.InitializeAsync(this); await RemoveLicenseHeaderFromAllFilesInProjectCommand.InitializeAsync(this); await AddNewLicenseHeaderDefinitionFileToProjectCommand.InitializeAsync(this); await AddExistingLicenseHeaderDefinitionFileToProjectCommand.InitializeAsync(this); await LicenseHeaderOptionsCommand.InitializeAsync(this); await AddLicenseHeaderToAllFilesInFolderCommand.InitializeAsync(this); await RemoveLicenseHeaderFromAllFilesInFolderCommand.InitializeAsync(this); await AddExistingLicenseHeaderDefinitionFileToFolderCommand.InitializeAsync(this); await AddNewLicenseHeaderDefinitionFileToFolderCommand.InitializeAsync(this); await AddLicenseHeaderEditorAdvancedMenuCommand.InitializeAsync(this); await RemoveLicenseHeaderEditorAdvancedMenuCommand.InitializeAsync(this); //register ItemAdded event handler if (Dte2?.Events is Events2 events) { _projectItemEvents = events.ProjectItemsEvents; //we need to keep a reference, otherwise the object is garbage collected and the event won't be fired _projectItemEvents.ItemAdded += ItemAdded; //Register to WebsiteItemEvents for Website Projects to work //Reference: https://social.msdn.microsoft.com/Forums/en-US/dde7d858-2440-43f9-bbdc-3e1b815d4d1e/itemadded-itemremoved-and-itemrenamed-events-not-firing-in-web-projects?forum=vsx //Concerns, that the ItemAdded Event gets called on unrelated events, like closing the solution or opening folder, could not be reproduced try { _websiteItemEvents = events.GetObject("WebSiteItemsEvents") as ProjectItemsEvents; } catch (Exception ex) { //This probably only throws an exception if no WebSite component is installed on the machine. //If no WebSite component is installed, they are probably not using a WebSite Project and therefore don't need that feature. s_log.Error("No WebSite component is installed on the machine: ", ex); } if (_websiteItemEvents != null) { _websiteItemEvents.ItemAdded += ItemAdded; } } // migrate options from registry to config file await MigrateOptionsAsync(); //register event handlers for linked commands var page = GeneralOptionsPageModel; if (page != null) { foreach (var command in page.LinkedCommands) { command.Events = Dte2.Events.CommandEvents[command.Guid, command.Id]; switch (command.ExecutionTime) { case ExecutionTime.Before: command.Events.BeforeExecute += BeforeLinkedCommandExecuted; break; case ExecutionTime.After: command.Events.AfterExecute += AfterLinkedCommandExecuted; break; default: throw new ArgumentOutOfRangeException(); } } page.LinkedCommandsChanged += CommandsChanged; //register global event handler for ItemAdded _commandEvents = Dte2.Events.CommandEvents; _commandEvents.BeforeExecute += BeforeAnyCommandExecuted; } }
/// <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 initilaization code that rely on services provided by VisualStudio. /// </summary> protected override void Initialize () { base.Initialize (); _licenseReplacer = new LicenseHeaderReplacer (this); _dte = GetService (typeof (DTE)) as DTE2; _addedItems = new Stack<ProjectItem>(); //register commands OleMenuCommandService mcs = GetService (typeof (IMenuCommandService)) as OleMenuCommandService; if (mcs != null) { _addLicenseHeaderCommand = RegisterCommand (mcs, PkgCmdIDList.cmdIdAddLicenseHeader, AddLicenseHeaderCallback); _removeLicenseHeaderCommand = RegisterCommand (mcs, PkgCmdIDList.cmdIdRemoveLicenseHeader, RemoveLicenseHeaderCallback); _addLicenseHeaderCommand.BeforeQueryStatus += QueryEditCommandStatus; _addLicenseHeaderToProjectItemCommand = RegisterCommand (mcs, PkgCmdIDList.cmdIdAddLicenseHeaderToProjectItem, AddLicenseHeaderToProjectItemCallback); _removeLicenseHeaderFromProjectItemCommand = RegisterCommand (mcs, PkgCmdIDList.cmdIdRemoveLicenseHeaderFromProjectItem, RemoveLicenseHeaderFromProjectItemCallback); _addLicenseHeaderToProjectItemCommand.BeforeQueryStatus += QueryProjectItemCommandStatus; _addLicenseHeadersToAllFilesCommand = RegisterCommand (mcs, PkgCmdIDList.cmdIdAddLicenseHeadersToAllFiles, AddLicenseHeadersToAllFilesCallback); _removeLicenseHeadersFromAllFilesCommand = RegisterCommand (mcs, PkgCmdIDList.cmdIdRemoveLicenseHeadersFromAllFiles, RemoveLicenseHeadersFromAllFilesCallback); _addLicenseHeadersToAllFilesCommand.BeforeQueryStatus += QueryAllFilesCommandStatus; RegisterCommand (mcs, PkgCmdIDList.cmdIdAddLicenseHeaderDefinitionFile, AddLicenseHeaderDefinitionFileCallback); RegisterCommand (mcs, PkgCmdIDList.cmdIdAddExistingLicenseHeaderDefinitionFile, AddExistingLicenseHeaderDefinitionFileCallback); RegisterCommand (mcs, PkgCmdIDList.cmdIdLicenseHeaderOptions, LicenseHeaderOptionsCallback); } //register ItemAdded event handler var events = _dte.Events as Events2; if (events != null) { _projectItemEvents = events.ProjectItemsEvents; //we need to keep a reference, otherwise the object is garbage collected and the event won't be fired _projectItemEvents.ItemAdded += ItemAdded; } //register event handlers for linked commands var page = (OptionsPage) GetDialogPage (typeof (OptionsPage)); if (page != null) { foreach (var command in page.LinkedCommands) { command.Events = _dte.Events.CommandEvents[command.Guid, command.Id]; switch (command.ExecutionTime) { case ExecutionTime.Before: command.Events.BeforeExecute += BeforeLinkedCommandExecuted; break; case ExecutionTime.After: command.Events.AfterExecute += AfterLinkedCommandExecuted; break; } } page.LinkedCommandsChanged += CommandsChanged; //register global event handler for ItemAdded _commandEvents = _dte.Events.CommandEvents; _commandEvents.BeforeExecute += BeforeAnyCommandExecuted; } }
public void Dispose() { _dte = null; _solutionEvents = null; _documentEvents = null; _projectItemsEvents = null; OnProjectAdded.GetInvocationList().Map(del => OnProjectAdded -= (EventHandler<ProjectAddedEventArgs>)del); OnProjectRemoved.GetInvocationList().Map(del => OnProjectRemoved -= (EventHandler<ProjectRemovedEventArgs>)del); OnProjectReferenceAdded.GetInvocationList().Map(del => OnProjectReferenceAdded -= (EventHandler<ProjectReferenceAddedEventArgs>)del); OnProjectReferenceRemoved.GetInvocationList().Map(del => OnProjectReferenceRemoved -= (EventHandler<ProjectReferenceRemovedEventArgs>)del); OnProjectItemAdded.GetInvocationList().Map(del => OnProjectItemAdded -= (EventHandler<ProjectItemAddedEventArgs>)del); OnProjectItemRemoved.GetInvocationList().Map(del => OnProjectItemRemoved -= (EventHandler<ProjectItemRemovedEventArgs>)del); OnProjectItemRenamed.GetInvocationList().Map(del => OnProjectItemRenamed -= (EventHandler<ProjectItemRenamedEventArgs>)del); OnProjectItemOpened.GetInvocationList().Map(del => OnProjectItemOpened -= (EventHandler<ProjectItemOpenedEventArgs>)del); OnProjectItemClosed.GetInvocationList().Map(del => OnProjectItemClosed -= (EventHandler<ProjectItemClosedEventArgs>)del); OnProjectItemSaved.GetInvocationList().Map(del => OnProjectItemSaved -= (EventHandler<ProjectItemSavedEventArgs>)del); OnProjectItemSaveComplete.GetInvocationList().Map(del => OnProjectItemSaveComplete -= (EventHandler<ProjectItemSavedEventArgs>)del); OnBuildBegin.GetInvocationList().Map(del => OnBuildBegin -= (EventHandler<VisualStudioBuildEventArgs>)del); OnBuildDone.GetInvocationList().Map(del => OnBuildDone -= (EventHandler<VisualStudioBuildEventArgs>)del); OnSolutionClosing.GetInvocationList().Map(del => OnSolutionClosing -= (EventHandler<EventArgs>)del); OnSolutionOpening.GetInvocationList().Map(del => OnSolutionOpening -= (EventHandler<EventArgs>)del); OnCodeGenerated.GetInvocationList().Map(del => OnCodeGenerated -= (EventHandler<CodeGeneratedEventArgs>)del); }
void SubscribeToProjectsItemsEvents() { UnsubscribeFromProjectsItemsEvents(); _prjItemsEvents = ((Events2)_applicationObject.Events).ProjectItemsEvents; _prjItemsEvents.ItemAdded += ProjectItemsEvents_ItemAdded; _prjItemsEvents.ItemRemoved += ProjectItemsEvents_ItemRemoved; _prjItemsEvents.ItemRenamed += ProjectItemsEvents_ItemRenamed; }
public EventHandlerBase(IServiceProvider serviceProvider, IEventGenerator osbideEvents) { if (serviceProvider == null) { throw new Exception("Service provider is null"); } ServiceProvider = serviceProvider; //attach osbide requests _osbideEvents = osbideEvents; _osbideEvents.SolutionSubmitRequest += SolutionSubmitted; _osbideEvents.SubmitEventRequested += SubmitEventRequested; //save references to dte events buildEvents = Dte.Events.BuildEvents; genericCommandEvents = Dte.Events.CommandEvents; menuCommandEvents = Dte.Events.CommandEvents[MenuEventGuid]; debuggerEvents = Dte.Events.DebuggerEvents; documentEvents = Dte.Events.DocumentEvents; findEvents = Dte.Events.FindEvents; miscFileEvents = Dte.Events.MiscFilesEvents; outputWindowEvents = Dte.Events.OutputWindowEvents; selectionEvents = Dte.Events.SelectionEvents; solutionEvents = Dte.Events.SolutionEvents; solutionItemsEvents = Dte.Events.SolutionItemsEvents; textEditorEvents = Dte.Events.TextEditorEvents; //attach osbide requests //var osbideEventGenerator = osbideEvents; //osbideEventGenerator.SolutionSubmitRequest += SolutionSubmitted; //osbideEventGenerator.SubmitEventRequested += SubmitEventRequested; //attach listeners for dte events //build events buildEvents.OnBuildBegin += OnBuildBegin; buildEvents.OnBuildDone += OnBuildDone; //generic command events genericCommandEvents.AfterExecute += GenericCommand_AfterCommandExecute; genericCommandEvents.BeforeExecute += GenericCommand_BeforeCommandExecute; //menu-related command command menuCommandEvents.AfterExecute += MenuCommand_AfterExecute; menuCommandEvents.BeforeExecute += MenuCommand_BeforeExecute; //debugger events debuggerEvents.OnContextChanged += OnContextChanged; debuggerEvents.OnEnterBreakMode += OnEnterBreakMode; debuggerEvents.OnEnterDesignMode += OnEnterDesignMode; debuggerEvents.OnEnterRunMode += OnEnterRunMode; debuggerEvents.OnExceptionNotHandled += OnExceptionNotHandled; debuggerEvents.OnExceptionThrown += OnExceptionThrown; //document events documentEvents.DocumentClosing += DocumentClosing; documentEvents.DocumentOpened += DocumentOpened; documentEvents.DocumentSaved += DocumentSaved; //find events findEvents.FindDone += FindDone; //misc file events miscFileEvents.ItemAdded += ProjectItemAdded; miscFileEvents.ItemRemoved += ProjectItemRemoved; miscFileEvents.ItemRenamed += ProjectItemRenamed; //output window events outputWindowEvents.PaneUpdated += OutputPaneUpdated; //selection events selectionEvents.OnChange += SelectionChange; //solution events solutionEvents.BeforeClosing += SolutionBeforeClosing; solutionEvents.Opened += SolutionOpened; solutionEvents.ProjectAdded += ProjectAdded; solutionEvents.Renamed += SolutionRenamed; //solution item events solutionItemsEvents.ItemAdded += SolutionItemAdded; solutionItemsEvents.ItemRemoved += SolutionItemRemoved; solutionItemsEvents.ItemRenamed += SolutionItemRenamed; //text editor events textEditorEvents.LineChanged += EditorLineChanged; // Create an event log watcher that will notify us if any windows event logs // of type Error are created in the "Application" log file. This is so we can // tell if a user experiences a runtime exception while running their code // outside debug mode. string queryStr = "*[System/Level=2]"; EventLogQuery query = new EventLogQuery("Application", PathType.LogName, queryStr); eventLogWatcher = new EventLogWatcher(query); // subscribe to it's event (Note: it is not enabled yet, it will be enabled if the // user runs without debuging) eventLogWatcher.EventRecordWritten += NETErrorEventRecordWritten; }
public void SolutionLoaded() { _dte = (DTE)GetService(typeof(DTE)); if (_dte == null) { Debug.WriteLine("Unable to get the EnvDTE.DTE service."); return; } var events = _dte.Events as Events2; if (events == null) { Debug.WriteLine("Unable to get the Events2."); return; } _documentEvents = events.get_DocumentEvents(); _documentEvents.DocumentSaved += BundlerSaveOnLoadPackage_DocumentSaved; _projectItemEvents = events.ProjectItemsEvents; _projectItemEvents.ItemAdded += BundlerSaveOnLoadPackage_ItemAdded; _projectItemEvents.ItemRenamed += BundlerSaveOnLoadPackage_ItemRenamed; Debug.WriteLine("Solution loaded and listener document event save listener set up."); }
/// <summary> /// /// </summary> /// <param name="project"></param> public void RegisterProject(ProjectNode project) { Guard.ArgumentNotNull(project, "project"); if (project.Project == null) return; System.Diagnostics.Debug.WriteLine(String.Format("project {0} registered", project.Name)); // Subscribe to Misc Files events if (_projectItemsEvents == null) { EnvDTE.DTE dte = project.Project.DTE; this._projectItemsEvents = ((EnvDTE80.Events2)dte.Events).ProjectItemsEvents; this._projectItemsEvents.ItemRenamed += new _dispProjectItemsEvents_ItemRenamedEventHandler(projectItemsEvents_ItemRenamed); this._projectItemsEvents.ItemRemoved += new _dispProjectItemsEvents_ItemRemovedEventHandler(projectItemsEvents_ItemRemoved); this._projectItemsEvents.ItemAdded += new _dispProjectItemsEvents_ItemAddedEventHandler(projectItemsEvents_ItemAdded); } UnregisterProject(project.Project); var knownCodeType = KnownCodeTypes.FromProject(project.Project); if (knownCodeType != null) { _knownCodeTypes.Add(project.UniqueName, knownCodeType); knownCodeType.OnAttributeAdded += new AttributeAdded(knownCodeType_OnAttributeAdded); knownCodeType.OnAttributeChanged += new AttributeChanged(knownCodeType_OnAttributeChanged); knownCodeType.OnAttributeRemoved += new AttributeRemoved(knownCodeType_OnAttributeRemoved); knownCodeType.OnBaseTypeChanged += new BaseTypeChanged(knownCodeType_OnBaseTypeChanged); knownCodeType.OnElementPropertiesChanged += new ElementPropertiesChanged(knownCodeType_OnElementPropertiesChanged); knownCodeType.OnFieldAdded += new FieldAdded(knownCodeType_OnFieldAdded); knownCodeType.OnFieldRemoved += new MemberRemoved(knownCodeType_OnFieldRemoved); knownCodeType.OnFieldRenamed += new FieldRenamed(knownCodeType_OnFieldRenamed); knownCodeType.OnMethodAdded += new MethodAdded(knownCodeType_OnMethodAdded); knownCodeType.OnMethodRemoved += new MemberRemoved(knownCodeType_OnMethodRemoved); knownCodeType.OnMethodRenamed += new MethodRenamed(knownCodeType_OnMethodRenamed); knownCodeType.OnNestedTypeAdded += new NestedTypeAdded(knownCodeType_OnNestedTypeAdded); knownCodeType.OnParameterAdded += new ParameterAdded(knownCodeType_OnParameterAdded); knownCodeType.OnParameterRemoved += new ParameterRemoved(knownCodeType_OnParameterRemoved); knownCodeType.OnParameterRenamed += new ParameterRenamed(knownCodeType_OnParameterRenamed); knownCodeType.OnPropertyAdded += new PropertyAdded(knownCodeType_OnPropertyAdded); knownCodeType.OnPropertyRemoved += new MemberRemoved(knownCodeType_OnPropertyRemoved); knownCodeType.OnTypeAdded += new TypeAdded(knownCodeType_OnTypeAdded); knownCodeType.OnTypeRemoved += new TypeRemoved(knownCodeType_OnTypeRemoved); knownCodeType.OnTypeRenamed += new TypeRenamed(knownCodeType_OnTypeRenamed); } }
/// <summary> /// Initializes this static class. /// </summary> /// <param name="provider">The service provider to set.</param> internal static void Initialize(IServiceProvider provider) { Param.AssertNotNull(provider, "provider"); serviceProvider = provider; DTE dte = GetDTE(); if (dte != null) { Events events = dte.Events; // Our "project enabled cache" is invalidated whenever the projects change, so clear our cached // values any time one an event for project changes occur. if (events != null) { if (projectItemsEvents == null) { projectItemsEvents = (ProjectItemsEvents)events.GetObject("ProjectItemsEvents"); if (projectItemsEvents != null) { projectItemsEvents.ItemAdded += ProjectItemsEventsClassItemAdded; projectItemsEvents.ItemRemoved += ProjectItemsEventsClassItemRemoved; projectItemsEvents.ItemRenamed += ProjectItemsEventsClassItemRenamed; } } if (solutionEvents == null) { solutionEvents = events.SolutionEvents; if (solutionEvents != null) { solutionEvents.ProjectAdded += SolutionEventsProjectAdded; solutionEvents.ProjectRemoved += SolutionEventsProjectRemoved; solutionEvents.ProjectRenamed += SolutionEventsProjectRenamed; } } } } }
public EventHandlerBase(IServiceProvider serviceProvider, IOsbideEventGenerator osbideEvents) { if (serviceProvider == null) { throw new Exception("Service provider is null"); } ServiceProvider = serviceProvider; //save references to dte events buildEvents = dte.Events.BuildEvents; genericCommandEvents = dte.Events.CommandEvents; menuCommandEvents = dte.Events.get_CommandEvents(MenuEventGuid); debuggerEvents = dte.Events.DebuggerEvents; documentEvents = dte.Events.DocumentEvents; findEvents = dte.Events.FindEvents; miscFileEvents = dte.Events.MiscFilesEvents; outputWindowEvents = dte.Events.OutputWindowEvents; selectionEvents = dte.Events.SelectionEvents; solutionEvents = dte.Events.SolutionEvents; solutionItemsEvents = dte.Events.SolutionItemsEvents; textEditorEvents = dte.Events.TextEditorEvents; //attach osbide requests _osbideEvents = osbideEvents; _osbideEvents.SolutionSubmitRequest += new EventHandler <SubmitAssignmentArgs>(OsbideSolutionSubmitted); _osbideEvents.SolutionDownloaded += new EventHandler <SolutionDownloadedEventArgs>(OsbideSolutionDownloaded); _osbideEvents.SubmitEventRequested += new EventHandler <SubmitEventArgs>(SubmitEventRequested); //attach listeners for dte events //build events buildEvents.OnBuildBegin += new _dispBuildEvents_OnBuildBeginEventHandler(OnBuildBegin); buildEvents.OnBuildDone += new _dispBuildEvents_OnBuildDoneEventHandler(OnBuildDone); //generic command events genericCommandEvents.AfterExecute += new _dispCommandEvents_AfterExecuteEventHandler(GenericCommand_AfterCommandExecute); genericCommandEvents.BeforeExecute += new _dispCommandEvents_BeforeExecuteEventHandler(GenericCommand_BeforeCommandExecute); //menu-related command command menuCommandEvents.AfterExecute += new _dispCommandEvents_AfterExecuteEventHandler(MenuCommand_AfterExecute); menuCommandEvents.BeforeExecute += new _dispCommandEvents_BeforeExecuteEventHandler(MenuCommand_BeforeExecute); //debugger events debuggerEvents.OnContextChanged += new _dispDebuggerEvents_OnContextChangedEventHandler(OnContextChanged); debuggerEvents.OnEnterBreakMode += new _dispDebuggerEvents_OnEnterBreakModeEventHandler(OnEnterBreakMode); debuggerEvents.OnEnterDesignMode += new _dispDebuggerEvents_OnEnterDesignModeEventHandler(OnEnterDesignMode); debuggerEvents.OnEnterRunMode += new _dispDebuggerEvents_OnEnterRunModeEventHandler(OnEnterRunMode); debuggerEvents.OnExceptionNotHandled += new _dispDebuggerEvents_OnExceptionNotHandledEventHandler(OnExceptionNotHandled); debuggerEvents.OnExceptionThrown += new _dispDebuggerEvents_OnExceptionThrownEventHandler(OnExceptionThrown); //document events documentEvents.DocumentClosing += new _dispDocumentEvents_DocumentClosingEventHandler(DocumentClosing); documentEvents.DocumentOpened += new _dispDocumentEvents_DocumentOpenedEventHandler(DocumentOpened); documentEvents.DocumentSaved += new _dispDocumentEvents_DocumentSavedEventHandler(DocumentSaved); //find events findEvents.FindDone += new _dispFindEvents_FindDoneEventHandler(FindDone); //misc file events miscFileEvents.ItemAdded += new _dispProjectItemsEvents_ItemAddedEventHandler(ProjectItemAdded); miscFileEvents.ItemRemoved += new _dispProjectItemsEvents_ItemRemovedEventHandler(ProjectItemRemoved); miscFileEvents.ItemRenamed += new _dispProjectItemsEvents_ItemRenamedEventHandler(ProjectItemRenamed); //output window events outputWindowEvents.PaneUpdated += new _dispOutputWindowEvents_PaneUpdatedEventHandler(OutputPaneUpdated); //selection events selectionEvents.OnChange += new _dispSelectionEvents_OnChangeEventHandler(SelectionChange); //solution events solutionEvents.BeforeClosing += new _dispSolutionEvents_BeforeClosingEventHandler(SolutionBeforeClosing); solutionEvents.Opened += new _dispSolutionEvents_OpenedEventHandler(SolutionOpened); solutionEvents.ProjectAdded += new _dispSolutionEvents_ProjectAddedEventHandler(ProjectAdded); solutionEvents.Renamed += new _dispSolutionEvents_RenamedEventHandler(SolutionRenamed); //solution item events solutionItemsEvents.ItemAdded += new _dispProjectItemsEvents_ItemAddedEventHandler(SolutionItemAdded); solutionItemsEvents.ItemRemoved += new _dispProjectItemsEvents_ItemRemovedEventHandler(SolutionItemRemoved); solutionItemsEvents.ItemRenamed += new _dispProjectItemsEvents_ItemRenamedEventHandler(SolutionItemRenamed); //text editor events textEditorEvents.LineChanged += new _dispTextEditorEvents_LineChangedEventHandler(EditorLineChanged); }
public void initDocumentEvents() { // Csharp project item events. _csProjectItemsEvents = (EnvDTE.ProjectItemsEvents)_applicationObject.Events.GetObject("CSharpProjectItemsEvents"); if(_csProjectItemsEvents != null) { _csProjectItemsEvents.ItemAdded += new _dispProjectItemsEvents_ItemAddedEventHandler(csharpItemAdded); _csProjectItemsEvents.ItemRemoved += new _dispProjectItemsEvents_ItemRemovedEventHandler(csharpItemRemoved); } // Cpp project item events. _vcProjectItemsEvents = (VCProjectEngineEvents)_applicationObject.Events.GetObject("VCProjectEngineEventsObject"); if(_vcProjectItemsEvents != null) { _vcProjectItemsEvents.ItemAdded += new _dispVCProjectEngineEvents_ItemAddedEventHandler(cppItemAdded); _vcProjectItemsEvents.ItemRemoved += new _dispVCProjectEngineEvents_ItemRemovedEventHandler(cppItemRemoved); } // Visual Studio document events. _docEvents = _applicationObject.Events.get_DocumentEvents(null); if(_docEvents != null) { _docEvents.DocumentSaved += new _dispDocumentEvents_DocumentSavedEventHandler(documentSaved); _docEvents.DocumentOpened += new _dispDocumentEvents_DocumentOpenedEventHandler(documentOpened); } }
private void BuildReference() { var project = _dte.ActiveDocument.ProjectItem.ContainingProject; string projectName = null; if (project != null) { if (_activeProjectName != project.FullName) { if (!_parsers.ContainsKey(project.FullName)) { ProjectItem doc = null; for (var i = 1; i <= project.ProjectItems.Count; i++) { doc = project.ProjectItems.Item(i); if (doc.Name == TemplatorConfigFileName) { break; } doc = null; } if (doc != null) { if (_documentEvents.ContainsKey(project.FullName)) { _documentEvents[project.FullName].DocumentSaved -= Document_Changed; _documentEvents.Remove(project.FullName); } var de = doc.DTE.Events.DocumentEvents; _documentEvents.AddOrOverwrite(project.FullName, de); de.DocumentSaved -= Document_Changed; de.DocumentSaved += Document_Changed; var config = TryGeTemplatorConfig(doc); if (config != null) { config.ContinueOnError = true; config.OnTokenFound = OnTemplatorTokenFound; _parsers.AddOrOverwrite(project.FullName, new TemplatorParser(config)); } } } } projectName = project.FullName; } else { _activeProjectName = null; } if (_activeProjectName != projectName || (_dte.ActiveDocument.Name == TemplatorConfigFileName) == (_parser != null)) { lock (LockObject) { _parser = _dte.ActiveDocument.Name == TemplatorConfigFileName ? null : projectName == null ? null : _parsers.GetOrDefault(projectName); } } _activeProjectName = projectName; if (_buildDefaultConfig) { if (_dte?.Solution != null) { _solutionEvents = _dte.Solution.DTE.Events.SolutionItemsEvents; _solutionEvents.ItemAdded -= SolutionItemsEvents_ItemChanged; _solutionEvents.ItemAdded += SolutionItemsEvents_ItemChanged; _solutionEvents.ItemRemoved -= SolutionItemsEvents_ItemChanged; _solutionEvents.ItemRemoved += SolutionItemsEvents_ItemChanged; _solutionEvents.ItemRenamed -= SolutionItemsEventsOnItemRenamed; _solutionEvents.ItemRenamed += SolutionItemsEventsOnItemRenamed; _buildDefaultConfig = false; } } }
public void removeDocumentEvents() { // Csharp project item events. if(_csProjectItemsEvents != null) { _csProjectItemsEvents.ItemAdded -= new _dispProjectItemsEvents_ItemAddedEventHandler(csharpItemAdded); _csProjectItemsEvents.ItemRemoved -= new _dispProjectItemsEvents_ItemRemovedEventHandler(csharpItemRemoved); _csProjectItemsEvents = null; } // Cpp project item events. if(_vcProjectItemsEvents != null) { _vcProjectItemsEvents.ItemAdded -= new _dispVCProjectEngineEvents_ItemAddedEventHandler(cppItemAdded); _vcProjectItemsEvents.ItemRemoved -= new _dispVCProjectEngineEvents_ItemRemovedEventHandler(cppItemRemoved); _vcProjectItemsEvents = null; } // Visual Studio document events. if(_docEvents != null) { _docEvents.DocumentSaved -= new _dispDocumentEvents_DocumentSavedEventHandler(documentSaved); _docEvents.DocumentOpened -= new _dispDocumentEvents_DocumentOpenedEventHandler(documentOpened); _docEvents = null; } }
protected override int QueryClose(out bool canClose) { int result = base.QueryClose(out canClose); if (!canClose) { return result; } this.TryStopWatching(); if (this.solutionEvents != null) { this.solutionEvents.Opened -= this.solutionEvents_Opened; this.solutionEvents.BeforeClosing -= this.solutionEvents_BeforeClosing; this.solutionEvents = null; } if (this.projectItemsEvents != null) { this.projectItemsEvents.ItemAdded -= this.projectItemsEvents_ItemAdded; this.projectItemsEvents.ItemRemoved -= this.projectItemsEvents_ItemRemoved; this.projectItemsEvents = null; } return result; }