当前位置: 首页>>代码示例>>C#>>正文


C# CodeAction.GetOperationsAsync方法代码示例

本文整理汇总了C#中Microsoft.CodeAnalysis.CodeActions.CodeAction.GetOperationsAsync方法的典型用法代码示例。如果您正苦于以下问题:C# CodeAction.GetOperationsAsync方法的具体用法?C# CodeAction.GetOperationsAsync怎么用?C# CodeAction.GetOperationsAsync使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Microsoft.CodeAnalysis.CodeActions.CodeAction的用法示例。


在下文中一共展示了CodeAction.GetOperationsAsync方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: ExecuteCodeAction

 private async Task ExecuteCodeAction(CodeAction codeAction)
 {
     var operations = await codeAction.GetOperationsAsync(CancellationToken.None).ConfigureAwait(true);
     foreach (var operation in operations)
     {
         operation.Apply(_roslynHost.GetDocument(_documentId).Project.Solution.Workspace, CancellationToken.None);
     }
 }
开发者ID:mjheitland,项目名称:TableTweaker,代码行数:8,代码来源:RoslynContextActionProvider.cs

示例2: CodeAction

        public static void CodeAction(CodeAction codeAction, Document document, string expectedCode)
        {
            var operations = codeAction.GetOperationsAsync(CancellationToken.None).Result;

            Assert.That(operations.Count(), Is.EqualTo(1));

            var operation = operations.Single();
            var workspace = document.Project.Solution.Workspace;
            operation.Apply(workspace, CancellationToken.None);

            var newDocument = workspace.CurrentSolution.GetDocument(document.Id);

            var sourceText = newDocument.GetTextAsync(CancellationToken.None).Result;
            var text = sourceText.ToString();

            Assert.That(text, Is.EqualTo(expectedCode));
        }
开发者ID:sangelov,项目名称:RoslynNUnitLight,代码行数:17,代码来源:Verify.cs

示例3: CodeAction

        public static void CodeAction(CodeAction codeAction, Document document, string expectedCode)
        {
            var operations = codeAction.GetOperationsAsync(CancellationToken.None).Result;

            Assert.That(operations.Count(), Is.EqualTo(1));

            var operation = operations.Single();
            var workspace = document.Project.Solution.Workspace;
            operation.Apply(workspace, CancellationToken.None);

            var newDocument = workspace.CurrentSolution.GetDocument(document.Id);

            var sourceText = newDocument.GetTextAsync(CancellationToken.None).Result;
            var text = sourceText.ToString();
            Console.WriteLine($"New code:\r\n{text}");

            // Need to replace win-style line ending to unix-style to avoid build breaks on AppVeyor
            text = text.Replace("\r\n", "\n");
            expectedCode = expectedCode.Replace("\r\n", "\n");

            Assert.That(text, Is.EqualTo(expectedCode));
        }
开发者ID:SergeyTeplyakov,项目名称:ErrorProne.NET,代码行数:22,代码来源:Verify.cs

示例4: ApplyFix

 /// <summary>
 ///     Apply the inputted CodeAction to the inputted document.
 ///     Meant to be used to apply codefixes.
 /// </summary>
 /// <param name="document">The Document to apply the fix on</param>
 /// <param name="codeAction">A CodeAction that will be applied to the Document.</param>
 /// <returns>A Document with the changes from the CodeAction</returns>
 private static Document ApplyFix(Document document, CodeAction codeAction)
 {
     var operations = codeAction.GetOperationsAsync(CancellationToken.None).Result;
     var solution = operations.OfType<ApplyChangesOperation>().Single().ChangedSolution;
     return solution.GetDocument(document.Id);
 }
开发者ID:Hosch250,项目名称:RoslynTester,代码行数:13,代码来源:CodeFixVerifier.cs

示例5: ApplyFix

		private static Document ApplyFix(Document document, CodeAction codeAction) => codeAction.GetOperationsAsync(CancellationToken.None).Result.OfType<ApplyChangesOperation>().Single().ChangedSolution.GetDocument(document.Id);
