1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-15 10:22:56 +08:00

Apply code review suggestions

This commit is contained in:
Pasi4K5 2023-10-23 23:30:54 +02:00
parent c927f90a48
commit c5339f440e

View File

@ -46,11 +46,11 @@ namespace osu.Game.Screens.Select
var openingBracketIndexes = new List<int>();
var closingBracketIndexes = new List<int>();
populateIndexLists(ref query);
populateIndexLists(query);
return performExtraction(ref query);
void populateIndexLists(ref string query)
void populateIndexLists(string query)
{
bool currentlyBetweenBrackets = false;
@ -58,24 +58,25 @@ namespace osu.Game.Screens.Select
{
switch (query[i])
{
case '[' when !currentlyBetweenBrackets && (i == 0 || query[i - 1] == ' '):
currentlyBetweenBrackets = true;
openingBracketIndexes.Add(i + 1);
case '[':
if (!currentlyBetweenBrackets && (i == 0 || query[i - 1] == ' '))
{
currentlyBetweenBrackets = true;
openingBracketIndexes.Add(i + 1);
}
break;
case ']' when currentlyBetweenBrackets && (i == query.Length - 1 || query[i + 1] == ' '):
currentlyBetweenBrackets = false;
closingBracketIndexes.Add(i);
case ']':
if (currentlyBetweenBrackets && (i == query.Length - 1 || query[i + 1] == ' '))
{
currentlyBetweenBrackets = false;
closingBracketIndexes.Add(i);
}
break;
}
}
if (currentlyBetweenBrackets)
{
// If there is no "]" closing the current difficulty search query, append it.
query += ']';
closingBracketIndexes.Add(query.Length - 1);
}
}
string performExtraction(ref string query)
@ -86,7 +87,10 @@ namespace osu.Game.Screens.Select
for (int i = 0; i < openingBracketIndexes.Count; i++)
{
int startIndex = openingBracketIndexes[i];
int endIndex = closingBracketIndexes[i];
int endIndex = closingBracketIndexes.Count > 0
? closingBracketIndexes[Math.Min(i, closingBracketIndexes.Count - 1)]
: query.Length;
string searchText = originalQuery[startIndex..endIndex];
@ -96,7 +100,9 @@ namespace osu.Game.Screens.Select
.Replace($" [{searchText}]", "")
.Replace($"[{searchText}] ", "")
.Replace($"[{searchText}]", "")
.Replace($" [{searchText}] ", " ");
.Replace($" [{searchText}] ", " ")
.Replace($" [{searchText}", "")
.Replace($"[{searchText}", "");
}
return string.Join(' ', searchTexts);