From 19c6754f6c5290113161f9d145bba867dcfce726 Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Thu, 9 Sep 2010 18:08:45 +0200 Subject: [PATCH] Make "expand automatic property" available in class member bookmark. --- .../Project/SharpRefactoring.addin | 6 +++++- .../Src/PropertyRefactoringMenuBuilder.cs | 19 +++++++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/AddIns/Misc/SharpRefactoring/Project/SharpRefactoring.addin b/src/AddIns/Misc/SharpRefactoring/Project/SharpRefactoring.addin index 678ef91edb..ae242f7c2e 100644 --- a/src/AddIns/Misc/SharpRefactoring/Project/SharpRefactoring.addin +++ b/src/AddIns/Misc/SharpRefactoring/Project/SharpRefactoring.addin @@ -54,7 +54,11 @@ - + + + + + diff --git a/src/AddIns/Misc/SharpRefactoring/Project/Src/PropertyRefactoringMenuBuilder.cs b/src/AddIns/Misc/SharpRefactoring/Project/Src/PropertyRefactoringMenuBuilder.cs index 5b2f4d0c28..fa08bef4dd 100644 --- a/src/AddIns/Misc/SharpRefactoring/Project/Src/PropertyRefactoringMenuBuilder.cs +++ b/src/AddIns/Misc/SharpRefactoring/Project/Src/PropertyRefactoringMenuBuilder.cs @@ -12,6 +12,7 @@ using ICSharpCode.Core.WinForms; using ICSharpCode.NRefactory; using ICSharpCode.NRefactory.Ast; using ICSharpCode.SharpDevelop; +using ICSharpCode.SharpDevelop.Bookmarks; using ICSharpCode.SharpDevelop.Dom; using ICSharpCode.SharpDevelop.Dom.Refactoring; using ICSharpCode.SharpDevelop.Editor; @@ -33,10 +34,13 @@ namespace SharpRefactoring List items = new List(); MenuCommand cmd; - if (!(owner is ICSharpCode.SharpDevelop.Gui.ClassBrowser.MemberNode)) - return items.ToArray(); - - IProperty property = (owner as ICSharpCode.SharpDevelop.Gui.ClassBrowser.MemberNode).Member as IProperty; + IProperty property; + if (owner is ICSharpCode.SharpDevelop.Gui.ClassBrowser.MemberNode) + property = ((ICSharpCode.SharpDevelop.Gui.ClassBrowser.MemberNode)owner).Member as IProperty; + else if (owner is ClassMemberBookmark) + property = ((ClassMemberBookmark)owner).Member as IProperty; + else + property = null; if (property == null) return items.ToArray(); @@ -64,8 +68,12 @@ namespace SharpRefactoring return items.ToArray(); } + #region ExpandAutomaticProperty internal static bool IsAutomaticProperty(IProperty property) { + if (property.IsAbstract || property.DeclaringType.ClassType == ICSharpCode.SharpDevelop.Dom.ClassType.Interface) + return false; + string fileName = property.CompilationUnit.FileName; if (fileName == null) @@ -153,7 +161,9 @@ namespace SharpRefactoring ParserService.ParseCurrentViewContent(); } } + #endregion + #region ConvertToAutomaticProperty bool IsSimpleProperty(ITextEditor editor, IProperty property, out Ast.PropertyDeclaration astProperty, out string fieldName) { astProperty = null; @@ -299,5 +309,6 @@ namespace SharpRefactoring } } } + #endregion } }