Mercurial > octave
comparison libgui/languages/build_ts/octave-qsci/Qsci/qscilexerd.h @ 31537:5ceb4bfcdb0f stable
add tools and files for updating the gui's language files for translation
* libgui/languages/build_ts/README.md: readme for updating language files
* libgui/languages/build_ts/octave-qsci: QScintilla source files for
languages without translation provided by QScintilla
* libgui/languages/build_ts/octave-qt: Qt source files for languages
without translation provided by Qt
author | Torsten Lilge <ttl-octave@mailbox.org> |
---|---|
date | Thu, 24 Nov 2022 06:48:25 +0100 |
parents | |
children | dd5ece3664ed |
comparison
equal
deleted
inserted
replaced
31535:4b80982e0af8 | 31537:5ceb4bfcdb0f |
---|---|
1 // This defines the interface to the QsciLexerD class. | |
2 // | |
3 // Copyright (c) 2019 Riverbank Computing Limited <info@riverbankcomputing.com> | |
4 // | |
5 // This file is part of QScintilla. | |
6 // | |
7 // This file may be used under the terms of the GNU General Public License | |
8 // version 3.0 as published by the Free Software Foundation and appearing in | |
9 // the file LICENSE included in the packaging of this file. Please review the | |
10 // following information to ensure the GNU General Public License version 3.0 | |
11 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. | |
12 // | |
13 // If you do not wish to use this file under the terms of the GPL version 3.0 | |
14 // then you may purchase a commercial license. For more information contact | |
15 // info@riverbankcomputing.com. | |
16 // | |
17 // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | |
18 // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | |
19 | |
20 | |
21 #ifndef QSCILEXERD_H | |
22 #define QSCILEXERD_H | |
23 | |
24 #include <QObject> | |
25 | |
26 #include <Qsci/qsciglobal.h> | |
27 #include <Qsci/qscilexer.h> | |
28 | |
29 | |
30 //! \brief The QsciLexerD class encapsulates the Scintilla D lexer. | |
31 class QSCINTILLA_EXPORT QsciLexerD : public QsciLexer | |
32 { | |
33 Q_OBJECT | |
34 | |
35 public: | |
36 //! This enum defines the meanings of the different styles used by the D | |
37 //! lexer. | |
38 enum { | |
39 //! The default. | |
40 Default = 0, | |
41 | |
42 //! A comment. | |
43 Comment = 1, | |
44 | |
45 //! A comment line. | |
46 CommentLine = 2, | |
47 | |
48 //! A JavaDoc and Doxygen comment. | |
49 CommentDoc = 3, | |
50 | |
51 //! A nested comment. | |
52 CommentNested = 4, | |
53 | |
54 //! A number. | |
55 Number = 5, | |
56 | |
57 //! A keyword. | |
58 Keyword = 6, | |
59 | |
60 //! A secondary keyword. | |
61 KeywordSecondary = 7, | |
62 | |
63 //! A doc keyword | |
64 KeywordDoc = 8, | |
65 | |
66 //! Typedefs and aliases | |
67 Typedefs = 9, | |
68 | |
69 //! A string. | |
70 String = 10, | |
71 | |
72 //! The end of a line where a string is not closed. | |
73 UnclosedString = 11, | |
74 | |
75 //! A character | |
76 Character = 12, | |
77 | |
78 //! An operator. | |
79 Operator = 13, | |
80 | |
81 //! An identifier | |
82 Identifier = 14, | |
83 | |
84 //! A JavaDoc and Doxygen line. | |
85 CommentLineDoc = 15, | |
86 | |
87 //! A JavaDoc and Doxygen keyword. | |
88 CommentDocKeyword = 16, | |
89 | |
90 //! A JavaDoc and Doxygen keyword error. | |
91 CommentDocKeywordError = 17, | |
92 | |
93 //! A backquoted string. | |
94 BackquoteString = 18, | |
95 | |
96 //! A raw, hexadecimal or delimited string. | |
97 RawString = 19, | |
98 | |
99 //! A keyword defined in keyword set number 5. The class must be | |
100 //! sub-classed and re-implement keywords() to make use of this style. | |
101 KeywordSet5 = 20, | |
102 | |
103 //! A keyword defined in keyword set number 6. The class must be | |
104 //! sub-classed and re-implement keywords() to make use of this style. | |
105 KeywordSet6 = 21, | |
106 | |
107 //! A keyword defined in keyword set number 7. The class must be | |
108 //! sub-classed and re-implement keywords() to make use of this style. | |
109 KeywordSet7 = 22, | |
110 }; | |
111 | |
112 //! Construct a QsciLexerD with parent \a parent. \a parent is typically | |
113 //! the QsciScintilla instance. | |
114 QsciLexerD(QObject *parent = 0); | |
115 | |
116 //! Destroys the QsciLexerD instance. | |
117 virtual ~QsciLexerD(); | |
118 | |
119 //! Returns the name of the language. | |
120 const char *language() const; | |
121 | |
122 //! Returns the name of the lexer. Some lexers support a number of | |
123 //! languages. | |
124 const char *lexer() const; | |
125 | |
126 //! \internal Returns the character sequences that can separate | |
127 //! auto-completion words. | |
128 QStringList autoCompletionWordSeparators() const; | |
129 | |
130 //! \internal Returns a space separated list of words or characters in a | |
131 //! particular style that define the end of a block for auto-indentation. | |
132 //! The styles is returned via \a style. | |
133 const char *blockEnd(int *style = 0) const; | |
134 | |
135 //! \internal Returns a space separated list of words or characters in a | |
136 //! particular style that define the start of a block for auto-indentation. | |
137 //! The styles is returned via \a style. | |
138 const char *blockStart(int *style = 0) const; | |
139 | |
140 //! \internal Returns a space separated list of keywords in a particular | |
141 //! style that define the start of a block for auto-indentation. The | |
142 //! styles is returned via \a style. | |
143 const char *blockStartKeyword(int *style = 0) const; | |
144 | |
145 //! \internal Returns the style used for braces for brace matching. | |
146 int braceStyle() const; | |
147 | |
148 //! Returns the string of characters that comprise a word. | |
149 const char *wordCharacters() const; | |
150 | |
151 //! Returns the foreground colour of the text for style number \a style. | |
152 //! | |
153 //! \sa defaultPaper() | |
154 QColor defaultColor(int style) const; | |
155 | |
156 //! Returns the end-of-line fill for style number \a style. | |
157 bool defaultEolFill(int style) const; | |
158 | |
159 //! Returns the font for style number \a style. | |
160 QFont defaultFont(int style) const; | |
161 | |
162 //! Returns the background colour of the text for style number \a style. | |
163 //! | |
164 //! \sa defaultColor() | |
165 QColor defaultPaper(int style) const; | |
166 | |
167 //! Returns the set of keywords for the keyword set \a set recognised by | |
168 //! the lexer as a space separated string. | |
169 const char *keywords(int set) const; | |
170 | |
171 //! Returns the descriptive name for style number \a style. If the style | |
172 //! is invalid for this language then an empty QString is returned. This | |
173 //! is intended to be used in user preference dialogs. | |
174 QString description(int style) const; | |
175 | |
176 //! Causes all properties to be refreshed by emitting the propertyChanged() | |
177 //! signal as required. | |
178 void refreshProperties(); | |
179 | |
180 //! Returns true if "} else {" lines can be folded. | |
181 //! | |
182 //! \sa setFoldAtElse() | |
183 bool foldAtElse() const; | |
184 | |
185 //! Returns true if multi-line comment blocks can be folded. | |
186 //! | |
187 //! \sa setFoldComments() | |
188 bool foldComments() const; | |
189 | |
190 //! Returns true if trailing blank lines are included in a fold block. | |
191 //! | |
192 //! \sa setFoldCompact() | |
193 bool foldCompact() const; | |
194 | |
195 public slots: | |
196 //! If \a fold is true then "} else {" lines can be folded. The default is | |
197 //! false. | |
198 //! | |
199 //! \sa foldAtElse() | |
200 virtual void setFoldAtElse(bool fold); | |
201 | |
202 //! If \a fold is true then multi-line comment blocks can be folded. The | |
203 //! default is false. | |
204 //! | |
205 //! \sa foldComments() | |
206 virtual void setFoldComments(bool fold); | |
207 | |
208 //! If \a fold is true then trailing blank lines are included in a fold | |
209 //! block. The default is true. | |
210 //! | |
211 //! \sa foldCompact() | |
212 virtual void setFoldCompact(bool fold); | |
213 | |
214 protected: | |
215 //! The lexer's properties are read from the settings \a qs. \a prefix | |
216 //! (which has a trailing '/') should be used as a prefix to the key of | |
217 //! each setting. true is returned if there is no error. | |
218 //! | |
219 //! \sa writeProperties() | |
220 bool readProperties(QSettings &qs,const QString &prefix); | |
221 | |
222 //! The lexer's properties are written to the settings \a qs. \a prefix | |
223 //! (which has a trailing '/') should be used as a prefix to the key of | |
224 //! each setting. true is returned if there is no error. | |
225 //! | |
226 //! \sa readProperties() | |
227 bool writeProperties(QSettings &qs,const QString &prefix) const; | |
228 | |
229 private: | |
230 void setAtElseProp(); | |
231 void setCommentProp(); | |
232 void setCompactProp(); | |
233 | |
234 bool fold_atelse; | |
235 bool fold_comments; | |
236 bool fold_compact; | |
237 | |
238 QsciLexerD(const QsciLexerD &); | |
239 QsciLexerD &operator=(const QsciLexerD &); | |
240 }; | |
241 | |
242 #endif |