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 | */ |
19 | class TextEdit; |
20 | class StyleJsonFilePrivate; |
21 | class StyleJsonFile : public QObject |
22 | { |
23 | Q_OBJECT |
24 | StyleJsonFilePrivate *const d; |
25 | public: |
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 |