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

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

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

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

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

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

@ -147,9 +147,9 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion @@ -147,9 +147,9 @@ namespace ICSharpCode.NRefactory.CSharp.CodeCompletion
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)

Loading…
Cancel
Save