Forge
csharp4405de34
1namespace CascadeIDE.Services;
2
3/// <summary>Префиксы как в Visual Studio «Перейти к» / Go to All: <c>f:</c> файлы, <c>t:</c> типы, <c>m:</c> члены, <c>x:</c> текст.</summary>
4public readonly record struct GoToAllQuery(char Prefix, string Term);
5
6public static class GoToAllQueryParser
7{
8 /// <summary>Парсит <c>f:</c>, <c>t:</c>, <c>m:</c>, <c>x:</c> в начале строки (без учёта регистра префикса).</summary>
9 public static GoToAllQuery? TryParse(string? query)
10 {
11 if (string.IsNullOrWhiteSpace(query))
12 return null;
13 var t = query.TrimStart();
14 if (t.Length < 2 || t[1] != ':')
15 return null;
16 var p = char.ToLowerInvariant(t[0]);
17 if (p is not ('f' or 't' or 'm' or 'x'))
18 return null;
19 var rest = t.Length > 2 ? t[2..].TrimStart() : "";
20 return new GoToAllQuery(p, rest);
21 }
22}
23
View only · write via MCP/CIDE