in Nodejs/Product/Nodejs/Project/DependencyNode.cs [119:200]
internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
{
// Latter condition is because it's only valid to carry out npm operations
// on top level dependencies of the user's project, not sub-dependencies.
// Performing operations on sub-dependencies would just break things.
if (cmdGroup == Guids.NodejsNpmCmdSet)
{
switch (cmd)
{
case PkgCmdId.cmdidNpmOpenModuleHomepage:
if (this.Package.Homepages != null)
{
using (var enumerator = this.Package.Homepages.GetEnumerator())
{
if (enumerator.MoveNext() && !string.IsNullOrEmpty(enumerator.Current))
{
result = QueryStatusResult.ENABLED | QueryStatusResult.SUPPORTED;
}
else
{
result = QueryStatusResult.SUPPORTED;
}
}
}
return VSConstants.S_OK;
}
if (null == this._parent)
{
switch (cmd)
{
case PkgCmdId.cmdidNpmInstallSingleMissingModule:
if (null == this._projectNode.ModulesNode
|| this._projectNode.ModulesNode.IsCurrentStateASuppressCommandsMode())
{
result = QueryStatusResult.SUPPORTED;
}
else
{
if (null != this.Package)
{
result = QueryStatusResult.ENABLED | QueryStatusResult.SUPPORTED;
}
else
{
result = QueryStatusResult.SUPPORTED;
}
}
return VSConstants.S_OK;
case PkgCmdId.cmdidNpmUpdateSingleModule:
case PkgCmdId.cmdidNpmUninstallModule:
if (null != this._projectNode.ModulesNode &&
!this._projectNode.ModulesNode.IsCurrentStateASuppressCommandsMode())
{
result = QueryStatusResult.ENABLED | QueryStatusResult.SUPPORTED;
}
else
{
result = QueryStatusResult.SUPPORTED;
}
return VSConstants.S_OK;
case PkgCmdId.cmdidNpmInstallModules:
case PkgCmdId.cmdidNpmUpdateModules:
result = QueryStatusResult.SUPPORTED | QueryStatusResult.INVISIBLE;
return VSConstants.S_OK;
}
}
}
else if (cmdGroup == Microsoft.VisualStudioTools.Project.VsMenus.guidStandardCommandSet2K)
{
switch ((VsCommands2K)cmd)
{
case CommonConstants.OpenFolderInExplorerCmdId:
result = QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
return VSConstants.S_OK;
}
}
return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
}