1// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: GPL-3.0-or-later
4
5#ifndef STYLEJSONFILE_H
6#define STYLEJSONFILE_H
7
8#include <QObject>
9#include <QHash>
10#include <QString>
11#include <QDebug>
12
13#include "common/common.h"
14
15/*!
16 * \brief The StyleJsonFile class
17 * 该类线程安全
18 */
19class TextEdit;
20class StyleJsonFilePrivate;
21class StyleJsonFile : public QObject
22{
23 Q_OBJECT
24 StyleJsonFilePrivate *const d;
25public:
26 enum_def(Theme, QString)
27 {
28 enum_exp Dark = "Dark";
29 };
30
31 enum_def(Key_1, QString)
32 {
33 enum_exp Self = "Self";
34 enum_exp Namespace = "Namespace";
35 enum_exp Macro = "Macro";
36 enum_exp Type = "Type";
37 enum_exp Class = "Class";
38 enum_exp Variable = "Variable";
39 enum_exp Property = "Property";
40 enum_exp Text = "Text";
41 enum_exp Link = "Link";
42 enum_exp Selection = "Selection";
43 enum_exp LineNumber = "Line Number";
44 enum_exp Keyword = "Keyword";
45 enum_exp Punctuation = "Punctuation";
46 enum_exp Operators = "Operators";
47 enum_exp OverloadedOperators = "Overloaded Operators";
48 enum_exp Preprocessor = "Preprocessor";
49 enum_exp SearchResult = "Search Result";
50 enum_exp SearchScope = "Search Scope";
51 enum_exp Parentheses = "Parentheses";
52 enum_exp MismatchedParentheses = "Mismatched Parentheses";
53 enum_exp AutoComplete = "Auto Complete";
54 enum_exp CurrentLine = "Current Line";
55 enum_exp CurrentLineNumber = "Current Line Number";
56 enum_exp Occurrences = "Occurrences";
57 enum_exp UnusedOccurrences = "Unused Occurrences";
58 enum_exp RenamingOccurrences = "Renaming Occurrences";
59 enum_exp Number = "Number";
60 enum_exp String = "String";
61 enum_exp PrimitiveType = "Primitive Type";
62 enum_exp Local = "Local";
63 enum_exp Field = "Field";
64 enum_exp Global = "Global";
65 enum_exp Enumeration = "Enumeration";
66 enum_exp Function = "Function";
67 enum_exp FunctionDeclaration = "Function Declaration";
68 enum_exp FunctionDefinition = "Function Definition";
69 enum_exp VirtualFunction = "Virtual Function";
70 enum_exp Comment = "Comment";
71 enum_exp Error = "Error";
72 enum_exp ErrorContext = "Error Context";
73 enum_exp Warning = "Warning";
74 enum_exp WarningContext = "Warning Context";
75 enum_exp Method = "Method";
76 enum_exp Parameter = "Parameter";
77 enum_exp Member = "Member";
78 };
79
80 enum_def(Key_2, QString)
81 {
82 enum_exp Background = "Background";
83 enum_exp Foreground = "Foreground";
84 enum_exp Cursor = "Cursor";
85 enum_exp FontSize = "FontSize";
86 enum_exp UnderLine = "UnderLine";
87 };
88
89 enum_def(Key_3, QString)
90 {
91 enum_exp Color = "Color";
92 enum_exp Style = "Style";
93 };
94
95 StyleJsonFile(TextEdit *edit);
96 TextEdit *edit();
97 virtual ~StyleJsonFile();
98 bool setLanguage(const QString &languageID);
99 QStringList themes() const;
100 bool setTheme(const QString &theme);
101 QJsonValue value(const QString &Key) const;
102};
103
104#endif // STYLEJSONFILE_H
105