Forge
csharpdeeb25a2
1namespace CascadeIDE.Features.Editor.Application.Monaco;
2
3using CascadeIDE.Services;
4
5public interface ICideEditorCapabilityRouter
6{
7 bool CanHandle(CideEditorInboundMessage message);
8
9 Task HandleAsync(CideEditorInboundMessage message, MonacoEditorCapabilityContext context, CancellationToken cancellationToken = default);
10}
11
12/// <summary>Per-document session for capability routing (ADR 0163).</summary>
13public sealed class MonacoEditorCapabilityContext
14{
15 public required ICideEditorCapabilityHost Host { get; init; }
16
17 public required string FilePath { get; init; }
18
19 public required Func<string> GetEditorText { get; init; }
20
21 public required CSharpLanguageService CSharpLanguage { get; init; }
22
23 public required WorkspaceDiagnosticsCoordinator WorkspaceDiagnostics { get; init; }
24
25 public required Func<string, string, int, int, CancellationToken, Task<string?>> ResolveQuickInfoAsync { get; init; }
26
27 public ICideEditorLspIntelligence? CSharpLspHost { get; init; }
28
29 public bool LspReady => CSharpLspHost is { IsActive: true };
30
31 public Func<string, string, IReadOnlyList<EditorTrailingInlayPart>>? GetInlineHintsForFile { get; init; }
32
33 public Func<string, IReadOnlyList<CideEditorCodeLensItem>>? GetCodeLensesForFile { get; init; }
34
35 public Func<string, bool>? TryNavigateCodeLens { get; init; }
36
37 public Func<CideEditorDefinitionLocation, Task>? NavigateToLocationAsync { get; init; }
38
39 public Func<string?>? GetSolutionPath { get; init; }
40
41 public Func<string?>? GetWorkspaceRoot { get; init; }
42
43 public Func<IReadOnlyList<CideEditorDocumentTextChange>, Task>? ApplyWorkspaceChangesAsync { get; init; }
44}
45
View only · write via MCP/CIDE