protected override void Dispose(bool disposing) { if (disposing) { lock (_idleNodeModulesLock) { if (_idleNodeModulesTimer != null) { _idleNodeModulesTimer.Dispose(); } _idleNodeModulesTimer = null; } NodejsPackage.Instance.GeneralOptionsPage.ShowBrowserAndNodeLabelsChanged -= ShowBrowserAndNodeLabelsChanged; OnDispose?.Invoke(this, EventArgs.Empty); RemoveChild(ModulesNode); ModulesNode?.Dispose(); ModulesNode = null; #if DEV14 _typingsAcquirer = null; #endif } base.Dispose(disposing); }
protected override int ExecCommandThatDependsOnSelectedNodes(Guid cmdGroup, uint cmdId, uint cmdExecOpt, IntPtr vaIn, IntPtr vaOut, CommandOrigin commandOrigin, IList <HierarchyNode> selectedNodes, out bool handled) { if (cmdGroup == Guids.NodejsNpmCmdSet) { try { NpmHelpers.GetPathToNpm(this.Project.GetNodejsProject().GetProjectProperty(NodejsConstants.NodeExePath)); } catch (NpmNotFoundException) { Nodejs.ShowNodejsNotInstalled(); handled = true; return(VSConstants.S_OK); } switch (cmdId) { case PkgCmdId.cmdidNpmManageModules: if (!ShowManageModulesCommandOnNode(selectedNodes)) { ModulesNode.ManageModules(); handled = true; return(VSConstants.S_OK); } var node = selectedNodes[0] as AbstractNpmNode; if (node != null) { var abstractNpmNode = node; abstractNpmNode.ManageNpmModules(); handled = true; return(VSConstants.S_OK); } break; } } return(base.ExecCommandThatDependsOnSelectedNodes(cmdGroup, cmdId, cmdExecOpt, vaIn, vaOut, commandOrigin, selectedNodes, out handled)); }
protected override int ExecCommandThatDependsOnSelectedNodes(Guid cmdGroup, uint cmdId, uint cmdExecOpt, IntPtr vaIn, IntPtr vaOut, CommandOrigin commandOrigin, IList <HierarchyNode> selectedNodes, out bool handled) { if (cmdGroup == Guids.NodejsNpmCmdSet) { try { NpmHelpers.GetPathToNpm( Nodejs.GetAbsoluteNodeExePath( ProjectHome, Project.GetNodejsProject().GetProjectProperty(NodeProjectProperty.NodeExePath) )); } catch (NpmNotFoundException) { Nodejs.ShowNodejsNotInstalled(); handled = true; return(VSConstants.S_OK); } switch (cmdId) { case PkgCmdId.cmdidNpmManageModules: if (!ShowManageModulesCommandOnNode(selectedNodes)) { ModulesNode.ManageModules(); handled = true; return(VSConstants.S_OK); } var node = selectedNodes[0] as AbstractNpmNode; if (node != null) { var abstractNpmNode = node; abstractNpmNode.ManageNpmModules(); handled = true; return(VSConstants.S_OK); } break; } } else if (cmdGroup == Guids.NodejsCmdSet) { switch (cmdId) { case PkgCmdId.cmdidSetAsNodejsStartupFile: // Set the StartupFile project property to the Url of this node SetProjectProperty( CommonConstants.StartupFile, CommonUtils.GetRelativeFilePath(ProjectHome, selectedNodes[0].Url) ); handled = true; return(VSConstants.S_OK); case PkgCmdId.cmdidAddFileCommand: NewFileMenuGroup.NewFileUtilities.CreateNewFile(projectNode: this, containerId: selectedNodes[0].ID); handled = true; return(VSConstants.S_OK); } } return(base.ExecCommandThatDependsOnSelectedNodes(cmdGroup, cmdId, cmdExecOpt, vaIn, vaOut, commandOrigin, selectedNodes, out handled)); }
protected override void Reload() { using (new DebugTimer("Project Load")) { // Populate values from project properties before we do anything else. // Otherwise we run into race conditions where, for instance, _analysisIgnoredDirectories // is not properly set before the FileNodes get created in base.Reload() UpdateProjectNodeFromProjectProperties(); base.Reload(); SyncFileSystem(); NodejsPackage.Instance.CheckSurveyNews(false); ModulesNode.ReloadHierarchySafe(); #if DEV14 TryToAcquireTypings(new[] { "node" }); #endif } }
protected override void Reload() { using (new DebugTimer("Project Load")) { _intermediateOutputPath = Path.Combine(ProjectHome, GetProjectProperty("BaseIntermediateOutputPath")); if (_analyzer != null && _analyzer.RemoveUser()) { _analyzer.Dispose(); } _analyzer = new VsProjectAnalyzer(ProjectFolder); _analyzer.MaxLogLength = NodejsPackage.Instance.IntellisenseOptionsPage.AnalysisLogMax; LogAnalysisLevel(); base.Reload(); SyncFileSystem(); NodejsPackage.Instance.CheckSurveyNews(false); ModulesNode.ReloadHierarchySafe(); // scan for files which were loaded from cached analysis but no longer // exist and remove them. _analyzer.ReloadComplete(); var ignoredPaths = GetProjectProperty(NodejsConstants.AnalysisIgnoredDirectories); if (!string.IsNullOrWhiteSpace(ignoredPaths)) { _analysisIgnoredDirs = ignoredPaths.Split(';').Select(x => '\\' + x + '\\').ToArray(); } else { _analysisIgnoredDirs = new string[0]; } var maxFileSizeProp = GetProjectProperty(NodejsConstants.AnalysisMaxFileSize); int maxFileSize; if (maxFileSizeProp != null && Int32.TryParse(maxFileSizeProp, out maxFileSize)) { _maxFileSize = maxFileSize; } } }
protected override void Dispose(bool disposing) { if (disposing) { lock (_idleNodeModulesLock) { if (_idleNodeModulesTimer != null) { _idleNodeModulesTimer.Dispose(); } _idleNodeModulesTimer = null; } OnDispose?.Invoke(this, EventArgs.Empty); RemoveChild(ModulesNode); ModulesNode?.Dispose(); ModulesNode = null; #if DEV14 _typingsAcquirer = null; #endif } base.Dispose(disposing); }
Task INodePackageModulesCommands.InstallMissingModulesAsync() { //Fire off the command to update the missing modules // through NPM return(ModulesNode.InstallMissingModules()); }