public static void RemoveModifier <TNode>( CodeFixContext context, Diagnostic diagnostic, IEnumerable <TNode> nodes, SyntaxKind modifierKind, string title = null, string additionalKey = null) where TNode : SyntaxNode { if (nodes is IList <TNode> list) { if (list.Count == 0) { return; } if (list.Count == 1) { RemoveModifier(context, diagnostic, list[0], modifierKind, title, additionalKey); return; } } CodeAction codeAction = CodeAction.Create( title ?? GetRemoveModifierTitle(modifierKind), cancellationToken => { return(context.Solution().ReplaceNodesAsync( nodes, (f, _) => ModifierList.Remove(f, modifierKind), cancellationToken)); }, GetEquivalenceKey(diagnostic, additionalKey)); context.RegisterCodeFix(codeAction, diagnostic); }
private static Task <Document> RemoveModifierAsync <TNode>( Document document, TNode node, SyntaxToken modifier, CancellationToken cancellationToken = default) where TNode : SyntaxNode { TNode newNode = ModifierList.Remove(node, modifier); return(document.ReplaceNodeAsync(node, newNode, cancellationToken)); }