开发者ID:occar421,项目名称:OpenTKAnalyzer,代码行数:1,代码来源:CodeFixVerifier.cs

示例6: ApplyFix

 /// <summary>
 /// Apply the inputted CodeAction to the inputted document.
 /// Meant to be used to apply codefixes.
 /// </summary>
 /// <param name="document">The Document to apply the fix on</param>
 /// <param name="codeAction">A CodeAction that will be applied to the Document.</param>
 /// <returns>A Document with the changes from the CodeAction</returns>
 private static Document ApplyFix(Document document, CodeAction codeAction)
 {
     System.Collections.Immutable.ImmutableArray<CodeActionOperation> operations = codeAction.GetOperationsAsync(CancellationToken.None).Result;
     Solution solution = operations.OfType<ApplyChangesOperation>().Single().ChangedSolution;
     return solution.GetDocument(document.Id);
 }
开发者ID:bkoelman,项目名称:roslyn-analyzers,代码行数:13,代码来源:CodeFixVerifier.Helper.cs

示例7: GetFixAllOperationsAsync

        private async Task<IEnumerable<CodeActionOperation>> GetFixAllOperationsAsync(CodeAction codeAction, FixAllContext fixAllContext, bool showPreviewChangesDialog)
        {
            // We have computed the fix all occurrences code fix.
            // Now fetch the new solution with applied fix and bring up the Preview changes dialog.

            var cancellationToken = fixAllContext.CancellationToken;
            var workspace = fixAllContext.Project.Solution.Workspace;

            cancellationToken.ThrowIfCancellationRequested();
            var operations = await codeAction.GetOperationsAsync(cancellationToken).ConfigureAwait(false);
            if (operations == null)
            {
                return null;
            }

            cancellationToken.ThrowIfCancellationRequested();
            var newSolution = await codeAction.GetChangedSolutionInternalAsync(cancellationToken: cancellationToken).ConfigureAwait(false);

            if (showPreviewChangesDialog)
            {
                newSolution = PreviewChanges(
                    fixAllContext.Project.Solution,
                    newSolution,
                    FeaturesResources.FixAllOccurrences,
                    codeAction.Title,
                    fixAllContext.Project.Language,
                    workspace,
                    cancellationToken);
                if (newSolution == null)
                {
                    return null;
                }
            }

            // Get a code action, with apply changes operation replaced with the newSolution.
            return GetNewFixAllOperations(operations, newSolution, cancellationToken);
        }
开发者ID:SoumikMukherjeeDOTNET,项目名称:roslyn,代码行数:37,代码来源:FixAllGetFixesService.cs

示例8: ApplyFixAsync

 /// <summary>
 /// Apply the inputted <see cref="CodeAction"/> to the inputted document.
 /// Meant to be used to apply code fixes.
 /// </summary>
 /// <param name="document">The <see cref="Document"/> to apply the fix on</param>
 /// <param name="codeAction">A <see cref="CodeAction"/> that will be applied to the
 /// <paramref name="document"/>.</param>
 /// <param name="cancellationToken">The <see cref="CancellationToken"/> that the task will observe.</param>
 /// <returns>A <see cref="Document"/> with the changes from the <see cref="CodeAction"/>.</returns>
 private static async Task<Document> ApplyFixAsync(Document document, CodeAction codeAction, CancellationToken cancellationToken)
 {
     var operations = await codeAction.GetOperationsAsync(cancellationToken).ConfigureAwait(false);
     var solution = operations.OfType<ApplyChangesOperation>().Single().ChangedSolution;
     return solution.GetDocument(document.Id);
 }
开发者ID:nvincent,项目名称:StyleCopAnalyzers,代码行数:15,代码来源:CodeFixVerifier.Helper.cs

