Forge
csharpdeeb25a2
1namespace CascadeIDE.Features.UiChrome;
2
3/// <summary>
4/// Куда показывать preview Markdown (TOML: <c>markdown_preview_placement</c> в <c>UiModes/workspace.toml</c>).
5/// </summary>
6public enum MarkdownPreviewPlacement
7{
8 /// <summary>Зона MFD / вторичный контур — primary placement.</summary>
9 Mfd,
10
11 /// <summary>Отдельное окно <see cref="Views.MarkdownPreviewWindow"/>.</summary>
12 SeparateWindow,
13}
14
15/// <summary>Парсинг значений из TOML/строк.</summary>
16public static class MarkdownPreviewPlacementParser
17{
18 /// <summary>
19 /// Допустимые строки: <c>mfd</c>, <c>separate_window</c>, <c>window</c> (синоним окна).
20 /// Неизвестное или пустое — <paramref name="defaultValue"/>.
21 /// </summary>
22 public static MarkdownPreviewPlacement ParseOrDefault(string? s, MarkdownPreviewPlacement defaultValue)
23 {
24 if (string.IsNullOrWhiteSpace(s))
25 return defaultValue;
26 return s.Trim().ToLowerInvariant() switch
27 {
28 "mfd" => MarkdownPreviewPlacement.Mfd,
29 "separate_window" or "window" => MarkdownPreviewPlacement.SeparateWindow,
30 _ => defaultValue,
31 };
32 }
33}
34
View only · write via MCP/CIDE