Browse Source

[Completion] Filtered double added enums.

newNRvisualizers
Mike Krüger 13 years ago
parent
commit
68e12e4a74
  1. 13
      ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs
  2. 20
      ICSharpCode.NRefactory.CSharp/Completion/CompletionDataWrapper.cs

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

@ -2256,18 +2256,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -2256,18 +2256,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
return;
}
string typeString = GetShortType(resolvedType, state);
if (typeString.Contains(".")) {
completionList.AddType(resolvedType, typeString);
}
foreach (var field in resolvedType.GetFields ()) {
if (field.IsConst || field.IsStatic) {
completionList.Result.Add(factory.CreateEntityCompletionData(
field,
typeString + "." + field.Name
)
);
}
}
completionList.AddEnumMembers (resolvedType, state, typeString);
DefaultCompletionString = typeString;
}

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

@ -28,6 +28,7 @@ using System.Collections.Generic; @@ -28,6 +28,7 @@ using System.Collections.Generic;
using ICSharpCode.NRefactory.Completion;
using ICSharpCode.NRefactory.TypeSystem;
using System.Linq;
using ICSharpCode.NRefactory.CSharp.Resolver;
namespace ICSharpCode.NRefactory.CSharp.Completion
{
@ -239,6 +240,25 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -239,6 +240,25 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
return 1;
}
}
HashSet<IType> addedEnums = new HashSet<IType> ();
public void AddEnumMembers (IType resolvedType, CSharpResolver state, string typeString)
{
if (addedEnums.Contains (resolvedType))
return;
addedEnums.Add (resolvedType);
if (typeString.Contains(".")) {
AddType(resolvedType, typeString);
}
foreach (var field in resolvedType.GetFields ()) {
if (field.IsConst || field.IsStatic) {
Result.Add(Factory.CreateEntityCompletionData(
field,
typeString + "." + field.Name
)
);
}
}
}
}
}

Loading…
Cancel
Save