1 | // Copyright (C) 2021 The Qt Company Ltd. |
2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 |
3 | |
4 | #ifndef QUOTER_H |
5 | #define QUOTER_H |
6 | |
7 | #include "location.h" |
8 | |
9 | #include <QtCore/qhash.h> |
10 | #include <QtCore/qstringlist.h> |
11 | |
12 | QT_BEGIN_NAMESPACE |
13 | |
14 | class Quoter |
15 | { |
16 | public: |
17 | Quoter(); |
18 | |
19 | void reset(); |
20 | void quoteFromFile(const QString &userFriendlyFileName, const QString &plainCode, |
21 | const QString &markedCode); |
22 | QString quoteLine(const Location &docLocation, const QString &command, const QString &pattern); |
23 | QString quoteTo(const Location &docLocation, const QString &command, const QString &pattern); |
24 | QString quoteUntil(const Location &docLocation, const QString &command, const QString &pattern); |
25 | QString quoteSnippet(const Location &docLocation, const QString &identifier); |
26 | |
27 | static QStringList splitLines(const QString &line); |
28 | |
29 | private: |
30 | QString getLine(int unindent = 0); |
31 | void failedAtEnd(const Location &docLocation, const QString &command); |
32 | bool match(const Location &docLocation, const QString &pattern, const QString &line); |
33 | [[nodiscard]] QString () const; |
34 | QString removeSpecialLines(const QString &line, const QString &, int unindent = 0); |
35 | |
36 | bool m_silent {}; |
37 | QStringList m_plainLines {}; |
38 | QStringList m_markedLines {}; |
39 | Location m_codeLocation {}; |
40 | static QHash<QString, QString> ; |
41 | }; |
42 | |
43 | QT_END_NAMESPACE |
44 | |
45 | #endif |
46 | |