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;
        }
Example #4
0
		/// <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);
			}
		}
Example #5
0
 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;
     }
 }
Example #7
0
		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;
        }
Example #9
0
        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);
            }
        }
Example #10
0
        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;
        }
Example #11
0
        // 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);
        }
Example #12
0
        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;
        }
Example #13
0
        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();
        }
Example #14
0
 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;            
 }
Example #15
0
        // 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;
        }
Example #16
0
 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;
            }
        }
Example #19
0
        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);
            }
        }
Example #20
0
        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;
        }
Example #21
0
        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;
        }
Example #24
0
        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);
        }
Example #25
0
        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();
        }
Example #26
0
        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;
            };
        }
Example #27
0
        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);
        }
Example #28
0
        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();
        }
Example #31
0
        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);
				}
			}
Example #36
0
		/// <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);
			}
		}
Example #37
0
        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();
                }
            };
        }
Example #38
0
        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;
            }
        }
Example #39
0
        /// <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;
            }
        }
Example #41
0
        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);
        }
Example #42
0
        // 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>();
        }
Example #44
0
        /// <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");
            }
        }
Example #45
0
        /// <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;
            }
        }
        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);
            }
        }
    /// <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);
        }
Example #49
0
        void SubscribeToProjectsItemsEvents()
        {
            UnsubscribeFromProjectsItemsEvents();

            _prjItemsEvents = ((Events2)_applicationObject.Events).ProjectItemsEvents;
            _prjItemsEvents.ItemAdded += ProjectItemsEvents_ItemAdded;
            _prjItemsEvents.ItemRemoved += ProjectItemsEvents_ItemRemoved;
            _prjItemsEvents.ItemRenamed += ProjectItemsEvents_ItemRenamed;
        }
Example #50
0
        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);
            }
        }
        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;
        }
        /// <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;
                        }
                    }
                }
            }
        }
Example #55
0
        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);
        }
Example #56
0
        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);
            }
        }
Example #57
0
        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;
                }
            }
        }
Example #58
0
        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;
        }