MCPcopy Create free account
hub / github.com/KDE/kdevelop / addGlobPattern

Method addGlobPattern

kdevplatform/shell/languagecontroller.cpp:122–146  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

120}
121
122void MimeTypeCache::addGlobPattern(const QString& pattern, ILanguageSupport* language)
123{
124 if (pattern.isEmpty()) {
125 qCWarning(SHELL) << "Attempt to add an invalid empty glob pattern.";
126 return; // An empty pattern won't match a filename.
127 }
128
129 if (pattern.front() == QLatin1Char{'*'}) {
130 if (pattern.size() > 1 && !containsWildcardCharacter(pattern.cbegin() + 1, pattern.cend())) {
131 const auto lastChar = pattern.back().toLower();
132 StringLanguagePair suffix{pattern.mid(1).toLower(), language};
133 if (!m_suffixes.contains(lastChar, suffix)) {
134 m_suffixes.insert(lastChar, std::move(suffix));
135 }
136 return;
137 }
138 } else if (!containsWildcardCharacter(pattern.cbegin(), pattern.cend())) {
139 m_literalPatterns.emplace_back(pattern, language);
140 return;
141 }
142
143 QRegularExpression regularExpression(QRegularExpression::wildcardToRegularExpression(pattern),
144 QRegularExpression::CaseInsensitiveOption);
145 m_regularExpressions.emplace_back(std::move(regularExpression), language);
146}
147
148} // namespace
149

Callers

nothing calls this directly

Calls 7

midMethod · 0.80
isEmptyMethod · 0.45
sizeMethod · 0.45
backMethod · 0.45
containsMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected