diff --git a/src/EditorFeatures/CSharp/CompleteStatement/CompleteStatementCommandHandler.cs b/src/EditorFeatures/CSharp/CompleteStatement/CompleteStatementCommandHandler.cs index 42f9e1ce8bf4..03e63c314a90 100644 --- a/src/EditorFeatures/CSharp/CompleteStatement/CompleteStatementCommandHandler.cs +++ b/src/EditorFeatures/CSharp/CompleteStatement/CompleteStatementCommandHandler.cs @@ -333,6 +333,7 @@ private static bool TryGetCaretPositionToMove(SyntaxNode statementNode, Snapshot case SyntaxKind.ArrowExpressionClause: case SyntaxKind.MethodDeclaration: case SyntaxKind.RecordDeclaration: + case SyntaxKind.RecordStructDeclaration: // These statement types end in a semicolon. // if the original caret was inside any delimiters, `caret` will be after the outermost delimiter targetPosition = caret; diff --git a/src/EditorFeatures/CSharpTest/CompleteStatement/CSharpCompleteStatementCommandHandlerTests.cs b/src/EditorFeatures/CSharpTest/CompleteStatement/CSharpCompleteStatementCommandHandlerTests.cs index 59113b9e53a0..fca445bce63c 100644 --- a/src/EditorFeatures/CSharpTest/CompleteStatement/CSharpCompleteStatementCommandHandlerTests.cs +++ b/src/EditorFeatures/CSharpTest/CompleteStatement/CSharpCompleteStatementCommandHandlerTests.cs @@ -55,6 +55,8 @@ internal static int MethodM(int a, int b) [InlineData("public record C(int X, $$int Y)", "public record C(int X, int Y)")] [InlineData("public record C(int X, int$$ Y)", "public record C(int X, int Y)")] [InlineData("public record C(int X, int Y$$)", "public record C(int X, int Y)")] + [InlineData("public record class C(int X, int Y$$)", "public record class C(int X, int Y)")] + [InlineData("public record struct C(int X, int Y$$)", "public record struct C(int X, int Y)")] public void ParameterList_CouldBeHandled(string signature, string expectedSignature) { var code = $@"