20 lines
728 B
C#
20 lines
728 B
C#
using Microsoft.CodeAnalysis.CodeActions;
|
|
using SharpIDE.Application.Features.FileWatching;
|
|
|
|
namespace SharpIDE.Application.Features.Analysis;
|
|
|
|
public class IdeCodeActionService(RoslynAnalysis roslynAnalysis, FileChangedService fileChangedService)
|
|
{
|
|
private readonly RoslynAnalysis _roslynAnalysis = roslynAnalysis;
|
|
private readonly FileChangedService _fileChangedService = fileChangedService;
|
|
|
|
public async Task ApplyCodeAction(CodeAction codeAction)
|
|
{
|
|
var affectedFiles = await _roslynAnalysis.GetCodeActionApplyChanges(codeAction);
|
|
foreach (var (affectedFile, updatedText) in affectedFiles)
|
|
{
|
|
await _fileChangedService.SharpIdeFileChanged(affectedFile, updatedText, FileChangeType.CodeActionChange);
|
|
}
|
|
}
|
|
}
|