Forge
csharpdeeb25a2
1#nullable enable
2
3using CascadeIDE.Features.Workspace.DataAcquisition;
4using CascadeIDE.Services;
5
6namespace CascadeIDE.Features.WorkspaceNavigation.Application;
7
8/// <summary>Открытие markdown-документа в MFD preview (correspondence / templates).</summary>
9public static class WorkspaceMarkdownPreviewOpener
10{
11 public static bool TryOpenRepoDocument(
12 string workspaceRoot,
13 string relativeOrAbsoluteDocPath,
14 Action<string, string, string?> setPreview,
15 out string? error)
16 {
17 error = null;
18 var abs = WorkspaceAdrMapResolver.TryResolveAbsoluteDocPath(workspaceRoot, relativeOrAbsoluteDocPath);
19 if (string.IsNullOrWhiteSpace(abs))
20 {
21 error = "path_not_resolved";
22 return false;
23 }
24
25 if (!WorkspaceTextFileReader.TryReadAllText(abs, out var content))
26 {
27 error = "file_not_readable";
28 return false;
29 }
30
31 var title = WorkspaceAdrMapResolver.GuessAdrPreviewTitle(relativeOrAbsoluteDocPath);
32 setPreview(title, content, abs);
33 return true;
34 }
35}
36
View only · write via MCP/CIDE