diff --git a/autotests/syntaxrepository_test.cpp b/autotests/syntaxrepository_test.cpp --- a/autotests/syntaxrepository_test.cpp +++ b/autotests/syntaxrepository_test.cpp @@ -144,8 +144,15 @@ def = m_repo.definitionForName(QLatin1String("Python")); QVERIFY(def.isValid()); + + // indentation QVERIFY(def.indentationBasedFoldingEnabled()); QCOMPARE(def.foldingIgnoreList(), QStringList() << QLatin1String("(?:\\s+|\\s*#.*)")); + + // keyword lists + QVERIFY(!def.keywordLists().isEmpty()); + QVERIFY(def.keywordList(QLatin1String("operators")).contains(QLatin1String("and"))); + QVERIFY(!def.keywordList(QLatin1String("does not exits")).contains(QLatin1String("and"))); } void testFormatData() diff --git a/src/lib/definition.h b/src/lib/definition.h --- a/src/lib/definition.h +++ b/src/lib/definition.h @@ -172,6 +172,20 @@ */ QStringList foldingIgnoreList() const; + /** + * Returns the section names of keywords. + * @since 5.49 + * @see keywordList() + */ + QStringList keywordLists() const; + + /** + * Returns the list of keywords for the keyword list @p name. + * @since 5.49 + * @see keywordLists() + */ + QStringList keywordList(const QString& name) const; + /** * Returns a list of all Format items used by this definition. * @since 5.49 diff --git a/src/lib/definition.cpp b/src/lib/definition.cpp --- a/src/lib/definition.cpp +++ b/src/lib/definition.cpp @@ -187,6 +187,18 @@ return d->foldingIgnoreList; } +QStringList Definition::keywordLists() const +{ + d->load(); + return d->keywordLists.keys(); +} + +QStringList Definition::keywordList(const QString& name) const +{ + d->load(); + return d->keywordList(name).keywords(); +} + QVector Definition::formats() const { d->load(); diff --git a/src/lib/keywordlist.cpp b/src/lib/keywordlist.cpp --- a/src/lib/keywordlist.cpp +++ b/src/lib/keywordlist.cpp @@ -41,6 +41,11 @@ return m_name; } +QStringList KeywordList::keywords() const +{ + return m_keywords.values(); +} + bool KeywordList::contains(const QStringRef &str) const { return contains(str, m_caseSensitive); diff --git a/src/lib/keywordlist_p.h b/src/lib/keywordlist_p.h --- a/src/lib/keywordlist_p.h +++ b/src/lib/keywordlist_p.h @@ -36,6 +36,8 @@ QString name() const; + QStringList keywords() const; + /** Checks if @p str is a keyword in this list. */ bool contains(const QStringRef &str) const; /** Checks if @p str is a keyword in this list, overriding the global case-sensitivity setting. */