Browse Source

[Completion] CreateNamespace completion data now takes a INamespace

instead of a string.
newNRvisualizers
mkrueger 14 years ago committed by mkrueger
parent
commit
740a30c929
  1. 10
      ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs
  2. 15
      ICSharpCode.NRefactory.CSharp/Completion/CompletionDataWrapper.cs
  3. 2
      ICSharpCode.NRefactory.CSharp/Completion/ICompletionDataFactory.cs
  4. 4
      ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs

10
ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs

@ -1384,7 +1384,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
for (var n = scope; n != null; n = n.Parent) { for (var n = scope; n != null; n = n.Parent) {
foreach (var pair in n.UsingAliases) { foreach (var pair in n.UsingAliases) {
wrapper.AddNamespace(pair.Key); wrapper.AddAlias(pair.Key);
} }
foreach (var u in n.Usings) { foreach (var u in n.Usings) {
foreach (var type in u.Types) { foreach (var type in u.Types) {
@ -1418,7 +1418,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
} }
foreach (var curNs in n.Namespace.ChildNamespaces) { foreach (var curNs in n.Namespace.ChildNamespaces) {
wrapper.AddNamespace(curNs.Name); wrapper.AddNamespace(curNs);
} }
} }
} }
@ -2173,7 +2173,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
} }
} }
foreach (var ns in nr.Namespace.ChildNamespaces) { foreach (var ns in nr.Namespace.ChildNamespaces) {
result.AddNamespace(ns.Name); result.AddNamespace(ns);
} }
} else if (resolveResult is TypeResolveResult) { } else if (resolveResult is TypeResolveResult) {
var type = resolveResult.Type; var type = resolveResult.Type;
@ -2194,7 +2194,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
} }
foreach (var ns in Compilation.RootNamespace.ChildNamespaces) { foreach (var ns in Compilation.RootNamespace.ChildNamespaces) {
yield return factory.CreateNamespaceCompletionData(ns.Name); yield return factory.CreateNamespaceCompletionData(ns);
} }
} }
@ -2306,7 +2306,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
} }
foreach (var ns in nr.Namespace.ChildNamespaces) { foreach (var ns in nr.Namespace.ChildNamespaces) {
namespaceContents.AddNamespace(ns.Name); namespaceContents.AddNamespace(ns);
} }
return namespaceContents.Result; return namespaceContents.Result;
} }

15
ICSharpCode.NRefactory.CSharp/Completion/CompletionDataWrapper.cs

@ -59,6 +59,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
result.Add (data); result.Add (data);
} }
public void AddCustom (string displayText, string description = null, string completionText = null) public void AddCustom (string displayText, string description = null, string completionText = null)
{ {
result.Add (Factory.CreateLiteralCompletionData (displayText, description, completionText)); result.Add (Factory.CreateLiteralCompletionData (displayText, description, completionText));
@ -66,14 +67,20 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
HashSet<string> usedNamespaces = new HashSet<string> (); HashSet<string> usedNamespaces = new HashSet<string> ();
public void AddNamespace (string name) public void AddNamespace (INamespace ns)
{ {
if (string.IsNullOrEmpty (name) || usedNamespaces.Contains (name)) if (usedNamespaces.Contains (ns.Name))
return; return;
usedNamespaces.Add (name); usedNamespaces.Add (ns.Name);
result.Add (Factory.CreateNamespaceCompletionData (name)); result.Add (Factory.CreateNamespaceCompletionData (ns));
} }
public void AddAlias(string alias)
{
result.Add (Factory.CreateLiteralCompletionData (alias));
}
HashSet<string> usedTypes = new HashSet<string> (); HashSet<string> usedTypes = new HashSet<string> ();
public ICompletionData AddType(IType type, string shortType) public ICompletionData AddType(IType type, string shortType)

2
ICSharpCode.NRefactory.CSharp/Completion/ICompletionDataFactory.cs

@ -51,7 +51,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
/// </param> /// </param>
ICompletionData CreateLiteralCompletionData (string title, string description = null, string insertText = null); ICompletionData CreateLiteralCompletionData (string title, string description = null, string insertText = null);
ICompletionData CreateNamespaceCompletionData (string name); ICompletionData CreateNamespaceCompletionData (INamespace name);
ICompletionData CreateVariableCompletionData (IVariable variable); ICompletionData CreateVariableCompletionData (IVariable variable);

4
ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs

@ -147,9 +147,9 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion
return new CompletionData (title); return new CompletionData (title);
} }
public ICompletionData CreateNamespaceCompletionData (string name) public ICompletionData CreateNamespaceCompletionData (INamespace ns)
{ {
return new CompletionData (name); return new CompletionData (ns.Name);
} }
public ICompletionData CreateVariableCompletionData (ICSharpCode.NRefactory.TypeSystem.IVariable variable) public ICompletionData CreateVariableCompletionData (ICSharpCode.NRefactory.TypeSystem.IVariable variable)

Loading…
Cancel
Save