提交 83796412 编写于 作者: B Balaji Soundrarajan

Merge pull request #1201 from basoundr/fix776spacingmethodcallattribute

Apply Spacing rules around methodcall inside Attributes
......@@ -73,12 +73,14 @@ public static bool IsCloseParenInParameterList(this SyntaxToken token)
public static bool IsOpenParenInArgumentList(this SyntaxToken token)
{
return token.Kind() == SyntaxKind.OpenParenToken && token.Parent.Kind() == SyntaxKind.ArgumentList;
return token.Kind() == SyntaxKind.OpenParenToken &&
(token.Parent.IsKind(SyntaxKind.ArgumentList) || token.Parent.IsKind(SyntaxKind.AttributeArgumentList));
}
public static bool IsCloseParenInArgumentList(this SyntaxToken token)
{
return token.Kind() == SyntaxKind.CloseParenToken && token.Parent.Kind() == SyntaxKind.ArgumentList;
return token.Kind() == SyntaxKind.CloseParenToken &&
(token.Parent.IsKind(SyntaxKind.ArgumentList) || token.Parent.IsKind(SyntaxKind.AttributeArgumentList));
}
public static bool IsColonInTypeBaseList(this SyntaxToken token)
......
......@@ -6045,5 +6045,42 @@ public void DontAssumeCertainNodeAreAlwaysParented()
var block = SyntaxFactory.Block();
Formatter.Format(block, new AdhocWorkspace());
}
[WorkItem(776, "https://github.com/dotnet/roslyn/issues/776")]
[Fact, Trait(Traits.Feature, Traits.Features.Formatting)]
public void SpacingRulesAroundMethodCallAndParenthesisAppliedInAttributeNonDefault()
{
var changingOptions = new Dictionary<OptionKey, object>();
changingOptions.Add(CSharpFormattingOptions.SpaceAfterMethodCallName, true);
changingOptions.Add(CSharpFormattingOptions.SpaceBetweenEmptyMethodCallParentheses, true);
changingOptions.Add(CSharpFormattingOptions.SpaceWithinMethodCallParentheses, true);
AssertFormat(@"[Obsolete ( ""Test"" ), Obsolete ( )]
class Program
{
static void Main(string[] args)
{
}
}", @"[Obsolete(""Test""), Obsolete()]
class Program
{
static void Main(string[] args)
{
}
}", false, changingOptions);
}
[WorkItem(776, "https://github.com/dotnet/roslyn/issues/776")]
[Fact, Trait(Traits.Feature, Traits.Features.Formatting)]
public void SpacingRulesAroundMethodCallAndParenthesisAppliedInAttribute()
{
var code = @"[Obsolete(""Test""), Obsolete()]
class Program
{
static void Main(string[] args)
{
}
}";
AssertFormat(code, code);
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册