| 192 | } |
| 193 | |
| 194 | void NppImporter::readLangsModel(const QString &filePath) |
| 195 | { |
| 196 | QFile file(filePath); |
| 197 | |
| 198 | if (file.open(QIODevice::ReadOnly)) { |
| 199 | QXmlStreamReader xml(&file); |
| 200 | |
| 201 | xml.readNextStartElement(); |
| 202 | while (xml.readNextStartElement()) { |
| 203 | if (xml.name() == QStringLiteral("Languages")) { |
| 204 | //qInfo(qUtf8Printable(xml.name().toString())); |
| 205 | |
| 206 | while (xml.readNextStartElement()) { |
| 207 | auto attrs = xml.attributes(); |
| 208 | if (!langNamesToLexer.contains(attrs.value("name").toString())) { |
| 209 | xml.skipCurrentElement(); |
| 210 | continue; |
| 211 | } |
| 212 | |
| 213 | Language language; |
| 214 | language.name = attrs.value("name").toString(); |
| 215 | language.extensions = attrs.value("ext").toString().split(" ", Qt::SkipEmptyParts); |
| 216 | language.shortName = langNamesToLexer[language.name].shortName; |
| 217 | language.longDescription = langNamesToLexer[language.name].longName; |
| 218 | language.lexer_id = langNamesToLexer[language.name].lexer_id; |
| 219 | // TODO: read more |
| 220 | while (xml.readNextStartElement()) { |
| 221 | //qInfo(qUtf8Printable(language.name)); |
| 222 | auto attrs = xml.attributes(); |
| 223 | auto t = xml.readElementText(); |
| 224 | //qInfo(qUtf8Printable(t)); |
| 225 | language.keywords[keywordClassToIndex(attrs.value("name"))] = t; |
| 226 | //xml.skipCurrentElement(); |
| 227 | } |
| 228 | languages.insert(language.name, language); |
| 229 | } |
| 230 | } |
| 231 | else { |
| 232 | xml.skipCurrentElement(); |
| 233 | } |
| 234 | } |
| 235 | if (xml.hasError()) { |
| 236 | qWarning("%s", qUtf8Printable(xml.errorString())); |
| 237 | } |
| 238 | } |
| 239 | } |
| 240 | |
| 241 | void NppImporter::readStylersModel(const QString &filePath) |
| 242 | { |
nothing calls this directly
no test coverage detected