34 lines
1.1 KiB
C#
34 lines
1.1 KiB
C#
|
using Microsoft.CodeAnalysis;
|
||
|
using Microsoft.CodeAnalysis.CodeActions;
|
||
|
using Microsoft.CodeAnalysis.CodeRefactorings;
|
||
|
|
||
|
namespace InnovEnergy.Lib.SrcGen;
|
||
|
|
||
|
|
||
|
[ExportCodeRefactoringProvider(LanguageNames.CSharp, Name = nameof(IeCodeRefactoringProvider))]
|
||
|
public sealed class IeCodeRefactoringProvider : CodeRefactoringProvider
|
||
|
{
|
||
|
|
||
|
// NOT WORKING
|
||
|
public override async Task ComputeRefactoringsAsync(CodeRefactoringContext context)
|
||
|
{
|
||
|
// var root = await context
|
||
|
// .Document
|
||
|
// .GetSyntaxRootAsync(context.CancellationToken)
|
||
|
// .ConfigureAwait(false);
|
||
|
|
||
|
await File.WriteAllTextAsync("/home/eef/sync/work/Code/innovenergy/git/csharp/Lib/SrcGen/test.txt", context.Span.ToString());
|
||
|
|
||
|
var action = CodeAction.Create("IeAction", async token =>
|
||
|
{
|
||
|
var text = await context.Document.GetTextAsync(token);
|
||
|
|
||
|
var modified = text.Replace(0, 0, "// " + context.Span + "\n");
|
||
|
|
||
|
return context.Document.WithText(modified);
|
||
|
});
|
||
|
|
||
|
context.RegisterRefactoring(action);
|
||
|
}
|
||
|
}
|