示例9: RunAction

		internal static async void RunAction (DocumentContext context, CodeAction action, CancellationToken cancellationToken)
		{
			var operations = await action.GetOperationsAsync (cancellationToken).ConfigureAwait (false);
			if (operations == null)
				return;
			foreach (var op in operations) {
				if (op == null)
					continue;
				try {
					op.Apply (context.RoslynWorkspace, cancellationToken);
				} catch (Exception e) {
					LoggingService.LogError ("Error while appyling operation : " + op, e);
				}
			}

			if ((bool)hasCodeActionsProperty.GetValue (action)) {
				var result = (ImmutableArray<CodeAction>)getCodeActionsMethod.Invoke (action, null);
				foreach (var nested in result) {
					RunAction (context, nested, cancellationToken);
				}
			}
		}
开发者ID:powerumc,项目名称:monodevelop_korean,代码行数:22,代码来源:CodeDiagnosticDescriptor.cs

示例10: ApplyFix

 private static Solution ApplyFix(CodeAction codeAction)
 {
     var operations = codeAction.GetOperationsAsync(CancellationToken.None).Result;
     var solution = operations.OfType<ApplyChangesOperation>().Single().ChangedSolution;
     return solution;
 }
开发者ID:RicardoNiepel,项目名称:Z3.ObjectTheorem,代码行数:6,代码来源:CodeFixVerifier.Custom.cs

示例11: GetFixAllOperationsAsync

        private async Task<IEnumerable<CodeActionOperation>> GetFixAllOperationsAsync(CodeAction codeAction, FixAllContext fixAllContext, string fixAllPreviewChangesTitle, bool showPreviewChangesDialog)
        {
            // We have computed the fix all occurrences code fix.
            // Now fetch the new solution with applied fix and bring up the Preview changes dialog.

            var cancellationToken = fixAllContext.CancellationToken;
            var workspace = fixAllContext.Project.Solution.Workspace;

            cancellationToken.ThrowIfCancellationRequested();
            var operations = await codeAction.GetOperationsAsync(cancellationToken).ConfigureAwait(false);
            if (operations == null)
            {
                return null;
            }

            cancellationToken.ThrowIfCancellationRequested();
            var newSolution = await codeAction.GetChangedSolutionInternalAsync(cancellationToken).ConfigureAwait(false);

            if (showPreviewChangesDialog)
            {
                cancellationToken.ThrowIfCancellationRequested();
                using (Logger.LogBlock(FunctionId.CodeFixes_FixAllOccurrencesPreviewChanges, cancellationToken))
                {
                    var previewService = workspace.Services.GetService<IPreviewDialogService>();
                    var glyph = fixAllContext.Project.Language == LanguageNames.CSharp ?
                        Glyph.CSharpProject :
                        Glyph.BasicProject;

                    var changedSolution = previewService.PreviewChanges(
                    string.Format(EditorFeaturesResources.PreviewChangesOf, fixAllPreviewChangesTitle),
                    "vs.codefix.fixall",
                    codeAction.Title,
                    fixAllPreviewChangesTitle,
                    glyph,
                    newSolution,
                    fixAllContext.Project.Solution);

                    if (changedSolution == null)
                    {
                        // User clicked cancel.
                        FixAllLogger.LogPreviewChangesResult(applied: false);
                        return null;
                    }

                    FixAllLogger.LogPreviewChangesResult(applied: true, allChangesApplied: changedSolution == newSolution);
                    newSolution = changedSolution;
                }
            }

            // Get a code action, with apply changes operation replaced with the newSolution.
            return GetNewFixAllOperations(operations, newSolution, cancellationToken);
        }
开发者ID:nemec,项目名称:roslyn,代码行数:52,代码来源:FixAllGetFixesService.cs

示例12: ApplyFixAsync

 private static async Task<Project> ApplyFixAsync(Project project, CodeAction codeAction)
 {
     var operations = await codeAction.GetOperationsAsync(CancellationToken.None).ConfigureAwait(true);
     var solution = operations.OfType<ApplyChangesOperation>().Single().ChangedSolution;
     return solution.GetProject(project.Id);
 }
开发者ID:haroldhues,项目名称:code-cracker,代码行数:6,代码来源:CodeFixVerifier.Helper.cs


注:本文中的Microsoft.CodeAnalysis.CodeActions.CodeAction.GetOperationsAsync方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。