我正在开发Visual Studio的代码修复程序。我有一个“分析器与代码修复”项目,我已经将自动生成的可移植项目转换为标准的C#库项目。Visual Studio - 订阅灯泡点击事件
在我的扩展中,代码修复会生成一个包含收集数据的文件,问题在于,只要我将鼠标悬停在灯泡修复建议中,即执行我注册的代码修复时,就会生成该文件。
// Register a code action that will invoke the fix.
context.RegisterCodeFix(
CodeAction.Create(
title: Title,
createChangedDocument: c => MakeDataDrivenAsync(context.Document, methodDeclaration, c),
equivalenceKey: Title),
diagnostic);
我希望它只在单击建议(接受它)时生成文件。
这可能吗? 我正在考虑订阅建议点击事件,但我不知道如何,我没有找到表明这是可能的信息。
只有当我生成的文档是代码时,对吗?我没有真正生成代码。 (但很高兴知道它,非常有用) –
如果您的代码修复是在文件系统上创建roslyn一无所知的文件,那么您将需要编写和扩展,以创建与roslyn基础结构完全断开的灯泡会话。看看[this](https://github.com/Microsoft/VSSDK-Extensibility-Samples/tree/master/LightBulb)例子,了解如何做到这一点。 –
或者你可以创建一个'AdditionalDocument'。 – SLaks