blob: d7b601cf5a530e12b3b530de51fedeab26a69a76 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
// Copyright (C) 2018 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
#ifndef TST_QMLLSMODULES_H
#define TST_QMLLSMODULES_H
#include <QtJsonRpc/private/qjsonrpcprotocol_p.h>
#include <QtLanguageServer/private/qlanguageserverprotocol_p.h>
#include <QtQuickTestUtils/private/qmlutils_p.h>
#include <QtCore/private/qduplicatetracker_p.h>
#include <QtCore/qobject.h>
#include <QtCore/qprocess.h>
#include <QtCore/qlibraryinfo.h>
#include <QtCore/qstringlist.h>
#include <QtTest/qtest.h>
#include <QtQmlLS/private/qlspcustomtypes_p.h>
#include <iostream>
#include <variant>
class tst_qmlls_modules : public QQmlDataTest
{
using ExpectedCompletion = QPair<QString, QLspSpecification::CompletionItemKind>;
using ExpectedCompletions = QList<ExpectedCompletion>;
using ExpectedDocumentation = std::tuple<QString, QString, QString>;
using ExpectedDocumentations = QList<ExpectedDocumentation>;
Q_OBJECT
public:
tst_qmlls_modules();
void checkCompletions(const QByteArray &filePath, int lineNr, int character,
ExpectedCompletions expected, QStringList notExpected);
std::optional<QByteArray> openFile(const QString &uri);
std::optional<QByteArray> openFileFromAbsolutePath(const QString &uri);
void ignoreDiagnostics();
void compareQTextDocumentEdit(const QLspSpecification::TextDocumentEdit &a,
const QLspSpecification::TextDocumentEdit &b);
private slots:
void init() final;
void cleanup();
void initTestCase() final;
void function_documentations_data();
void function_documentations();
void buildDir();
void goToTypeDefinition_data();
void goToTypeDefinition();
void goToDefinition_data();
void goToDefinition();
void findUsages_data();
void findUsages();
void documentFormatting_data();
void documentFormatting();
void renameUsages_data();
void renameUsages();
void linting_data();
void linting();
void rangeFormatting_data();
void rangeFormatting();
void qmldirImports_data();
void qmldirImports();
void quickFixes_data();
void quickFixes();
void automaticSemicolonInsertionForCompletions_data();
void automaticSemicolonInsertionForCompletions();
void hover_data();
void hover();
void checkQuickSnippets();
void semanticHighlightingFull_data();
void semanticHighlightingFull();
void semanticHighlightingRange_data();
void semanticHighlightingRange();
void semanticHighlightingDelta_data();
void semanticHighlightingDelta();
private:
QProcess m_server;
std::unique_ptr<QLanguageServerProtocol> m_protocol;
QString m_qmllsPath;
QList<QByteArray> m_uriToClose;
};
#endif // TST_QMLLSMODULES_H
|