csharpdeeb25a2 | 1 | #nullable enable |
| 2 | |
| 3 | namespace CascadeIDE.Features.Chat; |
| 4 | |
| 5 | /// <summary>Строки для пузыря слэш-команды в ленте.</summary> |
| 6 | public 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