Browse Source

Show rename menu command only for symbols of currently opened projects (not from external assemblies).

pull/297/head
Andreas Weizel 12 years ago
parent
commit
d0ffd8026b
  1. 10
      src/Main/Base/Project/ICSharpCode.SharpDevelop.addin
  2. 15
      src/Main/Base/Project/Src/Internal/ConditionEvaluators/SymbolTypeAtCaretConditionEvaluator.cs

10
src/Main/Base/Project/ICSharpCode.SharpDevelop.addin

@ -1892,10 +1892,12 @@
icon="Icons.16x16.SelectionArrow" icon="Icons.16x16.SelectionArrow"
class = "ICSharpCode.SharpDevelop.Editor.Commands.FindReferencesCommand"/> class = "ICSharpCode.SharpDevelop.Editor.Commands.FindReferencesCommand"/>
<MenuItem id = "Rename" <Condition name="SymbolTypeAtCaret" type="member,type,local" projectonly="true" action="Exclude">
label = "${res:SharpDevelop.Refactoring.RenameCommand}" <MenuItem id = "Rename"
shortcut="Ctrl+R" label = "${res:SharpDevelop.Refactoring.RenameCommand}"
class = "ICSharpCode.SharpDevelop.Editor.Commands.RenameSymbolCommand"/> shortcut="Ctrl+R"
class = "ICSharpCode.SharpDevelop.Editor.Commands.RenameSymbolCommand"/>
</Condition>
<MenuItem id = "GotoBrace" <MenuItem id = "GotoBrace"
label = "${res:XML.MainMenu.SearchMenu.GotoBrace}" label = "${res:XML.MainMenu.SearchMenu.GotoBrace}"

15
src/Main/Base/Project/Src/Internal/ConditionEvaluators/SymbolTypeAtCaretConditionEvaluator.cs

@ -20,6 +20,11 @@ namespace ICSharpCode.SharpDevelop.Internal.ConditionEvaluators
{ {
ResolveResult resolveResult = GetResolveResult(parameter); ResolveResult resolveResult = GetResolveResult(parameter);
if ((resolveResult != null) && !resolveResult.IsError) { 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 // Check type of symbol
string typesList = condition.Properties["type"]; string typesList = condition.Properties["type"];
if (typesList != null) { if (typesList != null) {
@ -58,9 +63,6 @@ namespace ICSharpCode.SharpDevelop.Internal.ConditionEvaluators
static ResolveResult GetResolveResult(object parameter) static ResolveResult GetResolveResult(object parameter)
{ {
if (parameter == null)
return GetResolveResultFromCurrentEditor();
if (parameter is ITextEditor) if (parameter is ITextEditor)
return GetResolveResultFromCurrentEditor((ITextEditor) parameter); return GetResolveResultFromCurrentEditor((ITextEditor) parameter);
@ -70,7 +72,7 @@ namespace ICSharpCode.SharpDevelop.Internal.ConditionEvaluators
if (parameter is IEntityModel) if (parameter is IEntityModel)
return GetResolveResultFromEntityModel((IEntityModel) parameter); return GetResolveResultFromEntityModel((IEntityModel) parameter);
return null; return GetResolveResultFromCurrentEditor();
} }
static ResolveResult GetResolveResultFromEntityModel(IEntityModel entityModel) static ResolveResult GetResolveResultFromEntityModel(IEntityModel entityModel)
@ -86,7 +88,10 @@ namespace ICSharpCode.SharpDevelop.Internal.ConditionEvaluators
static ResolveResult GetResolveResultFromCurrentEditor() static ResolveResult GetResolveResultFromCurrentEditor()
{ {
ITextEditor currentEditor = SD.GetActiveViewContentService<ITextEditor>(); ITextEditor currentEditor = SD.GetActiveViewContentService<ITextEditor>();
return GetResolveResultFromCurrentEditor(currentEditor); if (currentEditor != null)
return GetResolveResultFromCurrentEditor(currentEditor);
return null;
} }
static ResolveResult GetResolveResultFromCurrentEditor(ITextEditor currentEditor) static ResolveResult GetResolveResultFromCurrentEditor(ITextEditor currentEditor)

Loading…
Cancel
Save