From e5d6452d4a3e4ccbc5dac4f35baa1cfde3956d31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Kr=C3=BCger?= Date: Thu, 29 Mar 2012 17:10:18 +0200 Subject: [PATCH] Code completion name propsoal now uses the word parser to break words. --- .../Completion/CSharpCompletionEngine.cs | 27 ++++++++----------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs b/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs index e0d70d39dd..2f3e739421 100644 --- a/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs +++ b/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs @@ -157,23 +157,18 @@ namespace ICSharpCode.NRefactory.CSharp.Completion } yield break; } - - var names = new List (); - int offset1 = document.GetOffset(type.StartLocation); - int offset2 = document.GetOffset(type.EndLocation); - - string name = document.GetText(offset1, offset2 - offset1); - int lastNameStart = 0; - for (int i = 1; i < name.Length; i++) { - if (Char.IsUpper(name [i])) { - names.Add(name.Substring(lastNameStart, i - lastNameStart)); - lastNameStart = i; - } + string name; + if (type is SimpleType) { + name = ((SimpleType)type).Identifier; + } else if (type is MemberType) { + name = ((SimpleType)type).Identifier; + } else { + yield break; } - - names.Add(name.Substring(lastNameStart, name.Length - lastNameStart)); - - var possibleName = new StringBuilder (); + + var names = WordParser.BreakWords(name); + + var possibleName = new StringBuilder(); for (int i = 0; i < names.Count; i++) { possibleName.Length = 0; for (int j = i; j < names.Count; j++) {