Browse Source

Merge branch 'master' into soc-master

newNRvisualizers
Simon Lindgren 13 years ago
parent
commit
7f6620e865
  1. 13
      ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs
  2. 20
      ICSharpCode.NRefactory.CSharp/Completion/CompletionDataWrapper.cs
  3. 21
      ICSharpCode.NRefactory.CSharp/Formatter/AstFormattingVisitor.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.IsPublic && (field.IsConst || field.IsStatic)) {
Result.Add(Factory.CreateEntityCompletionData(
field,
typeString + "." + field.Name
)
);
}
}
}
}
}

21
ICSharpCode.NRefactory.CSharp/Formatter/AstFormattingVisitor.cs

@ -97,6 +97,11 @@ namespace ICSharpCode.NRefactory.CSharp @@ -97,6 +97,11 @@ namespace ICSharpCode.NRefactory.CSharp
get;
set;
}
public DomRegion FormattingRegion {
get;
set;
}
public AstFormattingVisitor(CSharpFormattingOptions policy, IDocument document, TextEditorOptions options = null)
{
@ -111,6 +116,22 @@ namespace ICSharpCode.NRefactory.CSharp @@ -111,6 +116,22 @@ namespace ICSharpCode.NRefactory.CSharp
this.options = options ?? TextEditorOptions.Default;
curIndent = new Indent(this.options);
}
protected virtual void VisitChildren (AstNode node)
{
if (!FormattingRegion.IsEmpty) {
if (node.EndLocation < FormattingRegion.Begin || node.StartLocation > FormattingRegion.End)
return;
}
AstNode next;
for (var child = node.FirstChild; child != null; child = next) {
// Store next to allow the loop to continue
// if the visitor removes/replaces child.
next = child.NextSibling;
child.AcceptVisitor (this);
}
}
/// <summary>
/// Applies the changes to the input document.

Loading…
Cancel
Save