コード例 #1
0
        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);
        }
コード例 #2
0
        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));
        }