private static bool TryProcessCodeActionVS( RazorCodeActionContext context, CodeAction codeAction, Diagnostic diagnostic, string associatedValue, out ICollection <CodeAction> typeAccessibilityCodeActions) { CodeAction processedCodeAction = null; // When there's only one FQN suggestion, code action title is of the form: // `System.Net.Dns` if (!codeAction.Title.Any(c => char.IsWhiteSpace(c)) && codeAction.Title.EndsWith(associatedValue, StringComparison.OrdinalIgnoreCase)) { var fqn = codeAction.Title; processedCodeAction = CreateFQNCodeAction(context, diagnostic, codeAction, fqn); } // When there are multiple FQN suggestions, the code action title is of the form: // `Fully qualify 'Dns'` else if (codeAction.Title.Equals($"Fully qualify '{associatedValue}'", StringComparison.OrdinalIgnoreCase)) { // Not currently supported as we need O# CodeAction to support the CodeAction.Children field. // processedCodeAction = codeAction.WrapResolvableCSharpCodeAction(context, LanguageServerConstants.CodeActions.FullyQualifyType); typeAccessibilityCodeActions = Array.Empty <CodeAction>(); return(false); } // For add using suggestions, the code action title is of the form: // `using System.Net;` else if (AddUsingsCodeActionProviderFactory.TryExtractNamespace(codeAction.Title, out var @namespace)) { codeAction.Title = $"@using {@namespace}"; processedCodeAction = codeAction.WrapResolvableCSharpCodeAction(context, LanguageServerConstants.CodeActions.AddUsing); } // Not a type accessibility code action else { typeAccessibilityCodeActions = Array.Empty <CodeAction>(); return(false); } typeAccessibilityCodeActions = new[] { processedCodeAction }; return(true); }