我正在開發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