12#include <QRegularExpression>
20 QString normalized = input.normalized(QString::NormalizationForm_D);
21 static const QRegularExpression diacriticMarks(
"[\\p{Mn}]");
22 return normalized.remove(diacriticMarks);
38 QString result = (stripFirst ?
stripAccents(input) : input).toLower().trimmed().replace(
' ',
'_').replace(
'-',
'_');
39 result.erase(std::remove_if(result.begin(), result.end(),
40 [](
const QChar c) { return !QChar::isLetterOrNumber(c.unicode()) && c != QLatin1Char(
'_'); }),
43 if (result.isEmpty()) {
45 }
else if (result[0].isDigit()) {
62 QString result = input;
63 result.replace(QLatin1Char(
'\r'), QLatin1Char(
' '));
64 result.replace(QLatin1Char(
'\n'), QLatin1Char(
' '));
QString removeForbiddenChars(const QString &input, const bool stripFirst=false)
Converts input into a legal language identifier.
QString sanitizeComment(const QString &input)
Makes input safe to embed in a single-line "//" comment.
QString stripAccents(const QString &input)
Strips Unicode diacritic marks (accents) from input using NFC → NFD decomposition.