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
12QT_BEGIN_NAMESPACE
13
14class Quoter
15{
16public:
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
29private:
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 commentForCode() const;
34 QString removeSpecialLines(const QString &line, const QString &comment, 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> s_commentHash;
41};
42
43QT_END_NAMESPACE
44
45#endif
46

source code of qttools/src/qdoc/qdoc/quoter.h