csharpdeeb25a2 | 1 | namespace 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> |
| 7 | public 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