提交 f0fc524f 编写于 作者: C CyrusNajmabadi

More formatting work.

上级 74c477c8
......@@ -18,6 +18,7 @@ namespace Microsoft.CodeAnalysis.GenerateConstructorFromMembers
[ExportCodeRefactoringProvider(LanguageNames.CSharp, LanguageNames.VisualBasic,
Name = PredefinedCodeRefactoringProviderNames.GenerateConstructorFromMembers), Shared]
[ExtensionOrder(Before = PredefinedCodeRefactoringProviderNames.AddConstructorParametersFromMembers)]
[ExtensionOrder(Before = PredefinedCodeRefactoringProviderNames.GenerateEqualsAndGetHashCodeFromMembers)]
internal partial class GenerateConstructorFromMembersCodeRefactoringProvider : AbstractGenerateFromMembersCodeRefactoringProvider
{
public override async Task ComputeRefactoringsAsync(CodeRefactoringContext context)
......
......@@ -37,13 +37,18 @@ public FormatLargeBinaryExpressionRule(ISyntaxFactsService syntaxFacts)
{
if (_syntaxFacts.IsReturnStatement(node))
{
list.Add(FormattingOperations.CreateRelativeIndentBlockOperation(
node.GetFirstToken(),
node.GetFirstToken().GetNextToken(),
node.GetLastToken(),
indentationDelta: 1,
option: IndentBlockOption.RelativePosition));
return;
var expr = _syntaxFacts.GetExpressionOfReturnStatement(node);
if (expr != null)
{
list.Add(FormattingOperations.CreateRelativeIndentBlockOperation(
expr.GetFirstToken(),
expr.GetFirstToken(),
node.GetLastToken(),
indentationDelta: 0,
option: IndentBlockOption.RelativePosition));
return;
}
}
nextOperation.Invoke(list);
......
......@@ -236,6 +236,9 @@ public bool IsUsingStatement(SyntaxNode node)
public bool IsReturnStatement(SyntaxNode node)
=> node.Kind() == SyntaxKind.ReturnStatement;
public SyntaxNode GetExpressionOfReturnStatement(SyntaxNode node)
=> (node as ReturnStatementSyntax)?.Expression;
public bool IsThisConstructorInitializer(SyntaxToken token)
{
return token.Parent.IsKind(SyntaxKind.ThisConstructorInitializer) &&
......
......@@ -165,7 +165,9 @@ internal interface ISyntaxFactsService : ILanguageService
bool IsForEachStatement(SyntaxNode node);
bool IsLockStatement(SyntaxNode node);
bool IsUsingStatement(SyntaxNode node);
bool IsReturnStatement(SyntaxNode node);
SyntaxNode GetExpressionOfReturnStatement(SyntaxNode node);
bool IsLocalDeclarationStatement(SyntaxNode node);
bool IsDeclaratorOfLocalDeclarationStatement(SyntaxNode declator, SyntaxNode localDeclarationStatement);
......
......@@ -212,6 +212,10 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
Return node.Kind() = SyntaxKind.ReturnStatement
End Function
Public Function GetExpressionOfReturnStatement(node As SyntaxNode) As SyntaxNode Implements ISyntaxFactsService.GetExpressionOfReturnStatement
Return TryCast(node, ReturnStatementSyntax)?.Expression
End Function
Public Function IsThisConstructorInitializer(token As SyntaxToken) As Boolean Implements ISyntaxFactsService.IsThisConstructorInitializer
If TypeOf token.Parent Is IdentifierNameSyntax AndAlso token.HasMatchingText(SyntaxKind.NewKeyword) Then
Dim memberAccess = TryCast(token.Parent.Parent, MemberAccessExpressionSyntax)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册