41 #include <qplaintextedit.h>
45 #include <qtextobject.h>
49 #include "textDecoration.h"
50 #include "syntaxHighlighter/syntaxHighlighterBase.h"
122 CodeEditor(QWidget *parent = NULL,
bool createDefaultActions =
true);
125 bool useSpacesInsteadOfTabs()
const;
126 void setUseSpacesInsteadOfTabs(
bool value);
128 bool selectLineOnCopyEmpty()
const;
129 void setSelectLineOnCopyEmpty(
bool value);
131 bool showContextMenu()
const;
132 void setShowContextMenu(
bool value);
134 bool showWhitespaces()
const;
135 void setShowWhitespaces(
bool value);
137 QString fontName()
const;
138 void setFontName(
const QString& value);
140 int fontSize()
const;
141 void setFontSize(
int fontSize);
143 int zoomLevel()
const;
144 void setZoomLevel(
int value);
146 int tabLength()
const;
147 void setTabLength(
int value);
149 QColor background()
const;
150 void setBackground(
const QColor &value);
152 QColor foreground()
const;
153 void setForeground(
const QColor &value);
155 QColor selectionForeground()
const;
156 void setSelectionForeground(
const QColor &value);
158 QColor selectionBackground()
const;
159 void setSelectionBackground(
const QColor &value);
161 QColor whitespacesForeground()
const;
162 void setWhitespacesForeground(
const QColor &value);
164 bool saveOnFocusOut()
const;
165 void setSaveOnFocusOut(
bool value);
170 int edgeColumn()
const;
171 void setEdgeColumn(
int column);
173 QColor edgeColor()
const;
174 void setEdgeColor(
const QColor &color);
176 bool showIndentationGuides()
const;
177 void setShowIndentationGuides(
bool value);
179 QColor indentationGuidesColor()
const;
180 void setIndentationGuidesColor(
const QColor &color);
182 QList<VisibleBlock> visibleBlocks()
const;
185 int firstVisibleLine()
const;
186 void setFirstVisibleLine(
int line);
188 bool isModified()
const;
189 void setModified(
bool modified);
191 QString wordSeparators()
const {
return m_wordSeparators; }
193 bool isUndoAvailable()
const {
return m_undoAvailable; }
194 bool isRedoAvailable()
const {
return m_redoAvailable; }
196 void setMouseCursor(
const QCursor &cursor);
198 void cursorPosition(
int &line,
int &column)
const;
200 void setViewportMargins(
int left,
int top,
int right,
int bottom);
202 PanelsManager* panels()
const;
203 TextDecorationsManager* decorations()
const;
204 ModesManager* modes()
const;
206 SyntaxHighlighterBase *syntaxHighlighter()
const;
208 int currentLineNumber()
const;
209 int currentColumnNumber()
const;
210 int lineNbrFromPosition(
int yPos)
const;
211 int lineCount()
const;
212 int lineLength(
int line)
const;
213 QTextCursor selectWholeLine(
int line = -1,
bool applySelection =
true);
214 QTextCursor selectLines(
int start = 0,
int end = -1,
bool applySelection =
true);
215 QPair<int,int> selectionRange()
const;
216 void getSelection(
int *lineFrom,
int *indexFrom,
int *lineTo,
int *indexTo);
217 void setSelection(
int lineFrom,
int indexFrom,
int lineTo,
int indexTo);
218 bool hasSelectedText()
const;
219 int linePosFromNumber(
int lineNumber)
const;
220 void lineIndexFromPosition(
const QPoint &pos,
int *line,
int *column)
const;
221 void lineIndexFromPosition(
int pos,
int *line,
int *column)
const;
222 void getCursorPosition(
int *line,
int *column)
const;
223 QTextCursor setCursorPosition(
int line,
int column,
bool applySelection =
true);
224 void unfoldCursorPosition();
225 void ensureLineVisible(
int line);
226 QTextCursor gotoLine(
int line,
int column,
bool move =
true);
228 void removeSelectedText();
230 bool findFirst(
const QString &expr,
bool re,
bool cs,
bool wo,
bool wrap, \
231 bool forward =
true,
int line = -1,
int index = -1,
bool show =
true);
233 void replace(
const QString &text);
235 void endUndoAction() { textCursor().endEditBlock(); }
236 void beginUndoAction() { textCursor().beginEditBlock(); }
238 QString selectedText()
const;
239 int length()
const {
return toPlainText().size(); }
240 int positionFromLineIndex(
int line,
int column)
const;
242 int lineIndent(
int lineNumber = -1)
const;
243 int lineIndent(
const QTextBlock *lineNbr)
const;
244 QString lineText(
int lineIdx)
const;
245 void markWholeDocDirty();
246 void callResizeEvent(QResizeEvent *evt) { resizeEvent(evt); }
248 virtual QString codeText(
int &,
int &)
const {
return toPlainText(); }
256 void resetStylesheet();
258 void rehighlightBlock(
int lineFromIdx,
int lineToIdx );
260 void showTooltip(
const QPoint &pos,
const QString &tooltip);
261 void showTooltip(
const QPoint &pos,
const QString &tooltip,
const TextDecoration::Ptr &senderDeco);
263 void setPlainText(
const QString &text,
const QString &mimeType =
"",
const QString &encoding =
"");
264 void insertAt(
const QString &text,
int line,
int index);
265 void append(
const QString &text);
267 bool isCommentOrString(
const QTextCursor &cursor,
const QList<StyleItem::StyleType> &formats = QList<StyleItem::StyleType>());
268 bool isCommentOrString(
const QTextBlock &block,
const QList<StyleItem::StyleType> &formats = QList<StyleItem::StyleType>());
269 bool isNumber(
const QTextCursor &cursor)
const;
270 bool isNumber(
const QTextBlock &block)
const;
272 QTextCursor wordUnderCursor(
bool selectWholeWord)
const;
273 QTextCursor wordUnderCursor(
const QTextCursor &cursor,
bool selectWholeWord)
const;
274 QString wordAtPosition(
int line,
int index,
bool selectWholeWord)
const;
275 QTextCursor wordUnderMouseCursor()
const;
277 TextBlockUserData* getTextBlockUserData(
int lineIndex,
bool createIfNotExist =
true);
278 TextBlockUserData* getTextBlockUserData(QTextBlock &block,
bool createIfNotExist =
true);
279 QSet<TextBlockUserData*>& textBlockUserDataList() {
return m_textBlockUserDataList; }
280 const QSet<TextBlockUserData*>& textBlockUserDataList()
const {
return m_textBlockUserDataList; }
281 const TextBlockUserData* getConstTextBlockUserData(
int lineIndex)
const;
283 virtual bool removeTextBlockUserData(TextBlockUserData* userData);
285 bool bookmarksAvailable()
const;
286 bool breakpointsAvailable()
const;
288 void callWheelEvent(QWheelEvent *e);
290 void reportPositionAsGoBackNavigationItem(
const QTextCursor &cursor,
const QString &reason)
const;
296 CursorPosition(
const QTextCursor &textCursor,
int UID = -1) : cursor(textCursor), editorUID(UID) {};
298 void invalidate() { cursor = QTextCursor(); editorUID = -1; }
306 QMenu *contextMenu()
const {
return m_pContextMenu; }
308 void showTooltipDelayJobRunner(QList<QVariant> args);
313 QString previousLineText()
const;
314 QString currentLineText()
const;
316 void setWhitespacesFlags(
bool show);
317 void updateTabStopAndIndentationWidth();
319 void updateVisibleBlocks();
321 void doHomeKey(QEvent *event = NULL,
bool select =
false);
323 QTextCursor moveCursorTo(
int line)
const;
325 virtual void reportGoBackNavigationCursorMovement(
const CursorPosition &cursor,
const QString &origin)
const;
327 virtual void contextMenuAboutToShow(
int contextMenuLine);
329 virtual void resizeEvent(QResizeEvent *e);
330 virtual void closeEvent(QCloseEvent *e);
331 virtual void keyPressEvent(QKeyEvent *e);
332 virtual void keyReleaseEvent(QKeyEvent *e);
333 virtual void mouseDoubleClickEvent(QMouseEvent *e);
334 virtual void mousePressEvent(QMouseEvent *e);
335 virtual void mouseReleaseEvent(QMouseEvent *e);
336 virtual void mouseMoveEvent(QMouseEvent* e);
337 virtual void showEvent(QShowEvent *e);
338 virtual void paintEvent(QPaintEvent *e);
339 virtual void wheelEvent(QWheelEvent *e);
340 virtual void contextMenuEvent(QContextMenuEvent *e);
342 virtual void focusInEvent(QFocusEvent *e);
343 virtual void focusOutEvent(QFocusEvent *e);
345 virtual bool eventFilter(QObject *obj, QEvent *e);
347 virtual bool keyPressInternalEvent(QKeyEvent *e) {
return true; };
365 int m_defaultFontSize;
366 bool m_useSpacesInsteadOfTabs;
367 QColor m_whitespacesForeground;
368 QColor m_selBackground;
369 QColor m_selForeground;
372 bool m_showWhitespaces;
376 QString m_fontFamily;
377 bool m_selectLineOnCopyEmpty;
378 QString m_wordSeparators;
379 QPoint m_lastMousePos;
380 int m_prevTooltipBlockNbr;
381 int m_indentationBarWidth;
382 int m_minLineJumpsForGoBackNavigationReport;
388 bool m_showIndentationGuides;
389 QColor m_indentationGuidesColor;
391 bool m_redoAvailable;
392 bool m_undoAvailable;
395 QList<VisibleBlock> m_visibleBlocks;
396 QSet<TextBlockUserData*> m_textBlockUserDataList;
398 QMenu *m_pContextMenu;
407 void emitDirtyChanged(
bool state);
408 void setUndoAvailable(
bool available);
409 void setRedoAvailable(
bool available);
412 void dirtyChanged(
bool state);
413 void painted(QPaintEvent *e);
414 void keyPressed(QKeyEvent *e);
415 void keyReleased(QKeyEvent *e);
416 void postKeyPressed(QKeyEvent *e);
417 void mouseDoubleClicked(QMouseEvent *e);
418 void mousePressed(QMouseEvent *e);
419 void mouseReleased(QMouseEvent *e);
420 void mouseMoved(QMouseEvent *e);
421 void mouseWheelActivated(QWheelEvent *e);
423 void focusedIn(QFocusEvent *e);
425 void indentRequested();
426 void unindentRequested();
428 void updateRequest();
430 void updateActions();
Definition: codeEditor.h:293
The background color of characters after the column limit is changed to the color set by setEdgeColor...
Definition: codeEditor.h:119
Definition: textBlockUserData.h:55
Definition: codeEditor.h:110
EdgeMode
Definition: codeEditor.h:115
Definition: syntaxHighlighterBase.h:59
Definition: apiFunctionsGraph.cpp:39
Definition: modesManager.h:55
Definition: textDecorationsManager.h:56
Definition: panelsManager.h:64
Definition: codeEditor.h:57
Definition: delayJobRunner.h:54
void newTextSet()
Signal emitted when a new text is set on the widget.
A vertical line is drawn at the column set by setEdgeColumn(). This is recommended for monospace font...
Definition: codeEditor.h:118
Definition: codeEditor.h:350
Long lines are not marked.
Definition: codeEditor.h:117