Forge
csharpdeeb25a2
1#nullable enable
2
3namespace CascadeIDE.Features.Chat;
4
5/// <summary>Строки для пузыря слэш-команды в ленте.</summary>
6public static class ChatSlashCommandPresentation
7{
8 /// <summary>Позиция иконки статуса по умолчанию (позже — <c>settings.toml</c>).</summary>
9 public static ChatSlashCommandStatusIconPlacement DefaultStatusIconPlacement { get; set; } =
10 ChatSlashCommandStatusIconPlacement.TopRight;
11
12 public static string FormatDisplayPath(string? rawLine)
13 {
14 var trimmed = (rawLine ?? "").Trim();
15 if (trimmed.Length == 0 || trimmed[0] != '/')
16 return trimmed;
17
18 if (SlashLineResolver.TryResolveSlashLine(trimmed, out var line) && line.IsCatalogMatch)
19 return line.CanonicalPath;
20
21 var space = trimmed.IndexOf(' ');
22 return space < 0 ? trimmed : trimmed[..space];
23 }
24
25 public static string? NormalizeArgsTail(string? argsTail) =>
26 string.IsNullOrWhiteSpace(argsTail) ? null : argsTail.Trim();
27}
28
View only · write via MCP/CIDE