Skip to content

Commit

Permalink
Fix SyntaxErrorCharExpectedCodeFixProvider.
Browse files Browse the repository at this point in the history
  • Loading branch information
josefpihrt committed May 2, 2018
1 parent eacee17 commit 2e74ae4
Showing 1 changed file with 8 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,13 @@ public sealed override ImmutableArray<string> FixableDiagnosticIds
public sealed override async Task RegisterCodeFixesAsync(CodeFixContext context)
{
if (!Settings.IsCodeFixEnabled(CodeFixIdentifiers.AddMissingComma))
{
return;
}

SyntaxNode root = await context.GetSyntaxRootAsync().ConfigureAwait(false);

if (!TryFindNode(root, context.Span, out InitializerExpressionSyntax initializer))
ExpressionSyntax expression = root.FindNode(context.Span).FirstAncestorOrSelf<ExpressionSyntax>();

if (expression == null)
return;

foreach (Diagnostic diagnostic in context.Diagnostics)
Expand All @@ -43,12 +43,14 @@ public sealed override async Task RegisterCodeFixesAsync(CodeFixContext context)
if (!Settings.IsCodeFixEnabled(CodeFixIdentifiers.AddMissingComma))
break;

if (!initializer.IsKind(SyntaxKind.ArrayInitializerExpression))
if (!expression.IsParentKind(SyntaxKind.ArrayInitializerExpression))
break;

var initializer = (InitializerExpressionSyntax)expression.Parent;

SeparatedSyntaxList<ExpressionSyntax> expressions = initializer.Expressions;

int index = expressions.IndexOf(initializer);
int index = expressions.IndexOf(expression);

SyntaxToken comma = expressions.GetSeparator(index);

Expand All @@ -62,7 +64,7 @@ public sealed override async Task RegisterCodeFixesAsync(CodeFixContext context)
"Add missing comma",
cancellationToken =>
{
var textChange = new TextChange(new TextSpan(initializer.Span.End, 0), ",");
var textChange = new TextChange(new TextSpan(expression.Span.End, 0), ",");
return context.Document.WithTextChangeAsync(textChange, cancellationToken);
},
GetEquivalenceKey(diagnostic));
Expand Down

0 comments on commit 2e74ae4

Please sign in to comment.