示例#1
0
 public FixAllState(
     FixAllProvider fixAllProvider,
     Project project,
     TextSpan selectionSpan,
     CodeRefactoringProvider codeRefactoringProvider,
     CodeActionOptionsProvider optionsProvider,
     FixAllScope fixAllScope,
     CodeAction codeAction)
     : this(fixAllProvider, document : null, project ?? throw new ArgumentNullException(nameof(project)), selectionSpan, codeRefactoringProvider,
            optionsProvider, fixAllScope, codeAction.Title, codeAction.EquivalenceKey)
 {
 }
示例#2
0
 protected override FixAllState With(Document?document, Project project, FixAllScope scope, string?codeActionEquivalenceKey)
 {
     return(new FixAllState(
                this.FixAllProvider,
                document,
                project,
                _selectionSpan,
                this.Provider,
                this.CodeActionOptionsProvider,
                scope,
                this.CodeActionTitle,
                codeActionEquivalenceKey));
 }
示例#3
0
 private FixAllState(
     FixAllProvider fixAllProvider,
     Document?document,
     Project project,
     TextSpan selectionSpan,
     CodeRefactoringProvider codeRefactoringProvider,
     CodeActionOptionsProvider optionsProvider,
     FixAllScope fixAllScope,
     string codeActionTitle,
     string?codeActionEquivalenceKey)
     : base(fixAllProvider, document, project, codeRefactoringProvider, optionsProvider, fixAllScope, codeActionEquivalenceKey)
 {
     _selectionSpan       = selectionSpan;
     this.CodeActionTitle = codeActionTitle;
 }
示例#4
0
 public static string GetDefaultFixAllTitle(
     FixAllScope fixAllScope,
     string title,
     Document triggerDocument,
     Project triggerProject)
 {
     return(fixAllScope switch
     {
         FixAllScope.Custom => string.Format(WorkspaceExtensionsResources.Fix_all_0, title),
         FixAllScope.Document => string.Format(WorkspaceExtensionsResources.Fix_all_0_in_1, title, triggerDocument.Name),
         FixAllScope.Project => string.Format(WorkspaceExtensionsResources.Fix_all_0_in_1, title, triggerProject.Name),
         FixAllScope.Solution => string.Format(WorkspaceExtensionsResources.Fix_all_0_in_Solution, title),
         FixAllScope.ContainingMember => string.Format(WorkspaceExtensionsResources.Fix_all_0_in_Containing_member, title),
         FixAllScope.ContainingType => string.Format(WorkspaceExtensionsResources.Fix_all_0_in_Containing_type, title),
         _ => throw ExceptionUtilities.UnexpectedValue(fixAllScope),
     });
示例#5
0
        protected CommonFixAllState(
            TFixAllProvider fixAllProvider,
            Document?document,
            Project project,
            TProvider provider,
            CodeActionOptionsProvider optionsProvider,
            FixAllScope scope,
            string?codeActionEquivalenceKey)
        {
            Debug.Assert(document == null || document.Project == project);

            FixAllProvider            = fixAllProvider;
            Document                  = document;
            Project                   = project;
            Provider                  = provider;
            CodeActionOptionsProvider = optionsProvider;
            Scope = scope;
            CodeActionEquivalenceKey = codeActionEquivalenceKey;
        }
        private static async Task <CodeAction> GetFixAllFixAsync(
            CodeAction originalCodeAction,
            CodeRefactoringProvider provider,
            CodeActionOptionsProvider optionsProvider,
            Document document,
            TextSpan selectionSpan,
            FixAllScope scope)
        {
            var fixAllProvider = provider.GetFixAllProvider();

            if (fixAllProvider == null || !fixAllProvider.GetSupportedFixAllScopes().Contains(scope))
            {
                return(null);
            }

            var fixAllState   = new FixAllState(fixAllProvider, document, selectionSpan, provider, optionsProvider, scope, originalCodeAction);
            var fixAllContext = new FixAllContext(fixAllState, new ProgressTracker(), CancellationToken.None);

            return(await fixAllProvider.GetFixAsync(fixAllContext).ConfigureAwait(false));
        }
示例#7
0
 protected abstract TFixAllState With(Document?document, Project project, FixAllScope scope, string?codeActionEquivalenceKey);