LanguageNormalizer.ts を 2023年8月の言語アップデートで増えた新形式の言語選択肢に対応しました。 #1431
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
2023年8月の言語アップデートによって、言語選択肢の括弧書きの外側にバージョン番号が入るケースがみられるようになりました。(例:"C++ 20 (gcc 12.2)", "C# 11.9 (.NET 7.0.7)" など)
これらの言語選択肢は、RankingのLanguage Ownersなどで利用されている 既存の LanguageNormalizer によって、
"C++ 20 (gcc 12.2)" -> "C++ " // 末尾に半角スペースが残っている
"C# 11.9 (.NET 7.0.7)" -> "C# 11."
と正規化され、ランキングもその形式で集計・表示が行われています。
https://kenkoooo.com/atcoder/#/lang
LanguageNormalizer で用いられている正規表現に変更を加えることで、これらの形式の言語選択肢を
"C++ 20 (gcc 12.2)" -> "C++"
"C# 11.9 (.NET 7.0.7)" -> "C#"
と、(おそらく)望ましく正規化するようにしました。
合わせて、LanguageNormalizer.testに、この修正によって正規化が変更される言語選択肢のテストを追加しました。
旧言語のテストもそのままにしてあるので後方互換性の検証も同様に行われます。
この変更は、 Issue #1424 の解決を含みます。