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 @@ @@ -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}"

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

@ -20,6 +20,11 @@ namespace ICSharpCode.SharpDevelop.Internal.ConditionEvaluators @@ -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 @@ -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 @@ -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 @@ -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)

Loading…
Cancel
Save