private void AddCodeActions( Workspace workspace, IDictionary <CodeFixGroupKey, IList <SuggestedAction> > map, ArrayBuilder <CodeFixGroupKey> order, CodeFixCollection fixCollection, Func <CodeAction, SuggestedActionSet> getFixAllSuggestedActionSet, ImmutableArray <CodeFix> codeFixes) { foreach (var fix in codeFixes) { SuggestedAction suggestedAction; if (fix.Action.NestedCodeActions.Length > 0) { var nestedActions = fix.Action.NestedCodeActions.SelectAsArray( nestedAction => new CodeFixSuggestedAction( _owner, workspace, _subjectBuffer, fix, fixCollection.Provider, nestedAction, getFixAllSuggestedActionSet(nestedAction))); var set = new SuggestedActionSet( nestedActions, SuggestedActionSetPriority.Medium, fix.PrimaryDiagnostic.Location.SourceSpan.ToSpan()); suggestedAction = new SuggestedActionWithNestedActions( _owner, workspace, _subjectBuffer, fixCollection.Provider, fix.Action, set); } else { suggestedAction = new CodeFixSuggestedAction( _owner, workspace, _subjectBuffer, fix, fixCollection.Provider, fix.Action, getFixAllSuggestedActionSet(fix.Action)); } AddFix(fix, suggestedAction, map, order); } }
private void AddCodeActions( Workspace workspace, IDictionary<CodeFixGroupKey, IList<SuggestedAction>> map, ArrayBuilder<CodeFixGroupKey> order, CodeFixCollection fixCollection, Func<CodeAction, SuggestedActionSet> getFixAllSuggestedActionSet, ImmutableArray<CodeFix> codeFixes) { foreach (var fix in codeFixes) { SuggestedAction suggestedAction; if (fix.Action.NestedCodeActions.Length > 0) { var nestedActions = fix.Action.NestedCodeActions.SelectAsArray( nestedAction => new CodeFixSuggestedAction( _owner, workspace, _subjectBuffer, fix, fixCollection.Provider, nestedAction, getFixAllSuggestedActionSet(nestedAction))); var set = new SuggestedActionSet( nestedActions, SuggestedActionSetPriority.Medium, fix.PrimaryDiagnostic.Location.SourceSpan.ToSpan()); suggestedAction = new SuggestedActionWithNestedActions( _owner, workspace, _subjectBuffer, fixCollection.Provider, fix.Action, set); } else { suggestedAction = new CodeFixSuggestedAction( _owner, workspace, _subjectBuffer, fix, fixCollection.Provider, fix.Action, getFixAllSuggestedActionSet(fix.Action)); } AddFix(fix, suggestedAction, map, order); } }