Forge
csharp4405de34
1namespace CascadeIDE.Services.Lsp;
2
3/// <summary>
4/// Контракт источника диагностик с C# language server (LSP <c>textDocument/publishDiagnostics</c>).
5/// In-process Roslyn сейчас идёт через <see cref="WorkspaceDiagnosticsCoordinator"/>; позже можно
6/// реализовать этот интерфейс поверх OmniSharp-клиента и объединять полосы в одном координаторе.
7/// Текущие stdio-реализации: <c>Features/Lsp/DataAcquisition</c> (<c>CSharpLspDiagnosticsHost</c>, <c>MarkdownLspDiagnosticsHost</c>).
8/// </summary>
9public interface ILspDiagnosticSource : IDisposable
10{
11 /// <summary>Handshake завершён и процесс жив (иначе координатор падает обратно на парсер).</summary>
12 bool IsActive { get; }
13
14 /// <summary>Обновились диагностики хотя бы по одному документу.</summary>
15 event Action? DiagnosticsChanged;
16
17 /// <summary>Диагностики для открытого документа (путь как в редакторе).</summary>
18 IReadOnlyList<EditorDiagnosticStrip> GetStripsForFile(string? filePath);
19}
20
View only · write via MCP/CIDE