Skip to content
This repository was archived by the owner on Oct 16, 2020. It is now read-only.

Commit ce21246

Browse files
committed
Added Ctrl+F6 shortcut for "Find base symbols", finding base or derived symbols on constructors and destructors now the same as for types.
1 parent e9864a2 commit ce21246

File tree

3 files changed

+20
-7
lines changed

3 files changed

+20
-7
lines changed

src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.addin

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@
151151

152152
<MenuItem id = "FindBaseClassesOrMembers"
153153
label = "${res:SharpDevelop.Refactoring.FindBaseClassesOrMembersCommand}"
154+
shortcut="Control+F6"
154155
icon="Icons.16x16.Interface"
155156
class = "ICSharpCode.AvalonEdit.AddIn.ContextActions.FindBaseClassesOrMembers"/>
156157
</Path>

src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/FindBaseClasses.cs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,13 @@ public override void Run(ResolveResult symbol)
4040
MakePopupWithBaseClasses((ITypeDefinition)entityUnderCaret).OpenAtCaretAndFocus();
4141
return;
4242
}
43-
if (entityUnderCaret is IMember) {
44-
MakePopupWithBaseMembers((IMember)entityUnderCaret).OpenAtCaretAndFocus();
43+
var member = entityUnderCaret as IMember;
44+
if (member != null) {
45+
if ((member.SymbolKind == SymbolKind.Constructor) || (member.SymbolKind == SymbolKind.Destructor)) {
46+
MakePopupWithBaseClasses(member.DeclaringTypeDefinition).OpenAtCaretAndFocus();
47+
} else {
48+
MakePopupWithBaseMembers(member).OpenAtCaretAndFocus();
49+
}
4550
return;
4651
}
4752
MessageService.ShowError("${res:ICSharpCode.Refactoring.NoClassOrMemberUnderCursorError}");
@@ -67,12 +72,13 @@ static ObservableCollection<ContextActionViewModel> BuildBaseClassListViewModel(
6772
static ContextActionsPopup MakePopupWithBaseMembers(IMember member)
6873
{
6974
var baseClassList = member.DeclaringTypeDefinition.GetAllBaseTypeDefinitions().Where(
70-
baseClass => baseClass != member.DeclaringTypeDefinition).ToList();
75+
baseClass => baseClass != member.DeclaringTypeDefinition).ToList();
7176
var popupViewModel = new ContextActionsPopupViewModel {
7277
Title = MenuService.ConvertLabel(StringParser.Parse(
7378
"${res:SharpDevelop.Refactoring.BaseMembersOf}",
7479
new StringTagPair("Name", member.FullName))
75-
)};
80+
)
81+
};
7682
popupViewModel.Actions = BuildBaseMemberListViewModel(member);
7783
return new ContextActionsPopup { Actions = popupViewModel };
7884
}

src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/FindDerivedClassesOrOverrides.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,13 @@ public override void Run(ResolveResult symbol)
4040
MakePopupWithDerivedClasses((ITypeDefinition)entityUnderCaret).OpenAtCaretAndFocus();
4141
return;
4242
}
43-
if (entityUnderCaret is IMember && ((IMember)entityUnderCaret).IsOverridable) {
44-
MakePopupWithOverrides((IMember)entityUnderCaret).OpenAtCaretAndFocus();
43+
var member = entityUnderCaret as IMember;
44+
if (member != null) {
45+
if ((member.SymbolKind == SymbolKind.Constructor) || (member.SymbolKind == SymbolKind.Destructor)) {
46+
MakePopupWithDerivedClasses(member.DeclaringTypeDefinition).OpenAtCaretAndFocus();
47+
} else if (member.IsOverridable) {
48+
MakePopupWithOverrides(member).OpenAtCaretAndFocus();
49+
}
4550
return;
4651
}
4752
MessageService.ShowError("${res:ICSharpCode.Refactoring.NoClassOrOverridableSymbolUnderCursorError}");
@@ -80,7 +85,8 @@ static ContextActionsPopup MakePopupWithOverrides(IMember member)
8085
Title = MenuService.ConvertLabel(StringParser.Parse(
8186
"${res:SharpDevelop.Refactoring.OverridesOf}",
8287
new StringTagPair("Name", member.FullName))
83-
)};
88+
)
89+
};
8490
popupViewModel.Actions = new OverridesPopupTreeViewModelBuilder(member).BuildTreeViewModel(derivedClassesTree.Children);
8591
return new ContextActionsPopup { Actions = popupViewModel };
8692
}

0 commit comments

Comments
 (0)