예제 #1
0
 void Actions_OpenProject(object sender, OpenProjectEventArgs e)
 {
     if (!CentoCore.Instance.OpenProject(e.ProjectFilename))
     {
         this.View.DisplayErrorMessage("Error", "Failed to open project file.");
     }
 }
예제 #2
0
        private void HandleAfterOpenProjectEvent(object sender, OpenProjectEventArgs e)
        {
            //
            // A project has been loaded. Save the current time.
            //
            long finishTime = DateTimeOffset.Now.ToUnixTimeMilliseconds();

            //ThreadHelper.ThrowIfNotOnUIThread(k_ExtensionName);

            //
            // Get the project name.
            //
            int result = e.Hierarchy.GetProperty(VSConstants.VSITEMID_ROOT,
                                                 (int)__VSHPROPID.VSHPROPID_Name,
                                                 out Object nameAsObject);

            if (ErrorHandler.Failed(result))
            {
                OutputLine(string.Format("GetProperty failed : {0:X8}", result));
                return;
            }
            var projectName = (string)nameAsObject;

            //
            // Get the project GUID.
            //
            result = e.Hierarchy.GetGuidProperty(VSConstants.VSITEMID_ROOT,
                                                 (int)__VSHPROPID.VSHPROPID_ProjectIDGuid,
                                                 out Guid projectGuid);
            if (ErrorHandler.Failed(result))
            {
                OutputLine(string.Format("GetGuidProperty failed : {0:X8}", result));
                return;
            }

            //
            // Pop the start time for the project and log it.
            //
            if (!m_LoadingTimes.TryGetValue(projectGuid, out long startTime))
            {
                //
                // The project called "Miscellaneous Files" is reported as an
                // empty GUID during HandleBeforeOpenProjectEvent. Check if this
                // completion is for the project.
                //
                projectGuid = Guid.Empty;
                if (!m_LoadingTimes.TryGetValue(projectGuid, out startTime))
                {
                    OutputLine(string.Format("TryGetValue failed : {0}", projectName));
                    return;
                }
            }

            m_LoadingTimes.Remove(projectGuid);

            long elapsedTime = finishTime - startTime;

            OutputLine(string.Format("{0,-50}, {1,20},", projectName, elapsedTime));
        }
예제 #3
0
        private void SolutionEvents_OnAfterOpenProject(object sender, OpenProjectEventArgs e)
        {
            var hierarchy = e.Hierarchy;
              var project = hierarchy.GetProp<EnvDTE.Project>(VSConstants.VSITEMID_ROOT, __VSHPROPID.VSHPROPID_ExtObject);

              if (project == null)
            return; // not supported prfoject type

              var projectId   = new ProjectId(_stringManager.GetId(project.FullName));
              var projectPath = project.FullName;

              _loadingProjectPath = projectPath;
              _loadingProjectId   = projectId;

              foreach (var server in _servers)
            server.ProjectStartLoading(projectId, projectPath);

              Debug.WriteLine($"tr: AfterOpenProject(IsAdded='{e.IsAdded}', FullName='{projectPath}' id={projectId})");

              foreach (var server in _servers)
            server.AddedMscorlibReference(projectId);

              var listener = new HierarchyListener(hierarchy);

              listener.ItemAdded      += FileAdded;
              listener.ItemDeleted    += FileDeleted;
              listener.ReferenceAdded += Listener_ReferenceAdded;
              listener.StartListening(true);

              _listenersMap.Add(hierarchy, listener);

              // We need apdate all references when a project adding in exist solution
              if (e.IsAdded)
              {
              }

              foreach (var server in _servers)
            server.ProjectLoaded(projectId);
        }
예제 #4
0
 private void SolutionEvents_OnAfterAsynchOpenProject(object sender, OpenProjectEventArgs e)
 {
     Debug.WriteLine($"tr: AfterChangeProjectParent(Hierarchy='{e.Hierarchy}', IsAdded='{e.IsAdded}' _currentSolutionId={_currentSolutionId})");
 }
예제 #5
0
 private void OnAfterOpenProject(object sender, OpenProjectEventArgs e)
 {
     _hierarchieslistener.AddHierarchy(e.Hierarchy);
     RestartTimer();
 }