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
return; return;
} }
string typeString = GetShortType(resolvedType, state); string typeString = GetShortType(resolvedType, state);
if (typeString.Contains(".")) { completionList.AddEnumMembers (resolvedType, state, typeString);
completionList.AddType(resolvedType, typeString);
}
foreach (var field in resolvedType.GetFields ()) {
if (field.IsConst || field.IsStatic) {
completionList.Result.Add(factory.CreateEntityCompletionData(
field,
typeString + "." + field.Name
)
);
}
}
DefaultCompletionString = typeString; DefaultCompletionString = typeString;
} }

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

@ -28,6 +28,7 @@ using System.Collections.Generic;
using ICSharpCode.NRefactory.Completion; using ICSharpCode.NRefactory.Completion;
using ICSharpCode.NRefactory.TypeSystem; using ICSharpCode.NRefactory.TypeSystem;
using System.Linq; using System.Linq;
using ICSharpCode.NRefactory.CSharp.Resolver;
namespace ICSharpCode.NRefactory.CSharp.Completion namespace ICSharpCode.NRefactory.CSharp.Completion
{ {
@ -239,6 +240,25 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
return 1; 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
get; get;
set; set;
} }
public DomRegion FormattingRegion {
get;
set;
}
public AstFormattingVisitor(CSharpFormattingOptions policy, IDocument document, TextEditorOptions options = null) public AstFormattingVisitor(CSharpFormattingOptions policy, IDocument document, TextEditorOptions options = null)
{ {
@ -111,6 +116,22 @@ namespace ICSharpCode.NRefactory.CSharp
this.options = options ?? TextEditorOptions.Default; this.options = options ?? TextEditorOptions.Default;
curIndent = new Indent(this.options); 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> /// <summary>
/// Applies the changes to the input document. /// Applies the changes to the input document.

Loading…
Cancel
Save