Add string highlighting with DarkYellow and make sure variable coloring gets applied before others

This commit is contained in:
Stone_Red
2026-03-04 17:50:58 +01:00
parent e47f614e62
commit f411aa7433
+18 -6
View File
@@ -36,6 +36,19 @@ internal partial class SyntaxHighlighter(ReadOnlyCollection<StatementInformation
}
else
{
MatchCollection matches = VariableRegex().Matches(input);
for (int i = 0; i < matches.Count; i++)
{
input = AddColorInformation(input, matches[i].Value, ConsoleColor.Cyan, SearchMode.Contains);
}
matches = StringRegex().Matches(input);
for (int i = 0; i < matches.Count; i++)
{
input = AddColorInformation(input, matches[i].Value, ConsoleColor.DarkYellow, SearchMode.Contains);
}
for (int i = 0; i < replacementValues.Length; i++)
{
input = AddColorInformation(input, replacementValues[i], ConsoleColor.Blue, SearchMode.Contains);
@@ -105,12 +118,6 @@ internal partial class SyntaxHighlighter(ReadOnlyCollection<StatementInformation
input = AddColorInformation(input, input, statement.Color, statement.SearchMode);
}
}
MatchCollection matches = VariableRegex().Matches(input);
for (int i = 0; i < matches.Count; i++)
{
input = AddColorInformation(input, matches[i].Value, ConsoleColor.Cyan, SearchMode.Contains);
}
}
foreach (string part in input.Split("\0"))
@@ -158,6 +165,11 @@ internal partial class SyntaxHighlighter(ReadOnlyCollection<StatementInformation
[GeneratedRegex("\\$\\{[a-zA-Z0-9]+\\}")]
private static partial Regex VariableRegex();
// match all double quote pairs
[GeneratedRegex(@"(?<!\\)(?:\\\\{2})*""(?:\\.|[^""\\])*""")]
private static partial Regex StringRegex();
[GeneratedRegex("(?<=(\\v))(.*)(?=\\v)")]
private static partial Regex StringColorRegex();
}