diff --git a/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin b/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin index ed0193cdcd..be3663a035 100755 --- a/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin +++ b/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin @@ -1892,10 +1892,12 @@ icon="Icons.16x16.SelectionArrow" class = "ICSharpCode.SharpDevelop.Editor.Commands.FindReferencesCommand"/> - <MenuItem id = "Rename" - label = "${res:SharpDevelop.Refactoring.RenameCommand}" - shortcut="Ctrl+R" - class = "ICSharpCode.SharpDevelop.Editor.Commands.RenameSymbolCommand"/> + <Condition name="SymbolTypeAtCaret" type="member,type,local" projectonly="true" action="Exclude"> + <MenuItem id = "Rename" + label = "${res:SharpDevelop.Refactoring.RenameCommand}" + shortcut="Ctrl+R" + class = "ICSharpCode.SharpDevelop.Editor.Commands.RenameSymbolCommand"/> + </Condition> <MenuItem id = "GotoBrace" label = "${res:XML.MainMenu.SearchMenu.GotoBrace}" diff --git a/src/Main/Base/Project/Src/Internal/ConditionEvaluators/SymbolTypeAtCaretConditionEvaluator.cs b/src/Main/Base/Project/Src/Internal/ConditionEvaluators/SymbolTypeAtCaretConditionEvaluator.cs index b9e0d3a256..92215464a7 100644 --- a/src/Main/Base/Project/Src/Internal/ConditionEvaluators/SymbolTypeAtCaretConditionEvaluator.cs +++ b/src/Main/Base/Project/Src/Internal/ConditionEvaluators/SymbolTypeAtCaretConditionEvaluator.cs @@ -20,6 +20,11 @@ namespace ICSharpCode.SharpDevelop.Internal.ConditionEvaluators { ResolveResult resolveResult = GetResolveResult(parameter); if ((resolveResult != null) && !resolveResult.IsError) { + // Check if project-only entities should be valid + var defRegion = resolveResult.GetDefinitionRegion(); + if ((condition.Properties["projectonly"] == "true") && (resolveResult.GetDefinitionRegion().IsEmpty)) + return false; + // Check type of symbol string typesList = condition.Properties["type"]; if (typesList != null) { @@ -58,9 +63,6 @@ namespace ICSharpCode.SharpDevelop.Internal.ConditionEvaluators static ResolveResult GetResolveResult(object parameter) { - if (parameter == null) - return GetResolveResultFromCurrentEditor(); - if (parameter is ITextEditor) return GetResolveResultFromCurrentEditor((ITextEditor) parameter); @@ -70,7 +72,7 @@ namespace ICSharpCode.SharpDevelop.Internal.ConditionEvaluators if (parameter is IEntityModel) return GetResolveResultFromEntityModel((IEntityModel) parameter); - return null; + return GetResolveResultFromCurrentEditor(); } static ResolveResult GetResolveResultFromEntityModel(IEntityModel entityModel) @@ -86,7 +88,10 @@ namespace ICSharpCode.SharpDevelop.Internal.ConditionEvaluators static ResolveResult GetResolveResultFromCurrentEditor() { ITextEditor currentEditor = SD.GetActiveViewContentService<ITextEditor>(); - return GetResolveResultFromCurrentEditor(currentEditor); + if (currentEditor != null) + return GetResolveResultFromCurrentEditor(currentEditor); + + return null; } static ResolveResult GetResolveResultFromCurrentEditor(ITextEditor currentEditor)