diff options
author | Semih Yavuz <semih.yavuz@qt.io> | 2024-04-23 20:23:04 +0200 |
---|---|---|
committer | Semih Yavuz <semih.yavuz@qt.io> | 2024-05-07 13:35:12 +0200 |
commit | 850396a2cfc3399bb105598fbfdc731bb6359bd4 (patch) | |
tree | 96019739c4fc36f2c956803a48378afe97df0978 /tests | |
parent | 3cec6634807de644d6760e8bd0f4368e4653f9a3 (diff) |
semantichighlighting: add highlighting for enums and pragmas
Pragma is mapped to keyword token type, pragma name and values are
mapped to variable highlighting token type. Enum has its own token types
in the protocol. Identifier name in the enum declaration is mapped to
Enum, enum items are mapped to EnumMember in the protocol.
Task-number: QTBUG-120000
Change-Id: I257827e6db494c9c4e1865da9fb632130c46d321
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/qmlls/utils/data/highlights/enums.qml | 11 | ||||
-rw-r--r-- | tests/auto/qmlls/utils/data/highlights/pragmas.qml | 10 | ||||
-rw-r--r-- | tests/auto/qmlls/utils/tst_qmlls_highlighting.cpp | 29 |
3 files changed, 50 insertions, 0 deletions
diff --git a/tests/auto/qmlls/utils/data/highlights/enums.qml b/tests/auto/qmlls/utils/data/highlights/enums.qml new file mode 100644 index 0000000000..22183bf37f --- /dev/null +++ b/tests/auto/qmlls/utils/data/highlights/enums.qml @@ -0,0 +1,11 @@ +// Copyright (C) 2024 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +import QtQml + +QtObject { + enum Osc { + Sin, + Saw = 1 + } +} diff --git a/tests/auto/qmlls/utils/data/highlights/pragmas.qml b/tests/auto/qmlls/utils/data/highlights/pragmas.qml new file mode 100644 index 0000000000..cf99c93584 --- /dev/null +++ b/tests/auto/qmlls/utils/data/highlights/pragmas.qml @@ -0,0 +1,10 @@ +// Copyright (C) 2024 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +pragma Singleton +pragma FunctionSignatureBehavior: Enforced +pragma ValueTypeBehavior: Copy,Addressable + +import QtQml + +QtObject {} diff --git a/tests/auto/qmlls/utils/tst_qmlls_highlighting.cpp b/tests/auto/qmlls/utils/tst_qmlls_highlighting.cpp index 2fda00127d..6ac93af0cb 100644 --- a/tests/auto/qmlls/utils/tst_qmlls_highlighting.cpp +++ b/tests/auto/qmlls/utils/tst_qmlls_highlighting.cpp @@ -233,6 +233,35 @@ void tst_qmlls_highlighting::highlights_data() << Token(QQmlJS::SourceLocation(172, 2, 9, 14), int(SemanticTokenTypes::Keyword), 0); } + { // Pragmas + const auto filePath = m_highlightingDataDir + "/pragmas.qml"; + const auto fileItem = fileObject(filePath); + QTest::addRow("pragma-keyword") + << fileItem + << Token(QQmlJS::SourceLocation(112, 6, 4, 1), int(SemanticTokenTypes::Keyword), 0); + QTest::addRow("pragma-name") << fileItem + << Token(QQmlJS::SourceLocation(136, 25, 5, 8), + int(SemanticTokenTypes::Variable), 0); + QTest::addRow("pragma-value") << fileItem + << Token(QQmlJS::SourceLocation(198, 4, 6, 27), + int(SemanticTokenTypes::Variable), 0); + } + { // Enums + const auto filePath = m_highlightingDataDir + "/enums.qml"; + const auto fileItem = fileObject(filePath); + QTest::addRow("enum-keyword") + << fileItem + << Token(QQmlJS::SourceLocation(141, 4, 7, 5), int(SemanticTokenTypes::Keyword), 0); + QTest::addRow("enum-name") + << fileItem + << Token(QQmlJS::SourceLocation(146, 3, 7, 10), int(SemanticTokenTypes::Enum), 0); + QTest::addRow("enum-item") << fileItem + << Token(QQmlJS::SourceLocation(160, 3, 8, 9), + int(SemanticTokenTypes::EnumMember), 0); + QTest::addRow("enum-value") + << fileItem + << Token(QQmlJS::SourceLocation(179, 1, 9, 15), int(SemanticTokenTypes::Number), 0); + } } void tst_qmlls_highlighting::highlights() |