ClangCodeModel: Highlight Q_PROPERTY declarations with clangd

We re-use the moc parser for this purpose.

Change-Id: Ib0ef4f727d1f0b862a202a95a3ae9c551cb502a5
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Christian Kandeler
2021-11-26 12:54:50 +01:00
parent 6db5faa2e8
commit 0f9aa307a3
18 changed files with 4050 additions and 9 deletions

View File

@@ -1056,12 +1056,26 @@ void ClangdTestHighlighting::test_data()
<< QList<int>{C_PREPROCESSOR} << 0;
QTest::newRow("Q_PROPERTY (property name)") << 599 << 52 << 599 << 56
<< QList<int>{C_FIELD} << 0;
QTest::newRow("Q_PROPERTY (READ keyword)") << 599 << 57 << 599 << 61
<< QList<int>{C_KEYWORD} << 0;
QTest::newRow("Q_PROPERTY (getter)") << 599 << 62 << 599 << 69
<< QList<int>{C_FUNCTION} << 0;
QTest::newRow("Q_PROPERTY (WRITE keyword)") << 599 << 70 << 599 << 75
<< QList<int>{C_KEYWORD} << 0;
QTest::newRow("Q_PROPERTY (setter)") << 599 << 76 << 599 << 83
<< QList<int>{C_FUNCTION} << 0;
QTest::newRow("Q_PROPERTY (NOTIFY keyword)") << 599 << 84 << 599 << 90
<< QList<int>{C_KEYWORD} << 0;
QTest::newRow("Q_PROPERTY (notifier)") << 599 << 91 << 599 << 102
<< QList<int>{C_FUNCTION} << 0;
QTest::newRow("Q_PROPERTY (SCRIPTABLE keyword)") << 599 << 103 << 599 << 113
<< QList<int>{C_KEYWORD} << 0;
QTest::newRow("Q_PROPERTY (REVISION keyword)") << 599 << 119 << 599 << 127
<< QList<int>{C_KEYWORD} << 0;
QTest::newRow("Q_PROPERTY (type)") << 600 << 22 << 600 << 29
<< QList<int>{C_TYPE} << 0;
QTest::newRow("Q_PROPERTY (REVISION keyword [new])") << 600 << 46 << 600 << 54
<< QList<int>{C_KEYWORD} << 0;
QTest::newRow("multi-line Q_PROPERTY (macro name)") << 704 << 5 << 704 << 15
<< QList<int>{C_PREPROCESSOR} << 0;
QTest::newRow("multi-line Q_PROPERTY (property name)") << 718 << 13 << 718 << 17
@@ -1298,13 +1312,6 @@ void ClangdTestHighlighting::test()
"https://github.com/clangd/clangd/issues/878",
Abort);
}
QEXPECT_FAIL("Q_PROPERTY (property name)", "FIXME: How to do this?", Abort);
QEXPECT_FAIL("Q_PROPERTY (getter)", "FIXME: How to do this?", Abort);
QEXPECT_FAIL("Q_PROPERTY (notifier)", "FIXME: How to do this?", Abort);
QEXPECT_FAIL("Q_PROPERTY (type)", "FIXME: How to do this?", Abort);
QEXPECT_FAIL("multi-line Q_PROPERTY (property name)", "FIXME: How to do this?", Abort);
QEXPECT_FAIL("multi-line Q_PROPERTY (getter)", "FIXME: How to do this?", Abort);
QEXPECT_FAIL("multi-line Q_PROPERTY (notifier)", "FIXME: How to do this?", Abort);
QEXPECT_FAIL("old-style signal (signal)", "check if and how we want to support this", Abort);
QEXPECT_FAIL("old-style signal (signal parameter)",
"check if and how we want to support this", Abort);