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);
|
|
}
|
|
}
|