Forge
csharpdeeb25a2
1namespace CascadeIDE.Features.Editor.Application;
2
3/// <summary>
4/// Именованный слой Editor HUD (ADR 0103) <b>для одного открытого документа</b>: движок + стабилизированный контекст
5/// для баннера. Inline squiggles/inlays (0085) остаются в view до отдельного переноса; граница данных — <see cref="EditorSemanticSnapshot"/>.
6/// </summary>
7public sealed class EditorDocumentHudLayer
8{
9 private readonly EditorHudEngine _engine = new();
10
11 public void ConfigureDiagnostics(Func<string?, IReadOnlyList<EditorDiagnosticStrip>>? getStripsForFile) =>
12 _engine.ConfigureDiagnostics(getStripsForFile);
13
14 /// <summary>Контекст для VM; <c>null</c>, если нет полос/пути (закрытый DAL-источник или пустой путь).</summary>
15 public EditorHudStabilizedContext? BuildStabilizedContext(EditorInputDelta delta)
16 {
17 _engine.OnStabilizedInput(delta);
18 if (string.IsNullOrEmpty(delta.FilePath) || _engine.LastSnapshot is not { } snap)
19 return null;
20 return new EditorHudStabilizedContext(delta.FilePath, snap);
21 }
22}
23
View only · write via MCP/CIDE