Mercurial > octave
comparison libgui/languages/build_ts/octave-qsci/Qsci/qsciscintilla.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 module defines the "official" high-level API of the Qt port of | |
2 // Scintilla. | |
3 // | |
4 // Copyright (c) 2019 Riverbank Computing Limited <info@riverbankcomputing.com> | |
5 // | |
6 // This file is part of QScintilla. | |
7 // | |
8 // This file may be used under the terms of the GNU General Public License | |
9 // version 3.0 as published by the Free Software Foundation and appearing in | |
10 // the file LICENSE included in the packaging of this file. Please review the | |
11 // following information to ensure the GNU General Public License version 3.0 | |
12 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. | |
13 // | |
14 // If you do not wish to use this file under the terms of the GPL version 3.0 | |
15 // then you may purchase a commercial license. For more information contact | |
16 // info@riverbankcomputing.com. | |
17 // | |
18 // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | |
19 // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | |
20 | |
21 | |
22 #ifndef QSCISCINTILLA_H | |
23 #define QSCISCINTILLA_H | |
24 | |
25 #include <QByteArray> | |
26 #include <QList> | |
27 #include <QObject> | |
28 #include <QPointer> | |
29 #include <QStringList> | |
30 | |
31 #include <Qsci/qsciglobal.h> | |
32 #include <Qsci/qscicommand.h> | |
33 #include <Qsci/qscidocument.h> | |
34 #include <Qsci/qsciscintillabase.h> | |
35 | |
36 | |
37 QT_BEGIN_NAMESPACE | |
38 class QAction; | |
39 class QImage; | |
40 class QIODevice; | |
41 class QMenu; | |
42 class QPoint; | |
43 QT_END_NAMESPACE | |
44 | |
45 class QsciCommandSet; | |
46 class QsciLexer; | |
47 class QsciStyle; | |
48 class QsciStyledText; | |
49 class QsciListBoxQt; | |
50 | |
51 | |
52 //! \brief The QsciScintilla class implements a higher level, more Qt-like, | |
53 //! API to the Scintilla editor widget. | |
54 //! | |
55 //! QsciScintilla implements methods, signals and slots similar to those found | |
56 //! in other Qt editor classes. It also provides a higher level interface to | |
57 //! features specific to Scintilla such as syntax styling, call tips, | |
58 //! auto-indenting and auto-completion than that provided by QsciScintillaBase. | |
59 class QSCINTILLA_EXPORT QsciScintilla : public QsciScintillaBase | |
60 { | |
61 Q_OBJECT | |
62 | |
63 public: | |
64 //! This enum defines the different auto-indentation styles. | |
65 enum { | |
66 //! A line is automatically indented to match the previous line. | |
67 AiMaintain = 0x01, | |
68 | |
69 //! If the language supported by the current lexer has a specific start | |
70 //! of block character (e.g. { in C++), then a line that begins with | |
71 //! that character is indented as well as the lines that make up the | |
72 //! block. It may be logically ored with AiClosing. | |
73 AiOpening = 0x02, | |
74 | |
75 //! If the language supported by the current lexer has a specific end | |
76 //! of block character (e.g. } in C++), then a line that begins with | |
77 //! that character is indented as well as the lines that make up the | |
78 //! block. It may be logically ored with AiOpening. | |
79 AiClosing = 0x04 | |
80 }; | |
81 | |
82 //! This enum defines the different annotation display styles. | |
83 enum AnnotationDisplay { | |
84 //! Annotations are not displayed. | |
85 AnnotationHidden = ANNOTATION_HIDDEN, | |
86 | |
87 //! Annotations are drawn left justified with no adornment. | |
88 AnnotationStandard = ANNOTATION_STANDARD, | |
89 | |
90 //! Annotations are surrounded by a box. | |
91 AnnotationBoxed = ANNOTATION_BOXED, | |
92 | |
93 //! Annotations are indented to match the text. | |
94 AnnotationIndented = ANNOTATION_INDENTED, | |
95 }; | |
96 | |
97 //! This enum defines the behavior if an auto-completion list contains a | |
98 //! single entry. | |
99 enum AutoCompletionUseSingle { | |
100 //! The single entry is not used automatically and the auto-completion | |
101 //! list is displayed. | |
102 AcusNever, | |
103 | |
104 //! The single entry is used automatically when auto-completion is | |
105 //! explicitly requested (using autoCompleteFromAPIs() or | |
106 //! autoCompleteFromDocument()) but not when auto-completion is | |
107 //! triggered as the user types. | |
108 AcusExplicit, | |
109 | |
110 //! The single entry is used automatically and the auto-completion list | |
111 //! is not displayed. | |
112 AcusAlways | |
113 }; | |
114 | |
115 //! This enum defines the different sources for auto-completion lists. | |
116 enum AutoCompletionSource { | |
117 //! No sources are used, ie. automatic auto-completion is disabled. | |
118 AcsNone, | |
119 | |
120 //! The source is all available sources. | |
121 AcsAll, | |
122 | |
123 //! The source is the current document. | |
124 AcsDocument, | |
125 | |
126 //! The source is any installed APIs. | |
127 AcsAPIs | |
128 }; | |
129 | |
130 //! This enum defines the different brace matching modes. The character | |
131 //! pairs {}, [] and () are treated as braces. The Python lexer will also | |
132 //! match a : with the end of the corresponding indented block. | |
133 enum BraceMatch { | |
134 //! Brace matching is disabled. | |
135 NoBraceMatch, | |
136 | |
137 //! Brace matching is enabled for a brace immediately before the | |
138 //! current position. | |
139 StrictBraceMatch, | |
140 | |
141 //! Brace matching is enabled for a brace immediately before or after | |
142 //! the current position. | |
143 SloppyBraceMatch | |
144 }; | |
145 | |
146 //! This enum defines the different call tip positions. | |
147 enum CallTipsPosition { | |
148 //! Call tips are placed below the text. | |
149 CallTipsBelowText, | |
150 | |
151 //! Call tips are placed above the text. | |
152 CallTipsAboveText, | |
153 }; | |
154 | |
155 //! This enum defines the different call tip styles. | |
156 enum CallTipsStyle { | |
157 //! Call tips are disabled. | |
158 CallTipsNone, | |
159 | |
160 //! Call tips are displayed without a context. A context is any scope | |
161 //! (e.g. a C++ namespace or a Python module) prior to the function | |
162 //! name. | |
163 CallTipsNoContext, | |
164 | |
165 //! Call tips are displayed with a context only if the user hasn't | |
166 //! already implicitly identified the context using autocompletion. | |
167 //! Note that this style may not always be able to align the call tip | |
168 //! with the text being entered. | |
169 CallTipsNoAutoCompletionContext, | |
170 | |
171 //! Call tips are displayed with a context. Note that this style | |
172 //! may not always be able to align the call tip with the text being | |
173 //! entered. | |
174 CallTipsContext | |
175 }; | |
176 | |
177 //! This enum defines the different edge modes for long lines. | |
178 enum EdgeMode { | |
179 //! Long lines are not marked. | |
180 EdgeNone = EDGE_NONE, | |
181 | |
182 //! A vertical line is drawn at the column set by setEdgeColumn(). | |
183 //! This is recommended for monospace fonts. | |
184 EdgeLine = EDGE_LINE, | |
185 | |
186 //! The background color of characters after the column limit is | |
187 //! changed to the color set by setEdgeColor(). This is recommended | |
188 //! for proportional fonts. | |
189 EdgeBackground = EDGE_BACKGROUND, | |
190 | |
191 //! Multiple vertical lines are drawn at the columns defined by | |
192 //! multiple calls to addEdgeColumn(). | |
193 EdgeMultipleLines = EDGE_MULTILINE, | |
194 }; | |
195 | |
196 //! This enum defines the different end-of-line modes. | |
197 enum EolMode { | |
198 //! A carriage return/line feed as used on Windows systems. | |
199 EolWindows = SC_EOL_CRLF, | |
200 | |
201 //! A line feed as used on Unix systems, including OS/X. | |
202 EolUnix = SC_EOL_LF, | |
203 | |
204 //! A carriage return as used on Mac systems prior to OS/X. | |
205 EolMac = SC_EOL_CR | |
206 }; | |
207 | |
208 //! This enum defines the different styles for the folding margin. | |
209 enum FoldStyle { | |
210 //! Folding is disabled. | |
211 NoFoldStyle, | |
212 | |
213 //! Plain folding style using plus and minus symbols. | |
214 PlainFoldStyle, | |
215 | |
216 //! Circled folding style using circled plus and minus symbols. | |
217 CircledFoldStyle, | |
218 | |
219 //! Boxed folding style using boxed plus and minus symbols. | |
220 BoxedFoldStyle, | |
221 | |
222 //! Circled tree style using a flattened tree with circled plus and | |
223 //! minus symbols and rounded corners. | |
224 CircledTreeFoldStyle, | |
225 | |
226 //! Boxed tree style using a flattened tree with boxed plus and minus | |
227 //! symbols and right-angled corners. | |
228 BoxedTreeFoldStyle | |
229 }; | |
230 | |
231 //! This enum defines the different indicator styles. | |
232 enum IndicatorStyle { | |
233 //! A single straight underline. | |
234 PlainIndicator = INDIC_PLAIN, | |
235 | |
236 //! A squiggly underline that requires 3 pixels of descender space. | |
237 SquiggleIndicator = INDIC_SQUIGGLE, | |
238 | |
239 //! A line of small T shapes. | |
240 TTIndicator = INDIC_TT, | |
241 | |
242 //! Diagonal hatching. | |
243 DiagonalIndicator = INDIC_DIAGONAL, | |
244 | |
245 //! Strike out. | |
246 StrikeIndicator = INDIC_STRIKE, | |
247 | |
248 //! An indicator with no visual appearence. | |
249 HiddenIndicator = INDIC_HIDDEN, | |
250 | |
251 //! A rectangle around the text. | |
252 BoxIndicator = INDIC_BOX, | |
253 | |
254 //! A rectangle with rounded corners around the text with the interior | |
255 //! usually more transparent than the border. | |
256 RoundBoxIndicator = INDIC_ROUNDBOX, | |
257 | |
258 //! A rectangle around the text with the interior usually more | |
259 //! transparent than the border. It does not colour the top pixel of | |
260 //! the line so that indicators on contiguous lines are visually | |
261 //! distinct and disconnected. | |
262 StraightBoxIndicator = INDIC_STRAIGHTBOX, | |
263 | |
264 //! A rectangle around the text with the interior usually more | |
265 //! transparent than the border. Unlike StraightBoxIndicator it covers | |
266 //! the entire character area. | |
267 FullBoxIndicator = INDIC_FULLBOX, | |
268 | |
269 //! A dashed underline. | |
270 DashesIndicator = INDIC_DASH, | |
271 | |
272 //! A dotted underline. | |
273 DotsIndicator = INDIC_DOTS, | |
274 | |
275 //! A squiggly underline that requires 2 pixels of descender space and | |
276 //! so will fit under smaller fonts. | |
277 SquiggleLowIndicator = INDIC_SQUIGGLELOW, | |
278 | |
279 //! A dotted rectangle around the text with the interior usually more | |
280 //! transparent than the border. | |
281 DotBoxIndicator = INDIC_DOTBOX, | |
282 | |
283 //! A version of SquiggleIndicator that uses a pixmap. This is quicker | |
284 //! but may be of lower quality. | |
285 SquigglePixmapIndicator = INDIC_SQUIGGLEPIXMAP, | |
286 | |
287 //! A thick underline typically used for the target during Asian | |
288 //! language input composition. | |
289 ThickCompositionIndicator = INDIC_COMPOSITIONTHICK, | |
290 | |
291 //! A thin underline typically used for non-target ranges during Asian | |
292 //! language input composition. | |
293 ThinCompositionIndicator = INDIC_COMPOSITIONTHIN, | |
294 | |
295 //! The color of the text is set to the color of the indicator's | |
296 //! foreground. | |
297 TextColorIndicator = INDIC_TEXTFORE, | |
298 | |
299 //! A triangle below the start of the indicator range. | |
300 TriangleIndicator = INDIC_POINT, | |
301 | |
302 //! A triangle below the centre of the first character in the indicator | |
303 //! range. | |
304 TriangleCharacterIndicator = INDIC_POINTCHARACTER, | |
305 | |
306 //! A vertical gradient between the indicator's foreground colour at | |
307 //! top to fully transparent at the bottom. | |
308 GradientIndicator = INDIC_GRADIENT, | |
309 | |
310 //! A vertical gradient with the indicator's foreground colour in the | |
311 //! middle and fading to fully transparent at the top and bottom. | |
312 CentreGradientIndicator = INDIC_GRADIENTCENTRE, | |
313 }; | |
314 | |
315 //! This enum defines the different margin options. | |
316 enum { | |
317 //! Reset all margin options. | |
318 MoNone = SC_MARGINOPTION_NONE, | |
319 | |
320 //! If this is set then only the first sub-line of a wrapped line will | |
321 //! be selected when clicking on a margin. | |
322 MoSublineSelect = SC_MARGINOPTION_SUBLINESELECT | |
323 }; | |
324 | |
325 //! This enum defines the different margin types. | |
326 enum MarginType { | |
327 //! The margin contains symbols, including those used for folding. | |
328 SymbolMargin = SC_MARGIN_SYMBOL, | |
329 | |
330 //! The margin contains symbols and uses the default foreground color | |
331 //! as its background color. | |
332 SymbolMarginDefaultForegroundColor = SC_MARGIN_FORE, | |
333 | |
334 //! The margin contains symbols and uses the default background color | |
335 //! as its background color. | |
336 SymbolMarginDefaultBackgroundColor = SC_MARGIN_BACK, | |
337 | |
338 //! The margin contains line numbers. | |
339 NumberMargin = SC_MARGIN_NUMBER, | |
340 | |
341 //! The margin contains styled text. | |
342 TextMargin = SC_MARGIN_TEXT, | |
343 | |
344 //! The margin contains right justified styled text. | |
345 TextMarginRightJustified = SC_MARGIN_RTEXT, | |
346 | |
347 //! The margin contains symbols and uses the color set by | |
348 //! setMarginBackgroundColor() as its background color. | |
349 SymbolMarginColor = SC_MARGIN_COLOUR, | |
350 }; | |
351 | |
352 //! This enum defines the different pre-defined marker symbols. | |
353 enum MarkerSymbol { | |
354 //! A circle. | |
355 Circle = SC_MARK_CIRCLE, | |
356 | |
357 //! A rectangle. | |
358 Rectangle = SC_MARK_ROUNDRECT, | |
359 | |
360 //! A triangle pointing to the right. | |
361 RightTriangle = SC_MARK_ARROW, | |
362 | |
363 //! A smaller rectangle. | |
364 SmallRectangle = SC_MARK_SMALLRECT, | |
365 | |
366 //! An arrow pointing to the right. | |
367 RightArrow = SC_MARK_SHORTARROW, | |
368 | |
369 //! An invisible marker that allows code to track the movement | |
370 //! of lines. | |
371 Invisible = SC_MARK_EMPTY, | |
372 | |
373 //! A triangle pointing down. | |
374 DownTriangle = SC_MARK_ARROWDOWN, | |
375 | |
376 //! A drawn minus sign. | |
377 Minus = SC_MARK_MINUS, | |
378 | |
379 //! A drawn plus sign. | |
380 Plus = SC_MARK_PLUS, | |
381 | |
382 //! A vertical line drawn in the background colour. | |
383 VerticalLine = SC_MARK_VLINE, | |
384 | |
385 //! A bottom left corner drawn in the background colour. | |
386 BottomLeftCorner = SC_MARK_LCORNER, | |
387 | |
388 //! A vertical line with a centre right horizontal line drawn | |
389 //! in the background colour. | |
390 LeftSideSplitter = SC_MARK_TCORNER, | |
391 | |
392 //! A drawn plus sign in a box. | |
393 BoxedPlus = SC_MARK_BOXPLUS, | |
394 | |
395 //! A drawn plus sign in a connected box. | |
396 BoxedPlusConnected = SC_MARK_BOXPLUSCONNECTED, | |
397 | |
398 //! A drawn minus sign in a box. | |
399 BoxedMinus = SC_MARK_BOXMINUS, | |
400 | |
401 //! A drawn minus sign in a connected box. | |
402 BoxedMinusConnected = SC_MARK_BOXMINUSCONNECTED, | |
403 | |
404 //! A rounded bottom left corner drawn in the background | |
405 //! colour. | |
406 RoundedBottomLeftCorner = SC_MARK_LCORNERCURVE, | |
407 | |
408 //! A vertical line with a centre right curved line drawn in the | |
409 //! background colour. | |
410 LeftSideRoundedSplitter = SC_MARK_TCORNERCURVE, | |
411 | |
412 //! A drawn plus sign in a circle. | |
413 CircledPlus = SC_MARK_CIRCLEPLUS, | |
414 | |
415 //! A drawn plus sign in a connected box. | |
416 CircledPlusConnected = SC_MARK_CIRCLEPLUSCONNECTED, | |
417 | |
418 //! A drawn minus sign in a circle. | |
419 CircledMinus = SC_MARK_CIRCLEMINUS, | |
420 | |
421 //! A drawn minus sign in a connected circle. | |
422 CircledMinusConnected = SC_MARK_CIRCLEMINUSCONNECTED, | |
423 | |
424 //! No symbol is drawn but the line is drawn with the same background | |
425 //! color as the marker's. | |
426 Background = SC_MARK_BACKGROUND, | |
427 | |
428 //! Three drawn dots. | |
429 ThreeDots = SC_MARK_DOTDOTDOT, | |
430 | |
431 //! Three drawn arrows pointing right. | |
432 ThreeRightArrows = SC_MARK_ARROWS, | |
433 | |
434 //! A full rectangle (ie. the margin background) using the marker's | |
435 //! background color. | |
436 FullRectangle = SC_MARK_FULLRECT, | |
437 | |
438 //! A left rectangle (ie. the left part of the margin background) using | |
439 //! the marker's background color. | |
440 LeftRectangle = SC_MARK_LEFTRECT, | |
441 | |
442 //! No symbol is drawn but the line is drawn underlined using the | |
443 //! marker's background color. | |
444 Underline = SC_MARK_UNDERLINE, | |
445 | |
446 //! A bookmark. | |
447 Bookmark = SC_MARK_BOOKMARK, | |
448 }; | |
449 | |
450 //! This enum defines how tab characters are drawn when whitespace is | |
451 //! visible. | |
452 enum TabDrawMode { | |
453 //! An arrow stretching to the tab stop. | |
454 TabLongArrow = SCTD_LONGARROW, | |
455 | |
456 //! A horizontal line stretching to the tab stop. | |
457 TabStrikeOut = SCTD_STRIKEOUT, | |
458 }; | |
459 | |
460 //! This enum defines the different whitespace visibility modes. When | |
461 //! whitespace is visible spaces are displayed as small centred dots and | |
462 //! tabs are displayed as light arrows pointing to the right. | |
463 enum WhitespaceVisibility { | |
464 //! Whitespace is invisible. | |
465 WsInvisible = SCWS_INVISIBLE, | |
466 | |
467 //! Whitespace is always visible. | |
468 WsVisible = SCWS_VISIBLEALWAYS, | |
469 | |
470 //! Whitespace is visible after the whitespace used for indentation. | |
471 WsVisibleAfterIndent = SCWS_VISIBLEAFTERINDENT, | |
472 | |
473 //! Whitespace used for indentation is visible. | |
474 WsVisibleOnlyInIndent = SCWS_VISIBLEONLYININDENT, | |
475 }; | |
476 | |
477 //! This enum defines the different line wrap modes. | |
478 enum WrapMode { | |
479 //! Lines are not wrapped. | |
480 WrapNone = SC_WRAP_NONE, | |
481 | |
482 //! Lines are wrapped at word boundaries. | |
483 WrapWord = SC_WRAP_WORD, | |
484 | |
485 //! Lines are wrapped at character boundaries. | |
486 WrapCharacter = SC_WRAP_CHAR, | |
487 | |
488 //! Lines are wrapped at whitespace boundaries. | |
489 WrapWhitespace = SC_WRAP_WHITESPACE, | |
490 }; | |
491 | |
492 //! This enum defines the different line wrap visual flags. | |
493 enum WrapVisualFlag { | |
494 //! No wrap flag is displayed. | |
495 WrapFlagNone, | |
496 | |
497 //! A wrap flag is displayed by the text. | |
498 WrapFlagByText, | |
499 | |
500 //! A wrap flag is displayed by the border. | |
501 WrapFlagByBorder, | |
502 | |
503 //! A wrap flag is displayed in the line number margin. | |
504 WrapFlagInMargin | |
505 }; | |
506 | |
507 //! This enum defines the different line wrap indentation modes. | |
508 enum WrapIndentMode { | |
509 //! Wrapped sub-lines are indented by the amount set by | |
510 //! setWrapVisualFlags(). | |
511 WrapIndentFixed = SC_WRAPINDENT_FIXED, | |
512 | |
513 //! Wrapped sub-lines are indented by the same amount as the first | |
514 //! sub-line. | |
515 WrapIndentSame = SC_WRAPINDENT_SAME, | |
516 | |
517 //! Wrapped sub-lines are indented by the same amount as the first | |
518 //! sub-line plus one more level of indentation. | |
519 WrapIndentIndented = SC_WRAPINDENT_INDENT, | |
520 | |
521 //! Wrapped sub-lines are indented by the same amount as the first | |
522 //! sub-line plus two more level of indentation. | |
523 WrapIndentDeeplyIndented = SC_WRAPINDENT_DEEPINDENT | |
524 }; | |
525 | |
526 //! Construct an empty QsciScintilla with parent \a parent. | |
527 QsciScintilla(QWidget *parent = 0); | |
528 | |
529 //! Destroys the QsciScintilla instance. | |
530 virtual ~QsciScintilla(); | |
531 | |
532 //! Returns the API context, which is a list of words, before the position | |
533 //! \a pos in the document. The context can be used by auto-completion and | |
534 //! call tips to help to identify which API call the user is referring to. | |
535 //! In the default implementation the current lexer determines what | |
536 //! characters make up a word, and what characters determine the boundaries | |
537 //! of words (ie. the start characters). If there is no current lexer then | |
538 //! the context will consist of a single word. On return \a context_start | |
539 //! will contain the position in the document of the start of the context | |
540 //! and \a last_word_start will contain the position in the document of the | |
541 //! start of the last word of the context. | |
542 virtual QStringList apiContext(int pos, int &context_start, | |
543 int &last_word_start); | |
544 | |
545 //! Annotate the line \a line with the text \a text using the style number | |
546 //! \a style. | |
547 void annotate(int line, const QString &text, int style); | |
548 | |
549 //! Annotate the line \a line with the text \a text using the style \a | |
550 //! style. | |
551 void annotate(int line, const QString &text, const QsciStyle &style); | |
552 | |
553 //! Annotate the line \a line with the styled text \a text. | |
554 void annotate(int line, const QsciStyledText &text); | |
555 | |
556 //! Annotate the line \a line with the list of styled text \a text. | |
557 void annotate(int line, const QList<QsciStyledText> &text); | |
558 | |
559 //! Returns the annotation on line \a line, if any. | |
560 QString annotation(int line) const; | |
561 | |
562 //! Returns the display style for annotations. | |
563 //! | |
564 //! \sa setAnnotationDisplay() | |
565 AnnotationDisplay annotationDisplay() const; | |
566 | |
567 //! The annotations on line \a line are removed. If \a line is negative | |
568 //! then all annotations are removed. | |
569 void clearAnnotations(int line = -1); | |
570 | |
571 //! Returns true if auto-completion lists are case sensitive. | |
572 //! | |
573 //! \sa setAutoCompletionCaseSensitivity() | |
574 bool autoCompletionCaseSensitivity() const; | |
575 | |
576 //! Returns true if auto-completion fill-up characters are enabled. | |
577 //! | |
578 //! \sa setAutoCompletionFillups(), setAutoCompletionFillupsEnabled() | |
579 bool autoCompletionFillupsEnabled() const; | |
580 | |
581 //! Returns true if the rest of the word to the right of the current cursor | |
582 //! is removed when an item from an auto-completion list is selected. | |
583 //! | |
584 //! \sa setAutoCompletionReplaceWord() | |
585 bool autoCompletionReplaceWord() const; | |
586 | |
587 //! Returns true if the only item in an auto-completion list with a single | |
588 //! entry is automatically used and the list not displayed. Note that this | |
589 //! is deprecated and autoCompletionUseSingle() should be used instead. | |
590 //! | |
591 //! \sa setAutoCompletionShowSingle() | |
592 bool autoCompletionShowSingle() const; | |
593 | |
594 //! Returns the current source for the auto-completion list when it is | |
595 //! being displayed automatically as the user types. | |
596 //! | |
597 //! \sa setAutoCompletionSource() | |
598 AutoCompletionSource autoCompletionSource() const {return acSource;} | |
599 | |
600 //! Returns the current threshold for the automatic display of the | |
601 //! auto-completion list as the user types. | |
602 //! | |
603 //! \sa setAutoCompletionThreshold() | |
604 int autoCompletionThreshold() const {return acThresh;} | |
605 | |
606 //! Returns the current behavior when an auto-completion list contains a | |
607 //! single entry. | |
608 //! | |
609 //! \sa setAutoCompletionUseSingle() | |
610 AutoCompletionUseSingle autoCompletionUseSingle() const; | |
611 | |
612 //! Returns true if auto-indentation is enabled. | |
613 //! | |
614 //! \sa setAutoIndent() | |
615 bool autoIndent() const {return autoInd;} | |
616 | |
617 //! Returns true if the backspace key unindents a line instead of deleting | |
618 //! a character. The default is false. | |
619 //! | |
620 //! \sa setBackspaceUnindents(), tabIndents(), setTabIndents() | |
621 bool backspaceUnindents() const; | |
622 | |
623 //! Mark the beginning of a sequence of actions that can be undone by a | |
624 //! single call to undo(). | |
625 //! | |
626 //! \sa endUndoAction(), undo() | |
627 void beginUndoAction(); | |
628 | |
629 //! Returns the brace matching mode. | |
630 //! | |
631 //! \sa setBraceMatching() | |
632 BraceMatch braceMatching() const {return braceMode;} | |
633 | |
634 //! Returns the encoded text between positions \a start and \a end. This | |
635 //! is typically used by QsciLexerCustom::styleText(). | |
636 //! | |
637 //! \sa text() | |
638 QByteArray bytes(int start, int end) const; | |
639 | |
640 //! Returns the current call tip position. | |
641 //! | |
642 //! \sa setCallTipsPosition() | |
643 CallTipsPosition callTipsPosition() const {return call_tips_position;} | |
644 | |
645 //! Returns the current call tip style. | |
646 //! | |
647 //! \sa setCallTipsStyle() | |
648 CallTipsStyle callTipsStyle() const {return call_tips_style;} | |
649 | |
650 //! Returns the maximum number of call tips that are displayed. | |
651 //! | |
652 //! \sa setCallTipsVisible() | |
653 int callTipsVisible() const {return maxCallTips;} | |
654 | |
655 //! Cancel any previous call to findFirst(), findFirstInSelection() or | |
656 //! findNext() so that replace() does nothing. | |
657 void cancelFind(); | |
658 | |
659 //! Cancel any current auto-completion or user defined list. | |
660 void cancelList(); | |
661 | |
662 //! Returns true if the current language lexer is case sensitive. If there | |
663 //! is no current lexer then true is returned. | |
664 bool caseSensitive() const; | |
665 | |
666 //! Clear all current folds, i.e. ensure that all lines are displayed | |
667 //! unfolded. | |
668 //! | |
669 //! \sa setFolding() | |
670 void clearFolds(); | |
671 | |
672 //! Clears the range of text with indicator \a indicatorNumber starting at | |
673 //! position \a indexFrom in line \a lineFrom and finishing at position | |
674 //! \a indexTo in line \a lineTo. | |
675 //! | |
676 //! \sa fillIndicatorRange() | |
677 void clearIndicatorRange(int lineFrom, int indexFrom, int lineTo, | |
678 int indexTo, int indicatorNumber); | |
679 | |
680 //! Clear all registered images. | |
681 //! | |
682 //! \sa registerImage() | |
683 void clearRegisteredImages(); | |
684 | |
685 //! Returns the widget's text (ie. foreground) colour. | |
686 //! | |
687 //! \sa setColor() | |
688 QColor color() const; | |
689 | |
690 //! Returns a list of the line numbers that have contracted folds. This is | |
691 //! typically used to save the fold state of a document. | |
692 //! | |
693 //! \sa setContractedFolds() | |
694 QList<int> contractedFolds() const; | |
695 | |
696 //! All the lines of the text have their end-of-lines converted to mode | |
697 //! \a mode. | |
698 //! | |
699 //! \sa eolMode(), setEolMode() | |
700 void convertEols(EolMode mode); | |
701 | |
702 //! Create the standard context menu which is shown when the user clicks | |
703 //! with the right mouse button. It is called from contextMenuEvent(). | |
704 //! The menu's ownership is transferred to the caller. | |
705 QMenu *createStandardContextMenu(); | |
706 | |
707 //! Returns the attached document. | |
708 //! | |
709 //! \sa setDocument() | |
710 QsciDocument document() const {return doc;} | |
711 | |
712 //! Mark the end of a sequence of actions that can be undone by a single | |
713 //! call to undo(). | |
714 //! | |
715 //! \sa beginUndoAction(), undo() | |
716 void endUndoAction(); | |
717 | |
718 //! Returns the color of the marker used to show that a line has exceeded | |
719 //! the length set by setEdgeColumn(). | |
720 //! | |
721 //! \sa setEdgeColor(), \sa setEdgeColumn | |
722 QColor edgeColor() const; | |
723 | |
724 //! Returns the number of the column after which lines are considered to be | |
725 //! long. | |
726 //! | |
727 //! \sa setEdgeColumn() | |
728 int edgeColumn() const; | |
729 | |
730 //! Returns the edge mode which determines how long lines are marked. | |
731 //! | |
732 //! \sa setEdgeMode() | |
733 EdgeMode edgeMode() const; | |
734 | |
735 //! Set the default font. This has no effect if a language lexer has been | |
736 //! set. | |
737 void setFont(const QFont &f); | |
738 | |
739 //! Returns the end-of-line mode. | |
740 //! | |
741 //! \sa setEolMode() | |
742 EolMode eolMode() const; | |
743 | |
744 //! Returns the visibility of end-of-lines. | |
745 //! | |
746 //! \sa setEolVisibility() | |
747 bool eolVisibility() const; | |
748 | |
749 //! Returns the extra space added to the height of a line above the | |
750 //! baseline of the text. | |
751 //! | |
752 //! \sa setExtraAscent(), extraDescent() | |
753 int extraAscent() const; | |
754 | |
755 //! Returns the extra space added to the height of a line below the | |
756 //! baseline of the text. | |
757 //! | |
758 //! \sa setExtraDescent(), extraAscent() | |
759 int extraDescent() const; | |
760 | |
761 //! Fills the range of text with indicator \a indicatorNumber starting at | |
762 //! position \a indexFrom in line \a lineFrom and finishing at position | |
763 //! \a indexTo in line \a lineTo. | |
764 //! | |
765 //! \sa clearIndicatorRange() | |
766 void fillIndicatorRange(int lineFrom, int indexFrom, int lineTo, | |
767 int indexTo, int indicatorNumber); | |
768 | |
769 //! Find the first occurrence of the string \a expr and return true if | |
770 //! \a expr was found, otherwise returns false. If \a expr is found it | |
771 //! becomes the current selection. | |
772 //! | |
773 //! If \a re is true then \a expr is interpreted as a regular expression | |
774 //! rather than a simple string. | |
775 //! | |
776 //! If \a cs is true then the search is case sensitive. | |
777 //! | |
778 //! If \a wo is true then the search looks for whole word matches only, | |
779 //! otherwise it searches for any matching text. | |
780 //! | |
781 //! If \a wrap is true then the search wraps around the end of the text. | |
782 //! | |
783 //! If \a forward is true (the default) then the search is forward from the | |
784 //! starting position to the end of the text, otherwise it is backwards to | |
785 //! the beginning of the text. | |
786 //! | |
787 //! If either \a line or \a index are negative (the default) then the | |
788 //! search begins from the current cursor position. Otherwise the search | |
789 //! begins at position \a index of line \a line. | |
790 //! | |
791 //! If \a show is true (the default) then any text found is made visible | |
792 //! (ie. it is unfolded). | |
793 //! | |
794 //! If \a posix is true then a regular expression is treated in a more | |
795 //! POSIX compatible manner by interpreting bare ( and ) as tagged sections | |
796 //! rather than \( and \). | |
797 //! | |
798 //! If \a cxx11 is true then a regular expression is treated as a Cxx11 | |
799 //! regular expression. | |
800 //! | |
801 //! \sa cancelFind(), findFirstInSelection(), findNext(), replace() | |
802 virtual bool findFirst(const QString &expr, bool re, bool cs, bool wo, | |
803 bool wrap, bool forward = true, int line = -1, int index = -1, | |
804 bool show = true, bool posix = false, bool cxx11 = false); | |
805 | |
806 //! Find the first occurrence of the string \a expr in the current | |
807 //! selection and return true if \a expr was found, otherwise returns | |
808 //! false. If \a expr is found it becomes the current selection. The | |
809 //! original selection is restored when a subsequent call to findNext() | |
810 //! returns false. | |
811 //! | |
812 //! If \a re is true then \a expr is interpreted as a regular expression | |
813 //! rather than a simple string. | |
814 //! | |
815 //! If \a cs is true then the search is case sensitive. | |
816 //! | |
817 //! If \a wo is true then the search looks for whole word matches only, | |
818 //! otherwise it searches for any matching text. | |
819 //! | |
820 //! If \a forward is true (the default) then the search is forward from the | |
821 //! start to the end of the selection, otherwise it is backwards from the | |
822 //! end to the start of the selection. | |
823 //! | |
824 //! If \a show is true (the default) then any text found is made visible | |
825 //! (ie. it is unfolded). | |
826 //! | |
827 //! If \a posix is true then a regular expression is treated in a more | |
828 //! POSIX compatible manner by interpreting bare ( and ) as tagged sections | |
829 //! rather than \( and \). | |
830 //! | |
831 //! If \a cxx11 is true then a regular expression is treated as a Cxx11 | |
832 //! regular expression. | |
833 //! | |
834 //! \sa cancelFind(), findFirst(), findNext(), replace() | |
835 virtual bool findFirstInSelection(const QString &expr, bool re, bool cs, | |
836 bool wo, bool forward = true, bool show = true, | |
837 bool posix = false, bool cxx11 = false); | |
838 | |
839 //! Find the next occurence of the string found using findFirst() or | |
840 //! findFirstInSelection(). | |
841 //! | |
842 //! \sa cancelFind(), findFirst(), findFirstInSelection(), replace() | |
843 virtual bool findNext(); | |
844 | |
845 //! Find a brace and it's match. \a brace is updated with the position of | |
846 //! the brace and will be -1 if there is none. \a is updated with the | |
847 //! position of the matching brace and will be -1 if there is none. | |
848 //! \a mode specifies how braces are matched. true is returned if the | |
849 //! current position is inside a pair of braces. | |
850 bool findMatchingBrace(long &brace, long &other, BraceMatch mode); | |
851 | |
852 //! Returns the number of the first visible line. | |
853 //! | |
854 //! \sa setFirstVisibleLine() | |
855 int firstVisibleLine() const; | |
856 | |
857 //! Returns the current folding style. | |
858 //! | |
859 //! \sa setFolding() | |
860 FoldStyle folding() const {return fold;} | |
861 | |
862 //! Sets \a *line and \a *index to the line and index of the cursor. | |
863 //! | |
864 //! \sa setCursorPosition() | |
865 void getCursorPosition(int *line, int *index) const; | |
866 | |
867 //! If there is a selection, \a *lineFrom is set to the line number in | |
868 //! which the selection begins and \a *lineTo is set to the line number in | |
869 //! which the selection ends. (They could be the same.) \a *indexFrom is | |
870 //! set to the index at which the selection begins within \a *lineFrom, and | |
871 //! \a *indexTo is set to the index at which the selection ends within | |
872 //! \a *lineTo. If there is no selection, \a *lineFrom, \a *indexFrom, | |
873 //! \a *lineTo and \a *indexTo are all set to -1. | |
874 //! | |
875 //! \sa setSelection() | |
876 void getSelection(int *lineFrom, int *indexFrom, int *lineTo, | |
877 int *indexTo) const; | |
878 | |
879 //! Returns true if some text is selected. | |
880 //! | |
881 //! \sa selectedText() | |
882 bool hasSelectedText() const {return selText;} | |
883 | |
884 //! Returns the number of characters that line \a line is indented by. | |
885 //! | |
886 //! \sa setIndentation() | |
887 int indentation(int line) const; | |
888 | |
889 //! Returns true if the display of indentation guides is enabled. | |
890 //! | |
891 //! \sa setIndentationGuides() | |
892 bool indentationGuides() const; | |
893 | |
894 //! Returns true if indentations are created using tabs and spaces, rather | |
895 //! than just spaces. The default is true. | |
896 //! | |
897 //! \sa setIndentationsUseTabs() | |
898 bool indentationsUseTabs() const; | |
899 | |
900 //! Returns the indentation width in characters. The default is 0 which | |
901 //! means that the value returned by tabWidth() is actually used. | |
902 //! | |
903 //! \sa setIndentationWidth(), tabWidth() | |
904 int indentationWidth() const; | |
905 | |
906 //! Define a type of indicator using the style \a style with the indicator | |
907 //! number \a indicatorNumber. If \a indicatorNumber is -1 then the | |
908 //! indicator number is automatically allocated. The indicator number is | |
909 //! returned or -1 if too many types of indicator have been defined. | |
910 //! | |
911 //! Indicators are used to display additional information over the top of | |
912 //! styling. They can be used to show, for example, syntax errors, | |
913 //! deprecated names and bad indentation by drawing lines under text or | |
914 //! boxes around text. | |
915 //! | |
916 //! There may be up to 32 types of indicator defined at a time. The first | |
917 //! 8 are normally used by lexers. By default indicator number 0 is a | |
918 //! dark green SquiggleIndicator, 1 is a blue TTIndicator, and 2 is a red | |
919 //! PlainIndicator. | |
920 int indicatorDefine(IndicatorStyle style, int indicatorNumber = -1); | |
921 | |
922 //! Returns true if the indicator \a indicatorNumber is drawn under the | |
923 //! text (i.e. in the background). The default is false. | |
924 //! | |
925 //! \sa setIndicatorDrawUnder() | |
926 bool indicatorDrawUnder(int indicatorNumber) const; | |
927 | |
928 //! Returns true if a call tip is currently active. | |
929 bool isCallTipActive() const; | |
930 | |
931 //! Returns true if an auto-completion or user defined list is currently | |
932 //! active. | |
933 bool isListActive() const; | |
934 | |
935 //! Returns true if the text has been modified. | |
936 //! | |
937 //! \sa setModified(), modificationChanged() | |
938 bool isModified() const; | |
939 | |
940 //! Returns true if the text edit is read-only. | |
941 //! | |
942 //! \sa setReadOnly() | |
943 bool isReadOnly() const; | |
944 | |
945 //! Returns true if there is something that can be redone. | |
946 //! | |
947 //! \sa redo() | |
948 bool isRedoAvailable() const; | |
949 | |
950 //! Returns true if there is something that can be undone. | |
951 //! | |
952 //! \sa undo() | |
953 bool isUndoAvailable() const; | |
954 | |
955 //! Returns true if text is interpreted as being UTF8 encoded. The default | |
956 //! is to interpret the text as Latin1 encoded. | |
957 //! | |
958 //! \sa setUtf8() | |
959 bool isUtf8() const; | |
960 | |
961 //! Returns true if character \a ch is a valid word character. | |
962 //! | |
963 //! \sa wordCharacters() | |
964 bool isWordCharacter(char ch) const; | |
965 | |
966 //! Returns the line which is at \a point pixel coordinates or -1 if there | |
967 //! is no line at that point. | |
968 int lineAt(const QPoint &point) const; | |
969 | |
970 //! QScintilla uses the combination of a line number and a character index | |
971 //! from the start of that line to specify the position of a character | |
972 //! within the text. The underlying Scintilla instead uses a byte index | |
973 //! from the start of the text. This will convert the \a position byte | |
974 //! index to the \a *line line number and \a *index character index. | |
975 //! | |
976 //! \sa positionFromLineIndex() | |
977 void lineIndexFromPosition(int position, int *line, int *index) const; | |
978 | |
979 //! Returns the length of line \a line int bytes or -1 if there is no such | |
980 //! line. In order to get the length in characters use text(line).length(). | |
981 int lineLength(int line) const; | |
982 | |
983 //! Returns the number of lines of text. | |
984 int lines() const; | |
985 | |
986 //! Returns the length of the text edit's text in bytes. In order to get | |
987 //! the length in characters use text().length(). | |
988 int length() const; | |
989 | |
990 //! Returns the current language lexer used to style text. If it is 0 then | |
991 //! syntax styling is disabled. | |
992 //! | |
993 //! \sa setLexer() | |
994 QsciLexer *lexer() const; | |
995 | |
996 //! Returns the background color of margin \a margin. | |
997 //! | |
998 //! \sa setMarginBackgroundColor() | |
999 QColor marginBackgroundColor(int margin) const; | |
1000 | |
1001 //! Returns true if line numbers are enabled for margin \a margin. | |
1002 //! | |
1003 //! \sa setMarginLineNumbers(), marginType(), SCI_GETMARGINTYPEN | |
1004 bool marginLineNumbers(int margin) const; | |
1005 | |
1006 //! Returns the marker mask of margin \a margin. | |
1007 //! | |
1008 //! \sa setMarginMask(), QsciMarker, SCI_GETMARGINMASKN | |
1009 int marginMarkerMask(int margin) const; | |
1010 | |
1011 //! Returns the margin options. The default is MoNone. | |
1012 //! | |
1013 //! \sa setMarginOptions(), MoNone, MoSublineSelect. | |
1014 int marginOptions() const; | |
1015 | |
1016 //! Returns true if margin \a margin is sensitive to mouse clicks. | |
1017 //! | |
1018 //! \sa setMarginSensitivity(), marginClicked(), SCI_GETMARGINTYPEN | |
1019 bool marginSensitivity(int margin) const; | |
1020 | |
1021 //! Returns the type of margin \a margin. | |
1022 //! | |
1023 //! \sa setMarginType(), SCI_GETMARGINTYPEN | |
1024 MarginType marginType(int margin) const; | |
1025 | |
1026 //! Returns the width in pixels of margin \a margin. | |
1027 //! | |
1028 //! \sa setMarginWidth(), SCI_GETMARGINWIDTHN | |
1029 int marginWidth(int margin) const; | |
1030 | |
1031 //! Returns the number of margins. | |
1032 //! | |
1033 //! \sa setMargins() | |
1034 int margins() const; | |
1035 | |
1036 //! Define a type of marker using the symbol \a sym with the marker number | |
1037 //! \a markerNumber. If \a markerNumber is -1 then the marker number is | |
1038 //! automatically allocated. The marker number is returned or -1 if too | |
1039 //! many types of marker have been defined. | |
1040 //! | |
1041 //! Markers are small geometric symbols and characters used, for example, | |
1042 //! to indicate the current line or, in debuggers, to indicate breakpoints. | |
1043 //! If a margin has a width of 0 then its markers are not drawn, but their | |
1044 //! background colours affect the background colour of the corresponding | |
1045 //! line of text. | |
1046 //! | |
1047 //! There may be up to 32 types of marker defined at a time and each line | |
1048 //! of text has a set of marker instances associated with it. Markers are | |
1049 //! drawn according to their numerical identifier. Markers try to move | |
1050 //! with their text by tracking where the start of their line moves to. | |
1051 //! For example, when a line is deleted its markers are added to previous | |
1052 //! line's markers. | |
1053 //! | |
1054 //! Each marker type is identified by a marker number. Each instance of a | |
1055 //! marker is identified by a marker handle. | |
1056 int markerDefine(MarkerSymbol sym, int markerNumber = -1); | |
1057 | |
1058 //! Define a marker using the character \a ch with the marker number | |
1059 //! \a markerNumber. If \a markerNumber is -1 then the marker number is | |
1060 //! automatically allocated. The marker number is returned or -1 if too | |
1061 //! many markers have been defined. | |
1062 int markerDefine(char ch, int markerNumber = -1); | |
1063 | |
1064 //! Define a marker using a copy of the pixmap \a pm with the marker number | |
1065 //! \a markerNumber. If \a markerNumber is -1 then the marker number is | |
1066 //! automatically allocated. The marker number is returned or -1 if too | |
1067 //! many markers have been defined. | |
1068 int markerDefine(const QPixmap &pm, int markerNumber = -1); | |
1069 | |
1070 //! Define a marker using a copy of the image \a im with the marker number | |
1071 //! \a markerNumber. If \a markerNumber is -1 then the marker number is | |
1072 //! automatically allocated. The marker number is returned or -1 if too | |
1073 //! many markers have been defined. | |
1074 int markerDefine(const QImage &im, int markerNumber = -1); | |
1075 | |
1076 //! Add an instance of marker number \a markerNumber to line number | |
1077 //! \a linenr. A handle for the marker is returned which can be used to | |
1078 //! track the marker's position, or -1 if the \a markerNumber was invalid. | |
1079 //! | |
1080 //! \sa markerDelete(), markerDeleteAll(), markerDeleteHandle() | |
1081 int markerAdd(int linenr, int markerNumber); | |
1082 | |
1083 //! Returns the 32 bit mask of marker numbers at line number \a linenr. | |
1084 //! | |
1085 //! \sa markerAdd() | |
1086 unsigned markersAtLine(int linenr) const; | |
1087 | |
1088 //! Delete all markers with the marker number \a markerNumber in the line | |
1089 //! \a linenr. If \a markerNumber is -1 then delete all markers from line | |
1090 //! \a linenr. | |
1091 //! | |
1092 //! \sa markerAdd(), markerDeleteAll(), markerDeleteHandle() | |
1093 void markerDelete(int linenr, int markerNumber = -1); | |
1094 | |
1095 //! Delete the all markers with the marker number \a markerNumber. If | |
1096 //! \a markerNumber is -1 then delete all markers. | |
1097 //! | |
1098 //! \sa markerAdd(), markerDelete(), markerDeleteHandle() | |
1099 void markerDeleteAll(int markerNumber = -1); | |
1100 | |
1101 //! Delete the the marker instance with the marker handle \a mhandle. | |
1102 //! | |
1103 //! \sa markerAdd(), markerDelete(), markerDeleteAll() | |
1104 void markerDeleteHandle(int mhandle); | |
1105 | |
1106 //! Return the line number that contains the marker instance with the | |
1107 //! marker handle \a mhandle. | |
1108 int markerLine(int mhandle) const; | |
1109 | |
1110 //! Return the number of the next line to contain at least one marker from | |
1111 //! a 32 bit mask of markers. \a linenr is the line number to start the | |
1112 //! search from. \a mask is the mask of markers to search for. | |
1113 //! | |
1114 //! \sa markerFindPrevious() | |
1115 int markerFindNext(int linenr, unsigned mask) const; | |
1116 | |
1117 //! Return the number of the previous line to contain at least one marker | |
1118 //! from a 32 bit mask of markers. \a linenr is the line number to start | |
1119 //! the search from. \a mask is the mask of markers to search for. | |
1120 //! | |
1121 //! \sa markerFindNext() | |
1122 int markerFindPrevious(int linenr, unsigned mask) const; | |
1123 | |
1124 //! Returns true if text entered by the user will overwrite existing text. | |
1125 //! | |
1126 //! \sa setOverwriteMode() | |
1127 bool overwriteMode() const; | |
1128 | |
1129 //! Returns the widget's paper (ie. background) colour. | |
1130 //! | |
1131 //! \sa setPaper() | |
1132 QColor paper() const; | |
1133 | |
1134 //! QScintilla uses the combination of a line number and a character index | |
1135 //! from the start of that line to specify the position of a character | |
1136 //! within the text. The underlying Scintilla instead uses a byte index | |
1137 //! from the start of the text. This will return the byte index | |
1138 //! corresponding to the \a line line number and \a index character index. | |
1139 //! | |
1140 //! \sa lineIndexFromPosition() | |
1141 int positionFromLineIndex(int line, int index) const; | |
1142 | |
1143 //! Reads the current document from the \a io device and returns true if | |
1144 //! there was no error. | |
1145 //! | |
1146 //! \sa write() | |
1147 bool read(QIODevice *io); | |
1148 | |
1149 //! Recolours the document between the \a start and \a end positions. | |
1150 //! \a start defaults to the start of the document and \a end defaults to | |
1151 //! the end of the document. | |
1152 virtual void recolor(int start = 0, int end = -1); | |
1153 | |
1154 //! Register an image \a pm with ID \a id. Registered images can be | |
1155 //! displayed in auto-completion lists. | |
1156 //! | |
1157 //! \sa clearRegisteredImages(), QsciLexer::apiLoad() | |
1158 void registerImage(int id, const QPixmap &pm); | |
1159 | |
1160 //! Register an image \a im with ID \a id. Registered images can be | |
1161 //! displayed in auto-completion lists. | |
1162 //! | |
1163 //! \sa clearRegisteredImages(), QsciLexer::apiLoad() | |
1164 void registerImage(int id, const QImage &im); | |
1165 | |
1166 //! Replace the current selection, set by a previous call to findFirst(), | |
1167 //! findFirstInSelection() or findNext(), with \a replaceStr. | |
1168 //! | |
1169 //! \sa cancelFind(), findFirst(), findFirstInSelection(), findNext() | |
1170 virtual void replace(const QString &replaceStr); | |
1171 | |
1172 //! Reset the fold margin colours to their defaults. | |
1173 //! | |
1174 //! \sa setFoldMarginColors() | |
1175 void resetFoldMarginColors(); | |
1176 | |
1177 //! Resets the background colour of an active hotspot area to the default. | |
1178 //! | |
1179 //! \sa setHotspotBackgroundColor(), resetHotspotForegroundColor() | |
1180 void resetHotspotBackgroundColor(); | |
1181 | |
1182 //! Resets the foreground colour of an active hotspot area to the default. | |
1183 //! | |
1184 //! \sa setHotspotForegroundColor(), resetHotspotBackgroundColor() | |
1185 void resetHotspotForegroundColor(); | |
1186 | |
1187 //! Gets the assumed document width in pixels. | |
1188 //! | |
1189 //! \sa setScrollWidth(), setScrollWidthTracking() | |
1190 int scrollWidth() const; | |
1191 | |
1192 //! Returns true if scroll width tracking is enabled. | |
1193 //! | |
1194 //! \sa scrollWidth(), setScrollWidthTracking() | |
1195 bool scrollWidthTracking() const; | |
1196 | |
1197 //! The fold margin may be drawn as a one pixel sized checkerboard pattern | |
1198 //! of two colours, \a fore and \a back. | |
1199 //! | |
1200 //! \sa resetFoldMarginColors() | |
1201 void setFoldMarginColors(const QColor &fore, const QColor &back); | |
1202 | |
1203 //! Set the display style for annotations. The default is | |
1204 //! AnnotationStandard. | |
1205 //! | |
1206 //! \sa annotationDisplay() | |
1207 void setAnnotationDisplay(AnnotationDisplay display); | |
1208 | |
1209 //! Enable the use of fill-up characters, either those explicitly set or | |
1210 //! those set by a lexer. By default, fill-up characters are disabled. | |
1211 //! | |
1212 //! \sa autoCompletionFillupsEnabled(), setAutoCompletionFillups() | |
1213 void setAutoCompletionFillupsEnabled(bool enabled); | |
1214 | |
1215 //! A fill-up character is one that, when entered while an auto-completion | |
1216 //! list is being displayed, causes the currently selected item from the | |
1217 //! list to be added to the text followed by the fill-up character. | |
1218 //! \a fillups is the set of fill-up characters. If a language lexer has | |
1219 //! been set then this is ignored and the lexer defines the fill-up | |
1220 //! characters. The default is that no fill-up characters are set. | |
1221 //! | |
1222 //! \sa autoCompletionFillupsEnabled(), setAutoCompletionFillupsEnabled() | |
1223 void setAutoCompletionFillups(const char *fillups); | |
1224 | |
1225 //! A word separator is a sequence of characters that, when entered, causes | |
1226 //! the auto-completion list to be displayed. If a language lexer has been | |
1227 //! set then this is ignored and the lexer defines the word separators. | |
1228 //! The default is that no word separators are set. | |
1229 //! | |
1230 //! \sa setAutoCompletionThreshold() | |
1231 void setAutoCompletionWordSeparators(const QStringList &separators); | |
1232 | |
1233 //! Set the background colour of call tips to \a col. The default is | |
1234 //! white. | |
1235 void setCallTipsBackgroundColor(const QColor &col); | |
1236 | |
1237 //! Set the foreground colour of call tips to \a col. The default is | |
1238 //! mid-gray. | |
1239 void setCallTipsForegroundColor(const QColor &col); | |
1240 | |
1241 //! Set the highlighted colour of call tip text to \a col. The default is | |
1242 //! dark blue. | |
1243 void setCallTipsHighlightColor(const QColor &col); | |
1244 | |
1245 //! Set the current call tip position. The default is CallTipsBelowText. | |
1246 //! | |
1247 //! \sa callTipsPosition() | |
1248 void setCallTipsPosition(CallTipsPosition position); | |
1249 | |
1250 //! Set the current call tip style. The default is CallTipsNoContext. | |
1251 //! | |
1252 //! \sa callTipsStyle() | |
1253 void setCallTipsStyle(CallTipsStyle style); | |
1254 | |
1255 //! Set the maximum number of call tips that are displayed to \a nr. If | |
1256 //! the maximum number is 0 then all applicable call tips are displayed. | |
1257 //! If the maximum number is -1 then one call tip will be displayed with up | |
1258 //! and down arrows that allow the use to scroll through the full list. | |
1259 //! The default is -1. | |
1260 //! | |
1261 //! \sa callTipsVisible() | |
1262 void setCallTipsVisible(int nr); | |
1263 | |
1264 //! Sets each line in the \a folds list of line numbers to be a contracted | |
1265 //! fold. This is typically used to restore the fold state of a document. | |
1266 //! | |
1267 //! \sa contractedFolds() | |
1268 void setContractedFolds(const QList<int> &folds); | |
1269 | |
1270 //! Attach the document \a document, replacing the currently attached | |
1271 //! document. | |
1272 //! | |
1273 //! \sa document() | |
1274 void setDocument(const QsciDocument &document); | |
1275 | |
1276 //! Add \a colnr to the columns which are displayed with a vertical line. | |
1277 //! The edge mode must be set to EdgeMultipleLines. | |
1278 //! | |
1279 //! \sa clearEdgeColumns() | |
1280 void addEdgeColumn(int colnr, const QColor &col); | |
1281 | |
1282 //! Remove any columns added by previous calls to addEdgeColumn(). | |
1283 //! | |
1284 //! \sa addEdgeColumn() | |
1285 void clearEdgeColumns(); | |
1286 | |
1287 //! Set the color of the marker used to show that a line has exceeded the | |
1288 //! length set by setEdgeColumn(). | |
1289 //! | |
1290 //! \sa edgeColor(), \sa setEdgeColumn | |
1291 void setEdgeColor(const QColor &col); | |
1292 | |
1293 //! Set the number of the column after which lines are considered to be | |
1294 //! long. | |
1295 //! | |
1296 //! \sa edgeColumn() | |
1297 void setEdgeColumn(int colnr); | |
1298 | |
1299 //! Set the edge mode which determines how long lines are marked. | |
1300 //! | |
1301 //! \sa edgeMode() | |
1302 void setEdgeMode(EdgeMode mode); | |
1303 | |
1304 //! Set the number of the first visible line to \a linenr. | |
1305 //! | |
1306 //! \sa firstVisibleLine() | |
1307 void setFirstVisibleLine(int linenr); | |
1308 | |
1309 //! Enables or disables, according to \a under, if the indicator | |
1310 //! \a indicatorNumber is drawn under or over the text (i.e. in the | |
1311 //! background or foreground). If \a indicatorNumber is -1 then the state | |
1312 //! of all indicators is set. | |
1313 //! | |
1314 //! \sa indicatorDrawUnder() | |
1315 void setIndicatorDrawUnder(bool under, int indicatorNumber = -1); | |
1316 | |
1317 //! Set the foreground colour of indicator \a indicatorNumber to \a col. | |
1318 //! If \a indicatorNumber is -1 then the colour of all indicators is set. | |
1319 void setIndicatorForegroundColor(const QColor &col, int indicatorNumber = -1); | |
1320 | |
1321 //! Set the foreground colour of indicator \a indicatorNumber to \a col | |
1322 //! when the mouse is over it or the caret moved into it. If | |
1323 //! \a indicatorNumber is -1 then the colour of all indicators is set. | |
1324 void setIndicatorHoverForegroundColor(const QColor &col, int indicatorNumber = -1); | |
1325 | |
1326 //! Set the style of indicator \a indicatorNumber to \a style when the | |
1327 //! mouse is over it or the caret moved into it. If \a indicatorNumber is | |
1328 //! -1 then the style of all indicators is set. | |
1329 void setIndicatorHoverStyle(IndicatorStyle style, int indicatorNumber = -1); | |
1330 | |
1331 //! Set the outline colour of indicator \a indicatorNumber to \a col. | |
1332 //! If \a indicatorNumber is -1 then the colour of all indicators is set. | |
1333 //! At the moment only the alpha value of the colour has any affect. | |
1334 void setIndicatorOutlineColor(const QColor &col, int indicatorNumber = -1); | |
1335 | |
1336 //! Sets the background color of margin \a margin to \a col. | |
1337 //! | |
1338 //! \sa marginBackgroundColor() | |
1339 void setMarginBackgroundColor(int margin, const QColor &col); | |
1340 | |
1341 //! Set the margin options to \a options. | |
1342 //! | |
1343 //! \sa marginOptions(), MoNone, MoSublineSelect. | |
1344 void setMarginOptions(int options); | |
1345 | |
1346 //! Set the margin text of line \a line with the text \a text using the | |
1347 //! style number \a style. | |
1348 void setMarginText(int line, const QString &text, int style); | |
1349 | |
1350 //! Set the margin text of line \a line with the text \a text using the | |
1351 //! style \a style. | |
1352 void setMarginText(int line, const QString &text, const QsciStyle &style); | |
1353 | |
1354 //! Set the margin text of line \a line with the styled text \a text. | |
1355 void setMarginText(int line, const QsciStyledText &text); | |
1356 | |
1357 //! Set the margin text of line \a line with the list of styled text \a | |
1358 //! text. | |
1359 void setMarginText(int line, const QList<QsciStyledText> &text); | |
1360 | |
1361 //! Set the type of margin \a margin to type \a type. | |
1362 //! | |
1363 //! \sa marginType(), SCI_SETMARGINTYPEN | |
1364 void setMarginType(int margin, MarginType type); | |
1365 | |
1366 //! The margin text on line \a line is removed. If \a line is negative | |
1367 //! then all margin text is removed. | |
1368 void clearMarginText(int line = -1); | |
1369 | |
1370 //! Set the number of margins to \a margins. | |
1371 //! | |
1372 //! \sa margins() | |
1373 void setMargins(int margins); | |
1374 | |
1375 //! Set the background colour, including the alpha component, of marker | |
1376 //! \a markerNumber to \a col. If \a markerNumber is -1 then the colour of | |
1377 //! all markers is set. The default is white. | |
1378 //! | |
1379 //! \sa setMarkerForegroundColor() | |
1380 void setMarkerBackgroundColor(const QColor &col, int markerNumber = -1); | |
1381 | |
1382 //! Set the foreground colour of marker \a markerNumber to \a col. If | |
1383 //! \a markerNumber is -1 then the colour of all markers is set. The | |
1384 //! default is black. | |
1385 //! | |
1386 //! \sa setMarkerBackgroundColor() | |
1387 void setMarkerForegroundColor(const QColor &col, int markerNumber = -1); | |
1388 | |
1389 //! Set the background colour used to display matched braces to \a col. It | |
1390 //! is ignored if an indicator is being used. The default is white. | |
1391 //! | |
1392 //! \sa setMatchedBraceForegroundColor(), setMatchedBraceIndicator() | |
1393 void setMatchedBraceBackgroundColor(const QColor &col); | |
1394 | |
1395 //! Set the foreground colour used to display matched braces to \a col. It | |
1396 //! is ignored if an indicator is being used. The default is red. | |
1397 //! | |
1398 //! \sa setMatchedBraceBackgroundColor(), setMatchedBraceIndicator() | |
1399 void setMatchedBraceForegroundColor(const QColor &col); | |
1400 | |
1401 //! Set the indicator used to display matched braces to \a indicatorNumber. | |
1402 //! The default is not to use an indicator. | |
1403 //! | |
1404 //! \sa resetMatchedBraceIndicator(), setMatchedBraceBackgroundColor() | |
1405 void setMatchedBraceIndicator(int indicatorNumber); | |
1406 | |
1407 //! Stop using an indicator to display matched braces. | |
1408 //! | |
1409 //! \sa setMatchedBraceIndicator() | |
1410 void resetMatchedBraceIndicator(); | |
1411 | |
1412 //! For performance, QScintilla does not measure the display width of the | |
1413 //! document to determine the properties of the horizontal scroll bar. | |
1414 //! Instead, an assumed width is used. This sets the document width in | |
1415 //! pixels assumed by QScintilla to \a pixelWidth. The default value is | |
1416 //! 2000. | |
1417 //! | |
1418 //! \sa scrollWidth(), setScrollWidthTracking() | |
1419 void setScrollWidth(int pixelWidth); | |
1420 | |
1421 //! If scroll width tracking is enabled then the scroll width is adjusted | |
1422 //! to ensure that all of the lines currently displayed can be completely | |
1423 //! scrolled. This mode never adjusts the scroll width to be narrower. | |
1424 //! This sets the scroll width tracking to \a enabled. | |
1425 //! | |
1426 //! \sa setScrollWidth(), scrollWidthTracking() | |
1427 void setScrollWidthTracking(bool enabled); | |
1428 | |
1429 //! Sets the mode used to draw tab characters when whitespace is visible to | |
1430 //! \a mode. The default is to use an arrow. | |
1431 //! | |
1432 //! \sa tabDrawMode() | |
1433 void setTabDrawMode(TabDrawMode mode); | |
1434 | |
1435 //! Set the background colour used to display unmatched braces to \a col. | |
1436 //! It is ignored if an indicator is being used. The default is white. | |
1437 //! | |
1438 //! \sa setUnmatchedBraceForegroundColor(), setUnmatchedBraceIndicator() | |
1439 void setUnmatchedBraceBackgroundColor(const QColor &col); | |
1440 | |
1441 //! Set the foreground colour used to display unmatched braces to \a col. | |
1442 //! It is ignored if an indicator is being used. The default is blue. | |
1443 //! | |
1444 //! \sa setUnmatchedBraceBackgroundColor(), setUnmatchedBraceIndicator() | |
1445 void setUnmatchedBraceForegroundColor(const QColor &col); | |
1446 | |
1447 //! Set the indicator used to display unmatched braces to | |
1448 //! \a indicatorNumber. The default is not to use an indicator. | |
1449 //! | |
1450 //! \sa resetUnmatchedBraceIndicator(), setUnmatchedBraceBackgroundColor() | |
1451 void setUnmatchedBraceIndicator(int indicatorNumber); | |
1452 | |
1453 //! Stop using an indicator to display unmatched braces. | |
1454 //! | |
1455 //! \sa setUnmatchedBraceIndicator() | |
1456 void resetUnmatchedBraceIndicator(); | |
1457 | |
1458 //! Set the visual flags displayed when a line is wrapped. \a endFlag | |
1459 //! determines if and where the flag at the end of a line is displayed. | |
1460 //! \a startFlag determines if and where the flag at the start of a line is | |
1461 //! displayed. \a indent is the number of characters a wrapped line is | |
1462 //! indented by. By default no visual flags are displayed. | |
1463 void setWrapVisualFlags(WrapVisualFlag endFlag, | |
1464 WrapVisualFlag startFlag = WrapFlagNone, int indent = 0); | |
1465 | |
1466 //! Returns the selected text or an empty string if there is no currently | |
1467 //! selected text. | |
1468 //! | |
1469 //! \sa hasSelectedText() | |
1470 QString selectedText() const; | |
1471 | |
1472 //! Returns whether or not the selection is drawn up to the right hand | |
1473 //! border. | |
1474 //! | |
1475 //! \sa setSelectionToEol() | |
1476 bool selectionToEol() const; | |
1477 | |
1478 //! Sets the background colour of an active hotspot area to \a col. | |
1479 //! | |
1480 //! \sa resetHotspotBackgroundColor(), setHotspotForegroundColor() | |
1481 void setHotspotBackgroundColor(const QColor &col); | |
1482 | |
1483 //! Sets the foreground colour of an active hotspot area to \a col. | |
1484 //! | |
1485 //! \sa resetHotspotForegroundColor(), setHotspotBackgroundColor() | |
1486 void setHotspotForegroundColor(const QColor &col); | |
1487 | |
1488 //! Enables or disables, according to \a enable, the underlining of an | |
1489 //! active hotspot area. The default is false. | |
1490 void setHotspotUnderline(bool enable); | |
1491 | |
1492 //! Enables or disables, according to \a enable, the wrapping of a hotspot | |
1493 //! area to following lines. The default is true. | |
1494 void setHotspotWrap(bool enable); | |
1495 | |
1496 //! Sets whether or not the selection is drawn up to the right hand border. | |
1497 //! \a filled is set if the selection is drawn to the border. | |
1498 //! | |
1499 //! \sa selectionToEol() | |
1500 void setSelectionToEol(bool filled); | |
1501 | |
1502 //! Sets the extra space added to the height of a line above the baseline | |
1503 //! of the text to \a extra. | |
1504 //! | |
1505 //! \sa extraAscent(), setExtraDescent() | |
1506 void setExtraAscent(int extra); | |
1507 | |
1508 //! Sets the extra space added to the height of a line below the baseline | |
1509 //! of the text to \a extra. | |
1510 //! | |
1511 //! \sa extraDescent(), setExtraAscent() | |
1512 void setExtraDescent(int extra); | |
1513 | |
1514 //! Text entered by the user will overwrite existing text if \a overwrite | |
1515 //! is true. | |
1516 //! | |
1517 //! \sa overwriteMode() | |
1518 void setOverwriteMode(bool overwrite); | |
1519 | |
1520 //! Sets the background colour of visible whitespace to \a col. If \a col | |
1521 //! is an invalid color (the default) then the color specified by the | |
1522 //! current lexer is used. | |
1523 void setWhitespaceBackgroundColor(const QColor &col); | |
1524 | |
1525 //! Sets the foreground colour of visible whitespace to \a col. If \a col | |
1526 //! is an invalid color (the default) then the color specified by the | |
1527 //! current lexer is used. | |
1528 void setWhitespaceForegroundColor(const QColor &col); | |
1529 | |
1530 //! Sets the size of the dots used to represent visible whitespace. | |
1531 //! | |
1532 //! \sa whitespaceSize() | |
1533 void setWhitespaceSize(int size); | |
1534 | |
1535 //! Sets the line wrap indentation mode to \a mode. The default is | |
1536 //! WrapIndentFixed. | |
1537 //! | |
1538 //! \sa wrapIndentMode() | |
1539 void setWrapIndentMode(WrapIndentMode mode); | |
1540 | |
1541 //! Displays a user defined list which can be interacted with like an | |
1542 //! auto-completion list. \a id is an identifier for the list which is | |
1543 //! passed as an argument to the userListActivated() signal and must be at | |
1544 //! least 1. \a list is the text with which the list is populated. | |
1545 //! | |
1546 //! \sa cancelList(), isListActive(), userListActivated() | |
1547 void showUserList(int id, const QStringList &list); | |
1548 | |
1549 //! The standard command set is returned. | |
1550 QsciCommandSet *standardCommands() const {return stdCmds;} | |
1551 | |
1552 //! Returns the mode used to draw tab characters when whitespace is | |
1553 //! visible. | |
1554 //! | |
1555 //! \sa setTabDrawMode() | |
1556 TabDrawMode tabDrawMode() const; | |
1557 | |
1558 //! Returns true if the tab key indents a line instead of inserting a tab | |
1559 //! character. The default is true. | |
1560 //! | |
1561 //! \sa setTabIndents(), backspaceUnindents(), setBackspaceUnindents() | |
1562 bool tabIndents() const; | |
1563 | |
1564 //! Returns the tab width in characters. The default is 8. | |
1565 //! | |
1566 //! \sa setTabWidth() | |
1567 int tabWidth() const; | |
1568 | |
1569 //! Returns the text of the current document. | |
1570 //! | |
1571 //! \sa setText() | |
1572 QString text() const; | |
1573 | |
1574 //! \overload | |
1575 //! | |
1576 //! Returns the text of line \a line. | |
1577 //! | |
1578 //! \sa setText() | |
1579 QString text(int line) const; | |
1580 | |
1581 //! \overload | |
1582 //! | |
1583 //! Returns the text between positions \a start and \a end. This is | |
1584 //! typically used by QsciLexerCustom::styleText(). | |
1585 //! | |
1586 //! \sa bytes(), setText() | |
1587 QString text(int start, int end) const; | |
1588 | |
1589 //! Returns the height in pixels of the text in line number \a linenr. | |
1590 int textHeight(int linenr) const; | |
1591 | |
1592 //! Returns the size of the dots used to represent visible whitespace. | |
1593 //! | |
1594 //! \sa setWhitespaceSize() | |
1595 int whitespaceSize() const; | |
1596 | |
1597 //! Returns the visibility of whitespace. | |
1598 //! | |
1599 //! \sa setWhitespaceVisibility() | |
1600 WhitespaceVisibility whitespaceVisibility() const; | |
1601 | |
1602 //! Returns the word at the \a line line number and \a index character | |
1603 //! index. | |
1604 QString wordAtLineIndex(int line, int index) const; | |
1605 | |
1606 //! Returns the word at the \a point pixel coordinates. | |
1607 QString wordAtPoint(const QPoint &point) const; | |
1608 | |
1609 //! Returns the set of valid word character as defined by the current | |
1610 //! language lexer. If there is no current lexer then the set contains an | |
1611 //! an underscore, numbers and all upper and lower case alphabetic | |
1612 //! characters. | |
1613 //! | |
1614 //! \sa isWordCharacter() | |
1615 const char *wordCharacters() const; | |
1616 | |
1617 //! Returns the line wrap mode. | |
1618 //! | |
1619 //! \sa setWrapMode() | |
1620 WrapMode wrapMode() const; | |
1621 | |
1622 //! Returns the line wrap indentation mode. | |
1623 //! | |
1624 //! \sa setWrapIndentMode() | |
1625 WrapIndentMode wrapIndentMode() const; | |
1626 | |
1627 //! Writes the current document to the \a io device and returns true if | |
1628 //! there was no error. | |
1629 //! | |
1630 //! \sa read() | |
1631 bool write(QIODevice *io) const; | |
1632 | |
1633 public slots: | |
1634 //! Appends the text \a text to the end of the text edit. Note that the | |
1635 //! undo/redo history is cleared by this function. | |
1636 virtual void append(const QString &text); | |
1637 | |
1638 //! Display an auto-completion list based on any installed APIs, the | |
1639 //! current contents of the document and the characters immediately to the | |
1640 //! left of the cursor. | |
1641 //! | |
1642 //! \sa autoCompleteFromAPIs(), autoCompleteFromDocument() | |
1643 virtual void autoCompleteFromAll(); | |
1644 | |
1645 //! Display an auto-completion list based on any installed APIs and the | |
1646 //! characters immediately to the left of the cursor. | |
1647 //! | |
1648 //! \sa autoCompleteFromAll(), autoCompleteFromDocument(), | |
1649 //! setAutoCompletionAPIs() | |
1650 virtual void autoCompleteFromAPIs(); | |
1651 | |
1652 //! Display an auto-completion list based on the current contents of the | |
1653 //! document and the characters immediately to the left of the cursor. | |
1654 //! | |
1655 //! \sa autoCompleteFromAll(), autoCompleteFromAPIs() | |
1656 virtual void autoCompleteFromDocument(); | |
1657 | |
1658 //! Display a call tip based on the the characters immediately to the left | |
1659 //! of the cursor. | |
1660 virtual void callTip(); | |
1661 | |
1662 //! Deletes all the text in the text edit. | |
1663 virtual void clear(); | |
1664 | |
1665 //! Copies any selected text to the clipboard. | |
1666 //! | |
1667 //! \sa copyAvailable(), cut(), paste() | |
1668 virtual void copy(); | |
1669 | |
1670 //! Copies any selected text to the clipboard and then deletes the text. | |
1671 //! | |
1672 //! \sa copy(), paste() | |
1673 virtual void cut(); | |
1674 | |
1675 //! Ensures that the cursor is visible. | |
1676 virtual void ensureCursorVisible(); | |
1677 | |
1678 //! Ensures that the line number \a line is visible. | |
1679 virtual void ensureLineVisible(int line); | |
1680 | |
1681 //! If any lines are currently folded then they are all unfolded. | |
1682 //! Otherwise all lines are folded. This has the same effect as clicking | |
1683 //! in the fold margin with the shift and control keys pressed. If | |
1684 //! \a children is not set (the default) then only the top level fold | |
1685 //! points are affected, otherwise the state of all fold points are | |
1686 //! changed. | |
1687 virtual void foldAll(bool children = false); | |
1688 | |
1689 //! If the line \a line is folded then it is unfolded. Otherwise it is | |
1690 //! folded. This has the same effect as clicking in the fold margin. | |
1691 virtual void foldLine(int line); | |
1692 | |
1693 //! Increases the indentation of line \a line by an indentation width. | |
1694 //! | |
1695 //! \sa unindent() | |
1696 virtual void indent(int line); | |
1697 | |
1698 //! Insert the text \a text at the current position. | |
1699 virtual void insert(const QString &text); | |
1700 | |
1701 //! Insert the text \a text in the line \a line at the position | |
1702 //! \a index. | |
1703 virtual void insertAt(const QString &text, int line, int index); | |
1704 | |
1705 //! If the cursor is either side of a brace character then move it to the | |
1706 //! position of the corresponding brace. | |
1707 virtual void moveToMatchingBrace(); | |
1708 | |
1709 //! Pastes any text from the clipboard into the text edit at the current | |
1710 //! cursor position. | |
1711 //! | |
1712 //! \sa copy(), cut() | |
1713 virtual void paste(); | |
1714 | |
1715 //! Redo the last change or sequence of changes. | |
1716 //! | |
1717 //! \sa isRedoAvailable() | |
1718 virtual void redo(); | |
1719 | |
1720 //! Removes any selected text. | |
1721 //! | |
1722 //! \sa replaceSelectedText() | |
1723 virtual void removeSelectedText(); | |
1724 | |
1725 //! Replaces any selected text with \a text. | |
1726 //! | |
1727 //! \sa removeSelectedText() | |
1728 virtual void replaceSelectedText(const QString &text); | |
1729 | |
1730 //! Resets the background colour of selected text to the default. | |
1731 //! | |
1732 //! \sa setSelectionBackgroundColor(), resetSelectionForegroundColor() | |
1733 virtual void resetSelectionBackgroundColor(); | |
1734 | |
1735 //! Resets the foreground colour of selected text to the default. | |
1736 //! | |
1737 //! \sa setSelectionForegroundColor(), resetSelectionBackgroundColor() | |
1738 virtual void resetSelectionForegroundColor(); | |
1739 | |
1740 //! If \a select is true (the default) then all the text is selected. If | |
1741 //! \a select is false then any currently selected text is deselected. | |
1742 virtual void selectAll(bool select = true); | |
1743 | |
1744 //! If the cursor is either side of a brace character then move it to the | |
1745 //! position of the corresponding brace and select the text between the | |
1746 //! braces. | |
1747 virtual void selectToMatchingBrace(); | |
1748 | |
1749 //! If \a cs is true then auto-completion lists are case sensitive. The | |
1750 //! default is true. Note that setting a lexer may change the case | |
1751 //! sensitivity. | |
1752 //! | |
1753 //! \sa autoCompletionCaseSensitivity() | |
1754 virtual void setAutoCompletionCaseSensitivity(bool cs); | |
1755 | |
1756 //! If \a replace is true then when an item from an auto-completion list is | |
1757 //! selected, the rest of the word to the right of the current cursor is | |
1758 //! removed. The default is false. | |
1759 //! | |
1760 //! \sa autoCompletionReplaceWord() | |
1761 virtual void setAutoCompletionReplaceWord(bool replace); | |
1762 | |
1763 //! If \a single is true then when there is only a single entry in an | |
1764 //! auto-completion list it is automatically used and the list is not | |
1765 //! displayed. This only has an effect when auto-completion is explicitly | |
1766 //! requested (using autoCompleteFromAPIs() and autoCompleteFromDocument()) | |
1767 //! and has no effect when auto-completion is triggered as the user types. | |
1768 //! The default is false. Note that this is deprecated and | |
1769 //! setAutoCompletionUseSingle() should be used instead. | |
1770 //! | |
1771 //! \sa autoCompletionShowSingle() | |
1772 virtual void setAutoCompletionShowSingle(bool single); | |
1773 | |
1774 //! Sets the source for the auto-completion list when it is being displayed | |
1775 //! automatically as the user types to \a source. The default is AcsNone, | |
1776 //! ie. it is disabled. | |
1777 //! | |
1778 //! \sa autoCompletionSource() | |
1779 virtual void setAutoCompletionSource(AutoCompletionSource source); | |
1780 | |
1781 //! Sets the threshold for the automatic display of the auto-completion | |
1782 //! list as the user types to \a thresh. The threshold is the number of | |
1783 //! characters that the user must type before the list is displayed. If | |
1784 //! the threshold is less than or equal to 0 then the list is disabled. | |
1785 //! The default is -1. | |
1786 //! | |
1787 //! \sa autoCompletionThreshold(), setAutoCompletionWordSeparators() | |
1788 virtual void setAutoCompletionThreshold(int thresh); | |
1789 | |
1790 //! Sets the behavior of the auto-completion list when it has a single | |
1791 //! entry. The default is AcusNever. | |
1792 //! | |
1793 //! \sa autoCompletionUseSingle() | |
1794 virtual void setAutoCompletionUseSingle(AutoCompletionUseSingle single); | |
1795 | |
1796 //! If \a autoindent is true then auto-indentation is enabled. The default | |
1797 //! is false. | |
1798 //! | |
1799 //! \sa autoIndent() | |
1800 virtual void setAutoIndent(bool autoindent); | |
1801 | |
1802 //! Sets the brace matching mode to \a bm. The default is NoBraceMatching. | |
1803 //! | |
1804 //! \sa braceMatching() | |
1805 virtual void setBraceMatching(BraceMatch bm); | |
1806 | |
1807 //! If \a deindent is true then the backspace key will unindent a line | |
1808 //! rather then delete a character. | |
1809 //! | |
1810 //! \sa backspaceUnindents(), tabIndents(), setTabIndents() | |
1811 virtual void setBackspaceUnindents(bool unindent); | |
1812 | |
1813 //! Sets the foreground colour of the caret to \a col. | |
1814 virtual void setCaretForegroundColor(const QColor &col); | |
1815 | |
1816 //! Sets the background colour, including the alpha component, of the line | |
1817 //! containing the caret to \a col. | |
1818 //! | |
1819 //! \sa setCaretLineVisible() | |
1820 virtual void setCaretLineBackgroundColor(const QColor &col); | |
1821 | |
1822 //! Sets the width of the frame of the line containing the caret to \a | |
1823 //! width. | |
1824 virtual void setCaretLineFrameWidth(int width); | |
1825 | |
1826 //! Enables or disables, according to \a enable, the background color of | |
1827 //! the line containing the caret. | |
1828 //! | |
1829 //! \sa setCaretLineBackgroundColor() | |
1830 virtual void setCaretLineVisible(bool enable); | |
1831 | |
1832 //! Sets the width of the caret to \a width pixels. A \a width of 0 makes | |
1833 //! the caret invisible. | |
1834 virtual void setCaretWidth(int width); | |
1835 | |
1836 //! The widget's text (ie. foreground) colour is set to \a c. This has no | |
1837 //! effect if a language lexer has been set. | |
1838 //! | |
1839 //! \sa color() | |
1840 virtual void setColor(const QColor &c); | |
1841 | |
1842 //! Sets the cursor to the line \a line at the position \a index. | |
1843 //! | |
1844 //! \sa getCursorPosition() | |
1845 virtual void setCursorPosition(int line, int index); | |
1846 | |
1847 //! Sets the end-of-line mode to \a mode. The default is the platform's | |
1848 //! natural mode. | |
1849 //! | |
1850 //! \sa eolMode() | |
1851 virtual void setEolMode(EolMode mode); | |
1852 | |
1853 //! If \a visible is true then end-of-lines are made visible. The default | |
1854 //! is that they are invisible. | |
1855 //! | |
1856 //! \sa eolVisibility() | |
1857 virtual void setEolVisibility(bool visible); | |
1858 | |
1859 //! Sets the folding style for margin \a margin to \a fold. The default | |
1860 //! style is NoFoldStyle (ie. folding is disabled) and the default margin | |
1861 //! is 2. | |
1862 //! | |
1863 //! \sa folding() | |
1864 virtual void setFolding(FoldStyle fold, int margin = 2); | |
1865 | |
1866 //! Sets the indentation of line \a line to \a indentation characters. | |
1867 //! | |
1868 //! \sa indentation() | |
1869 virtual void setIndentation(int line, int indentation); | |
1870 | |
1871 //! Enables or disables, according to \a enable, this display of | |
1872 //! indentation guides. | |
1873 //! | |
1874 //! \sa indentationGuides() | |
1875 virtual void setIndentationGuides(bool enable); | |
1876 | |
1877 //! Set the background colour of indentation guides to \a col. | |
1878 //! | |
1879 //! \sa setIndentationGuidesForegroundColor() | |
1880 virtual void setIndentationGuidesBackgroundColor(const QColor &col); | |
1881 | |
1882 //! Set the foreground colour of indentation guides to \a col. | |
1883 //! | |
1884 //! \sa setIndentationGuidesBackgroundColor() | |
1885 virtual void setIndentationGuidesForegroundColor(const QColor &col); | |
1886 | |
1887 //! If \a tabs is true then indentations are created using tabs and spaces, | |
1888 //! rather than just spaces. | |
1889 //! | |
1890 //! \sa indentationsUseTabs() | |
1891 virtual void setIndentationsUseTabs(bool tabs); | |
1892 | |
1893 //! Sets the indentation width to \a width characters. If \a width is 0 | |
1894 //! then the value returned by tabWidth() is used. | |
1895 //! | |
1896 //! \sa indentationWidth(), tabWidth() | |
1897 virtual void setIndentationWidth(int width); | |
1898 | |
1899 //! Sets the specific language lexer used to style text to \a lex. If | |
1900 //! \a lex is 0 then syntax styling is disabled. | |
1901 //! | |
1902 //! \sa lexer() | |
1903 virtual void setLexer(QsciLexer *lexer = 0); | |
1904 | |
1905 //! Set the background colour of all margins to \a col. The default is a | |
1906 //! gray. | |
1907 //! | |
1908 //! \sa setMarginsForegroundColor() | |
1909 virtual void setMarginsBackgroundColor(const QColor &col); | |
1910 | |
1911 //! Set the font used in all margins to \a f. | |
1912 virtual void setMarginsFont(const QFont &f); | |
1913 | |
1914 //! Set the foreground colour of all margins to \a col. The default is | |
1915 //! black. | |
1916 //! | |
1917 //! \sa setMarginsBackgroundColor() | |
1918 virtual void setMarginsForegroundColor(const QColor &col); | |
1919 | |
1920 //! Enables or disables, according to \a lnrs, the display of line numbers | |
1921 //! in margin \a margin. | |
1922 //! | |
1923 //! \sa marginLineNumbers(), setMarginType(), SCI_SETMARGINTYPEN | |
1924 virtual void setMarginLineNumbers(int margin, bool lnrs); | |
1925 | |
1926 //! Sets the marker mask of margin \a margin to \a mask. Only those | |
1927 //! markers whose bit is set in the mask are displayed in the margin. | |
1928 //! | |
1929 //! \sa marginMarkerMask(), QsciMarker, SCI_SETMARGINMASKN | |
1930 virtual void setMarginMarkerMask(int margin, int mask); | |
1931 | |
1932 //! Enables or disables, according to \a sens, the sensitivity of margin | |
1933 //! \a margin to mouse clicks. If the user clicks in a sensitive margin | |
1934 //! the marginClicked() signal is emitted. | |
1935 //! | |
1936 //! \sa marginSensitivity(), marginClicked(), SCI_SETMARGINSENSITIVEN | |
1937 virtual void setMarginSensitivity(int margin, bool sens); | |
1938 | |
1939 //! Sets the width of margin \a margin to \a width pixels. If the width of | |
1940 //! a margin is 0 then it is not displayed. | |
1941 //! | |
1942 //! \sa marginWidth(), SCI_SETMARGINWIDTHN | |
1943 virtual void setMarginWidth(int margin, int width); | |
1944 | |
1945 //! Sets the width of margin \a margin so that it is wide enough to display | |
1946 //! \a s in the current margin font. | |
1947 //! | |
1948 //! \sa marginWidth(), SCI_SETMARGINWIDTHN | |
1949 virtual void setMarginWidth(int margin, const QString &s); | |
1950 | |
1951 //! Sets the modified state of the text edit to \a m. Note that it is only | |
1952 //! possible to clear the modified state (where \a m is false). Attempts | |
1953 //! to set the modified state (where \a m is true) are ignored. | |
1954 //! | |
1955 //! \sa isModified(), modificationChanged() | |
1956 virtual void setModified(bool m); | |
1957 | |
1958 //! The widget's paper (ie. background) colour is set to \a c. This has no | |
1959 //! effect if a language lexer has been set. | |
1960 //! | |
1961 //! \sa paper() | |
1962 virtual void setPaper(const QColor &c); | |
1963 | |
1964 //! Sets the read-only state of the text edit to \a ro. | |
1965 //! | |
1966 //! \sa isReadOnly() | |
1967 virtual void setReadOnly(bool ro); | |
1968 | |
1969 //! Sets the selection which starts at position \a indexFrom in line | |
1970 //! \a lineFrom and ends at position \a indexTo in line \a lineTo. The | |
1971 //! cursor is moved to position \a indexTo in \a lineTo. | |
1972 //! | |
1973 //! \sa getSelection() | |
1974 virtual void setSelection(int lineFrom, int indexFrom, int lineTo, | |
1975 int indexTo); | |
1976 | |
1977 //! Sets the background colour, including the alpha component, of selected | |
1978 //! text to \a col. | |
1979 //! | |
1980 //! \sa resetSelectionBackgroundColor(), setSelectionForegroundColor() | |
1981 virtual void setSelectionBackgroundColor(const QColor &col); | |
1982 | |
1983 //! Sets the foreground colour of selected text to \a col. | |
1984 //! | |
1985 //! \sa resetSelectionForegroundColor(), setSelectionBackgroundColor() | |
1986 virtual void setSelectionForegroundColor(const QColor &col); | |
1987 | |
1988 //! If \a indent is true then the tab key will indent a line rather than | |
1989 //! insert a tab character. | |
1990 //! | |
1991 //! \sa tabIndents(), backspaceUnindents(), setBackspaceUnindents() | |
1992 virtual void setTabIndents(bool indent); | |
1993 | |
1994 //! Sets the tab width to \a width characters. | |
1995 //! | |
1996 //! \sa tabWidth() | |
1997 virtual void setTabWidth(int width); | |
1998 | |
1999 //! Replaces all of the current text with \a text. Note that the | |
2000 //! undo/redo history is cleared by this function. | |
2001 //! | |
2002 //! \sa text() | |
2003 virtual void setText(const QString &text); | |
2004 | |
2005 //! Sets the current text encoding. If \a cp is true then UTF8 is used, | |
2006 //! otherwise Latin1 is used. | |
2007 //! | |
2008 //! \sa isUtf8() | |
2009 virtual void setUtf8(bool cp); | |
2010 | |
2011 //! Sets the visibility of whitespace to mode \a mode. The default is that | |
2012 //! whitespace is invisible. | |
2013 //! | |
2014 //! \sa whitespaceVisibility() | |
2015 virtual void setWhitespaceVisibility(WhitespaceVisibility mode); | |
2016 | |
2017 //! Sets the line wrap mode to \a mode. The default is that lines are not | |
2018 //! wrapped. | |
2019 //! | |
2020 //! \sa wrapMode() | |
2021 virtual void setWrapMode(WrapMode mode); | |
2022 | |
2023 //! Undo the last change or sequence of changes. | |
2024 //! | |
2025 //! Scintilla has multiple level undo and redo. It will continue to record | |
2026 //! undoable actions until memory runs out. Sequences of typing or | |
2027 //! deleting are compressed into single actions to make it easier to undo | |
2028 //! and redo at a sensible level of detail. Sequences of actions can be | |
2029 //! combined into actions that are undone as a unit. These sequences occur | |
2030 //! between calls to beginUndoAction() and endUndoAction(). These | |
2031 //! sequences can be nested and only the top level sequences are undone as | |
2032 //! units. | |
2033 //! | |
2034 //! \sa beginUndoAction(), endUndoAction(), isUndoAvailable() | |
2035 virtual void undo(); | |
2036 | |
2037 //! Decreases the indentation of line \a line by an indentation width. | |
2038 //! | |
2039 //! \sa indent() | |
2040 virtual void unindent(int line); | |
2041 | |
2042 //! Zooms in on the text by by making the base font size \a range points | |
2043 //! larger and recalculating all font sizes. | |
2044 //! | |
2045 //! \sa zoomOut(), zoomTo() | |
2046 virtual void zoomIn(int range); | |
2047 | |
2048 //! \overload | |
2049 //! | |
2050 //! Zooms in on the text by by making the base font size one point larger | |
2051 //! and recalculating all font sizes. | |
2052 virtual void zoomIn(); | |
2053 | |
2054 //! Zooms out on the text by by making the base font size \a range points | |
2055 //! smaller and recalculating all font sizes. | |
2056 //! | |
2057 //! \sa zoomIn(), zoomTo() | |
2058 virtual void zoomOut(int range); | |
2059 | |
2060 //! \overload | |
2061 //! | |
2062 //! Zooms out on the text by by making the base font size one point larger | |
2063 //! and recalculating all font sizes. | |
2064 virtual void zoomOut(); | |
2065 | |
2066 //! Zooms the text by making the base font size \a size points and | |
2067 //! recalculating all font sizes. | |
2068 //! | |
2069 //! \sa zoomIn(), zoomOut() | |
2070 virtual void zoomTo(int size); | |
2071 | |
2072 signals: | |
2073 //! This signal is emitted whenever the cursor position changes. \a line | |
2074 //! contains the line number and \a index contains the character index | |
2075 //! within the line. | |
2076 void cursorPositionChanged(int line, int index); | |
2077 | |
2078 //! This signal is emitted whenever text is selected or de-selected. | |
2079 //! \a yes is true if text has been selected and false if text has been | |
2080 //! deselected. If \a yes is true then copy() can be used to copy the | |
2081 //! selection to the clipboard. If \a yes is false then copy() does | |
2082 //! nothing. | |
2083 //! | |
2084 //! \sa copy(), selectionChanged() | |
2085 void copyAvailable(bool yes); | |
2086 | |
2087 //! This signal is emitted whenever the user clicks on an indicator. \a | |
2088 //! line is the number of the line where the user clicked. \a index is the | |
2089 //! character index within the line. \a state is the state of the modifier | |
2090 //! keys (Qt::ShiftModifier, Qt::ControlModifier, Qt::AltModifer and | |
2091 //! Qt::MetaModifier) when the user clicked. | |
2092 //! | |
2093 //! \sa indicatorReleased() | |
2094 void indicatorClicked(int line, int index, Qt::KeyboardModifiers state); | |
2095 | |
2096 //! This signal is emitted whenever the user releases the mouse on an | |
2097 //! indicator. \a line is the number of the line where the user clicked. | |
2098 //! \a index is the character index within the line. \a state is the state | |
2099 //! of the modifier keys (Qt::ShiftModifier, Qt::ControlModifier, | |
2100 //! Qt::AltModifer and Qt::MetaModifier) when the user released the mouse. | |
2101 //! | |
2102 //! \sa indicatorClicked() | |
2103 void indicatorReleased(int line, int index, Qt::KeyboardModifiers state); | |
2104 | |
2105 //! This signal is emitted whenever the number of lines of text changes. | |
2106 void linesChanged(); | |
2107 | |
2108 //! This signal is emitted whenever the user clicks on a sensitive margin. | |
2109 //! \a margin is the margin. \a line is the number of the line where the | |
2110 //! user clicked. \a state is the state of the modifier keys | |
2111 //! (Qt::ShiftModifier, Qt::ControlModifier, Qt::AltModifer and | |
2112 //! Qt::MetaModifier) when the user clicked. | |
2113 //! | |
2114 //! \sa marginSensitivity(), setMarginSensitivity() | |
2115 void marginClicked(int margin, int line, Qt::KeyboardModifiers state); | |
2116 | |
2117 //! This signal is emitted whenever the user right-clicks on a sensitive | |
2118 //! margin. \a margin is the margin. \a line is the number of the line | |
2119 //! where the user clicked. \a state is the state of the modifier keys | |
2120 //! (Qt::ShiftModifier, Qt::ControlModifier, Qt::AltModifer and | |
2121 //! Qt::MetaModifier) when the user clicked. | |
2122 //! | |
2123 //! \sa marginSensitivity(), setMarginSensitivity() | |
2124 void marginRightClicked(int margin, int line, Qt::KeyboardModifiers state); | |
2125 | |
2126 //! This signal is emitted whenever the user attempts to modify read-only | |
2127 //! text. | |
2128 //! | |
2129 //! \sa isReadOnly(), setReadOnly() | |
2130 void modificationAttempted(); | |
2131 | |
2132 //! This signal is emitted whenever the modification state of the text | |
2133 //! changes. \a m is true if the text has been modified. | |
2134 //! | |
2135 //! \sa isModified(), setModified() | |
2136 void modificationChanged(bool m); | |
2137 | |
2138 //! This signal is emitted whenever the selection changes. | |
2139 //! | |
2140 //! \sa copyAvailable() | |
2141 void selectionChanged(); | |
2142 | |
2143 //! This signal is emitted whenever the text in the text edit changes. | |
2144 void textChanged(); | |
2145 | |
2146 //! This signal is emitted when an item in a user defined list is activated | |
2147 //! (selected). \a id is the list identifier. \a string is the text of | |
2148 //! the item. | |
2149 //! | |
2150 //! \sa showUserList() | |
2151 void userListActivated(int id, const QString &string); | |
2152 | |
2153 protected: | |
2154 //! \reimp | |
2155 virtual bool event(QEvent *e); | |
2156 | |
2157 //! \reimp | |
2158 virtual void changeEvent(QEvent *e); | |
2159 | |
2160 //! \reimp | |
2161 virtual void contextMenuEvent(QContextMenuEvent *e); | |
2162 | |
2163 //! \reimp | |
2164 virtual void wheelEvent(QWheelEvent *e); | |
2165 | |
2166 private slots: | |
2167 void handleCallTipClick(int dir); | |
2168 void handleCharAdded(int charadded); | |
2169 void handleIndicatorClick(int pos, int modifiers); | |
2170 void handleIndicatorRelease(int pos, int modifiers); | |
2171 void handleMarginClick(int pos, int margin, int modifiers); | |
2172 void handleMarginRightClick(int pos, int margin, int modifiers); | |
2173 void handleModified(int pos, int mtype, const char *text, int len, | |
2174 int added, int line, int foldNow, int foldPrev, int token, | |
2175 int annotationLinesAdded); | |
2176 void handlePropertyChange(const char *prop, const char *val); | |
2177 void handleSavePointReached(); | |
2178 void handleSavePointLeft(); | |
2179 void handleSelectionChanged(bool yes); | |
2180 void handleAutoCompletionSelection(); | |
2181 void handleUserListSelection(const char *text, int id); | |
2182 | |
2183 void handleStyleColorChange(const QColor &c, int style); | |
2184 void handleStyleEolFillChange(bool eolfill, int style); | |
2185 void handleStyleFontChange(const QFont &f, int style); | |
2186 void handleStylePaperChange(const QColor &c, int style); | |
2187 | |
2188 void handleUpdateUI(int updated); | |
2189 | |
2190 void delete_selection(); | |
2191 | |
2192 private: | |
2193 void detachLexer(); | |
2194 | |
2195 enum IndentState { | |
2196 isNone, | |
2197 isKeywordStart, | |
2198 isBlockStart, | |
2199 isBlockEnd | |
2200 }; | |
2201 | |
2202 void maintainIndentation(char ch, long pos); | |
2203 void autoIndentation(char ch, long pos); | |
2204 void autoIndentLine(long pos, int line, int indent); | |
2205 int blockIndent(int line); | |
2206 IndentState getIndentState(int line); | |
2207 bool rangeIsWhitespace(long spos, long epos); | |
2208 int findStyledWord(const char *text, int style, const char *words); | |
2209 | |
2210 void checkMarker(int &markerNumber); | |
2211 void checkIndicator(int &indicatorNumber); | |
2212 static void allocateId(int &id, unsigned &allocated, int min, int max); | |
2213 int currentIndent() const; | |
2214 int indentWidth() const; | |
2215 bool doFind(); | |
2216 int simpleFind(); | |
2217 void foldClick(int lineClick, int bstate); | |
2218 void foldChanged(int line, int levelNow, int levelPrev); | |
2219 void foldExpand(int &line, bool doExpand, bool force = false, | |
2220 int visLevels = 0, int level = -1); | |
2221 void setFoldMarker(int marknr, int mark = SC_MARK_EMPTY); | |
2222 void setLexerStyle(int style); | |
2223 void setStylesFont(const QFont &f, int style); | |
2224 void setEnabledColors(int style, QColor &fore, QColor &back); | |
2225 | |
2226 void braceMatch(); | |
2227 long checkBrace(long pos, int brace_style, bool &colonMode); | |
2228 void gotoMatchingBrace(bool select); | |
2229 | |
2230 void startAutoCompletion(AutoCompletionSource acs, bool checkThresh, | |
2231 bool choose_single); | |
2232 | |
2233 int adjustedCallTipPosition(int ctshift) const; | |
2234 bool getSeparator(int &pos) const; | |
2235 QString getWord(int &pos) const; | |
2236 char getCharacter(int &pos) const; | |
2237 bool isStartChar(char ch) const; | |
2238 | |
2239 bool ensureRW(); | |
2240 void insertAtPos(const QString &text, int pos); | |
2241 static int mapModifiers(int modifiers); | |
2242 | |
2243 QString wordAtPosition(int position) const; | |
2244 | |
2245 ScintillaBytes styleText(const QList<QsciStyledText> &styled_text, | |
2246 char **styles, int style_offset = 0); | |
2247 | |
2248 struct FindState | |
2249 { | |
2250 enum Status | |
2251 { | |
2252 Finding, | |
2253 FindingInSelection, | |
2254 Idle | |
2255 }; | |
2256 | |
2257 FindState() : status(Idle) {} | |
2258 | |
2259 Status status; | |
2260 QString expr; | |
2261 bool wrap; | |
2262 bool forward; | |
2263 int flags; | |
2264 long startpos, startpos_orig; | |
2265 long endpos, endpos_orig; | |
2266 bool show; | |
2267 }; | |
2268 | |
2269 FindState findState; | |
2270 | |
2271 unsigned allocatedMarkers; | |
2272 unsigned allocatedIndicators; | |
2273 int oldPos; | |
2274 int ctPos; | |
2275 bool selText; | |
2276 FoldStyle fold; | |
2277 int foldmargin; | |
2278 bool autoInd; | |
2279 BraceMatch braceMode; | |
2280 AutoCompletionSource acSource; | |
2281 int acThresh; | |
2282 QStringList wseps; | |
2283 const char *wchars; | |
2284 CallTipsPosition call_tips_position; | |
2285 CallTipsStyle call_tips_style; | |
2286 int maxCallTips; | |
2287 QStringList ct_entries; | |
2288 int ct_cursor; | |
2289 QList<int> ct_shifts; | |
2290 AutoCompletionUseSingle use_single; | |
2291 QPointer<QsciLexer> lex; | |
2292 QsciCommandSet *stdCmds; | |
2293 QsciDocument doc; | |
2294 QColor nl_text_colour; | |
2295 QColor nl_paper_colour; | |
2296 QByteArray explicit_fillups; | |
2297 bool fillups_enabled; | |
2298 | |
2299 // The following allow QsciListBoxQt to distinguish between an | |
2300 // auto-completion list and a user list, and to return the full selection | |
2301 // of an auto-completion list. | |
2302 friend class QsciListBoxQt; | |
2303 | |
2304 QString acSelection; | |
2305 bool isAutoCompletionList() const; | |
2306 | |
2307 void set_shortcut(QAction *action, QsciCommand::Command cmd_id) const; | |
2308 | |
2309 QsciScintilla(const QsciScintilla &); | |
2310 QsciScintilla &operator=(const QsciScintilla &); | |
2311 }; | |
2312 | |
2313 #endif |