Forge
csharpdeeb25a2
1#nullable enable
2using CascadeIDE.Cockpit.Graph;
3
4namespace CascadeIDE.Features.WorkspaceNavigation.Application;
5
6/// <summary>
7/// Адаптер: текущая сборка JSON через <see cref="WorkspaceNavigationMapContextJsonBuilder"/> (Roslyn/контекст в одном процессе).
8/// </summary>
9public sealed class WorkspaceNavigationMapContextJsonDataSource : IGraphDataSource, IGraphDocumentSource
10{
11 public string BuildNavigationJson(GraphNavigationJsonRequest request) =>
12 WorkspaceNavigationMapContextJsonBuilder.Build(
13 request.NormalizedLevel,
14 request.WantGraph,
15 request.CurrentPath,
16 request.EditorText,
17 request.CursorLine,
18 request.CursorColumn,
19 request.RawFilePathsFromSolution,
20 request.SolutionPath,
21 request.NavSettings,
22 request.ControlFlowGrain);
23
24 public bool TryBuildDocument(GraphNavigationJsonRequest request, out GraphDocument? document, out string? wireJson)
25 {
26 wireJson = BuildNavigationJson(request);
27 if (GraphDocumentJson.TryParse(wireJson, out document, out _))
28 return true;
29 document = null;
30 return false;
31 }
32}
33
View only · write via MCP/CIDE