in Python/Product/PythonTools/PythonTools/Project/InterpretersNode.cs [391:468]
internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result) {
if (cmdGroup == VsMenus.guidStandardCommandSet2K) {
switch ((VsCommands2K)cmd) {
case CommonConstants.OpenFolderInExplorerCmdId:
result = QueryStatusResult.SUPPORTED;
if (_factory != null && Directory.Exists(_factory.Configuration.GetPrefixPath())) {
result |= QueryStatusResult.ENABLED;
}
return VSConstants.S_OK;
}
}
if (cmdGroup == CommonGuidList.guidPythonToolsCmdSet) {
switch (cmd) {
case PythonConstants.ActivateEnvironment:
result |= QueryStatusResult.SUPPORTED;
if (_factory != null && _factory.Configuration.IsAvailable() &&
ProjectMgr.ActiveInterpreter != _factory &&
Directory.Exists(_factory.Configuration.GetPrefixPath())
) {
result |= QueryStatusResult.ENABLED;
}
return VSConstants.S_OK;
case PythonConstants.InstallPythonPackage:
result |= QueryStatusResult.SUPPORTED;
if (_factory != null && _factory.Configuration.IsAvailable() &&
Directory.Exists(_factory.Configuration.GetPrefixPath())
) {
result |= QueryStatusResult.ENABLED;
}
return VSConstants.S_OK;
case PythonConstants.InstallRequirementsTxt:
result |= QueryStatusResult.SUPPORTED;
if (_factory != null && _factory.IsRunnable() &&
File.Exists(PathUtils.GetAbsoluteFilePath(ProjectMgr.ProjectHome, "requirements.txt"))) {
result |= QueryStatusResult.ENABLED;
}
return VSConstants.S_OK;
case PythonConstants.GenerateRequirementsTxt:
result |= QueryStatusResult.SUPPORTED;
if (_factory != null && _factory.Configuration.IsAvailable()) {
result |= QueryStatusResult.ENABLED;
}
return VSConstants.S_OK;
case PythonConstants.OpenInteractiveForEnvironment:
result |= QueryStatusResult.SUPPORTED;
if (_factory != null && _factory.Configuration.IsAvailable() &&
File.Exists(_factory.Configuration.InterpreterPath)
) {
result |= QueryStatusResult.ENABLED;
}
return VSConstants.S_OK;
}
}
if (cmdGroup == ProjectMgr.SharedCommandGuid) {
switch ((SharedCommands)cmd) {
case SharedCommands.OpenCommandPromptHere:
result |= QueryStatusResult.SUPPORTED;
if (_factory != null && _factory.Configuration.IsAvailable() &&
Directory.Exists(_factory.Configuration.GetPrefixPath()) &&
File.Exists(_factory.Configuration.InterpreterPath)) {
result |= QueryStatusResult.ENABLED;
}
return VSConstants.S_OK;
case SharedCommands.CopyFullPath:
result |= QueryStatusResult.SUPPORTED;
if (_factory != null && _factory.Configuration.IsAvailable() &&
Directory.Exists(_factory.Configuration.GetPrefixPath()) &&
File.Exists(_factory.Configuration.InterpreterPath)) {
result |= QueryStatusResult.ENABLED;
}
return VSConstants.S_OK;
}
}
return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
}