From 045f41469c023a918bc7fd016b5ba09da5e315e5 Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Mon, 28 Feb 2011 16:30:35 +0100 Subject: [PATCH] added ctor snippet for VB and fixed VB-specific issues in the InsertCtor*-logic --- .../AvalonEdit.AddIn/Src/Snippets/SnippetManager.cs | 8 ++++++++ .../Project/Src/Gui/InsertCtorDialog.xaml.cs | 2 +- .../Project/Src/InsertCtorSnippetRefactoring.cs | 7 +++++-- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Snippets/SnippetManager.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Snippets/SnippetManager.cs index 2606e46be1..9fd70137df 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Snippets/SnippetManager.cs +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Snippets/SnippetManager.cs @@ -219,6 +219,14 @@ End If", End While", Keyword = "While" }, + new CodeSnippet { + Name = "ctor", + Description = "Constructor", + Text = @"Public Sub New(${anchor:parameterList}) + ${refactoring:ctor} +End Sub", + Keyword = "Sub" + }, new CodeSnippet { Name = "Select", Description = "Select statement", diff --git a/src/AddIns/Misc/SharpRefactoring/Project/Src/Gui/InsertCtorDialog.xaml.cs b/src/AddIns/Misc/SharpRefactoring/Project/Src/Gui/InsertCtorDialog.xaml.cs index 37bb94f5ea..475c5102d1 100644 --- a/src/AddIns/Misc/SharpRefactoring/Project/Src/Gui/InsertCtorDialog.xaml.cs +++ b/src/AddIns/Misc/SharpRefactoring/Project/Src/Gui/InsertCtorDialog.xaml.cs @@ -80,7 +80,7 @@ namespace SharpRefactoring.Gui new ThrowStatement( new ObjectCreateExpression( new TypeReference("ArgumentOutOfRangeException"), - new List() { new PrimitiveExpression(w.ParameterName, '"' + w.ParameterName + '"'), new IdentifierExpression(w.ParameterName), new BinaryOperatorExpression(new PrimitiveExpression("Value must be between "), BinaryOperatorType.Add, new BinaryOperatorExpression(new IdentifierExpression("lower"), BinaryOperatorType.Add, new BinaryOperatorExpression(new PrimitiveExpression(" and "), BinaryOperatorType.Add, new IdentifierExpression("upper")))) } + new List() { new PrimitiveExpression(w.ParameterName, '"' + w.ParameterName + '"'), new IdentifierExpression(w.ParameterName), new BinaryOperatorExpression(new PrimitiveExpression("Value must be between "), BinaryOperatorType.Concat, new BinaryOperatorExpression(new IdentifierExpression("lower"), BinaryOperatorType.Concat, new BinaryOperatorExpression(new PrimitiveExpression(" and "), BinaryOperatorType.Concat, new IdentifierExpression("upper")))) } ) ) ) diff --git a/src/AddIns/Misc/SharpRefactoring/Project/Src/InsertCtorSnippetRefactoring.cs b/src/AddIns/Misc/SharpRefactoring/Project/Src/InsertCtorSnippetRefactoring.cs index 4c636a0f20..4137800d7f 100644 --- a/src/AddIns/Misc/SharpRefactoring/Project/Src/InsertCtorSnippetRefactoring.cs +++ b/src/AddIns/Misc/SharpRefactoring/Project/Src/InsertCtorSnippetRefactoring.cs @@ -70,14 +70,17 @@ namespace SharpRefactoring { int i = 0; - foreach (var f in sourceClass.Fields.Where(field => !field.IsConst && field.IsStatic == sourceClass.IsStatic)) { + foreach (var f in sourceClass.Fields.Where(field => !field.IsConst + && field.IsStatic == sourceClass.IsStatic + && field.ReturnType != null)) { yield return new PropertyOrFieldWrapper(f) { Index = i, IsSelected = true }; i++; } foreach (var p in sourceClass.Properties.Where(prop => prop.CanSet && !prop.IsIndexer && PropertyRefactoringMenuBuilder.IsAutomaticProperty(prop) - && prop.IsStatic == sourceClass.IsStatic)) { + && prop.IsStatic == sourceClass.IsStatic + && prop.ReturnType != null)) { yield return new PropertyOrFieldWrapper(p) { Index = i, IsSelected = true }; i++; }