QGIS API Documentation 3.41.0-Master (af5edcb665c)
|
A text editor based on QScintilla2. More...
#include <qgscodeeditor.h>
Public Types | |
enum class | Flag : int { CodeFolding = 1 << 0 , ImmediatelyUpdateHistory = 1 << 1 } |
Flags controlling behavior of code editor. More... | |
typedef QFlags< Flag > | Flags |
Flags controlling behavior of code editor. | |
enum class | MarginRole : int { LineNumbers = 0 , ErrorIndicators = 1 , FoldingControls = 2 } |
Margin roles. More... | |
enum class | Mode { ScriptEditor , OutputDisplay , CommandInput } |
Code editor modes. More... | |
Public Slots | |
virtual bool | checkSyntax () |
Applies syntax checking to the editor. | |
void | clearPersistentHistory () |
Clears the entire persistent history of commands run in the editor. | |
void | clearSessionHistory () |
Clears the history of commands run in the current session. | |
virtual void | moveCursorToEnd () |
Moves the cursor to the end of the document and scrolls to ensure it is visible. | |
virtual void | moveCursorToStart () |
Moves the cursor to the start of the document and scrolls to ensure it is visible. | |
void | reformatCode () |
Applies code reformatting to the editor. | |
void | removeHistoryCommand (int index) |
Removes the command at the specified index from the history of the code editor. | |
void | runCommand (const QString &command, bool skipHistory=false) |
Runs a command in the editor. | |
void | showHistory () |
Shows the command history dialog. | |
void | showNextCommand () |
Shows the next command from the session in the editor. | |
void | showPreviousCommand () |
Shows the previous command from the session in the editor. | |
virtual void | toggleComment () |
Toggle comment for the selected text. | |
bool | writeHistoryFile () |
Stores the commands executed in the editor to the persistent history file. | |
Signals | |
void | helpRequested (const QString &word) |
Emitted when documentation was requested for the specified word. | |
void | persistentHistoryCleared () |
Emitted when the persistent history of commands run in the editor is cleared. | |
void | sessionHistoryCleared () |
Emitted when the history of commands run in the current session is cleared. | |
Public Member Functions | |
QgsCodeEditor (QWidget *parent=nullptr, const QString &title=QString(), bool folding=false, bool margin=false, QgsCodeEditor::Flags flags=QgsCodeEditor::Flags(), QgsCodeEditor::Mode mode=QgsCodeEditor::Mode::ScriptEditor) | |
Construct a new code editor. | |
void | addWarning (int lineNumber, const QString &warning) |
Adds a warning message and indicator to the specified a lineNumber. | |
virtual void | callTip () override |
void | clearWarnings () |
Clears all warning messages from the editor. | |
bool | foldingVisible () |
Returns true if the folding controls are visible in the editor. | |
QStringList | history () const |
Returns the list of commands previously executed in the editor. | |
void | insertText (const QString &text) |
Insert text at cursor position, or replace any selected text if user has made a selection. | |
QgsCodeInterpreter * | interpreter () const |
Returns the attached code interpreter, or nullptr if not set. | |
bool | isCursorOnLastLine () const |
Returns true if the cursor is on the last line of the document. | |
virtual Qgis::ScriptLanguage | language () const |
Returns the associated scripting language. | |
virtual Qgis::ScriptLanguageCapabilities | languageCapabilities () const |
Returns the associated scripting language capabilities. | |
int | linearPosition () const |
Convenience function to return the cursor position as a linear index. | |
bool | lineNumbersVisible () const |
Returns whether line numbers are visible in the editor. | |
Q_DECL_DEPRECATED bool | marginVisible () |
Returns whether margins are in a visible state. | |
QgsCodeEditor::Mode | mode () const |
Returns the code editor mode. | |
int | selectionEnd () const |
Convenience function to return the end of the selection as a linear index Contrary to the getSelection method, this method returns the cursor position if no selection is made. | |
int | selectionStart () const |
Convenience function to return the start of the selection as a linear index Contrary to the getSelection method, this method returns the cursor position if no selection is made. | |
void | setCustomAppearance (const QString &scheme=QString(), const QMap< QgsCodeEditorColorScheme::ColorRole, QColor > &customColors=QMap< QgsCodeEditorColorScheme::ColorRole, QColor >(), const QString &fontFamily=QString(), int fontSize=0) |
Sets a custom appearance for the widget, disconnecting it from using the standard appearance taken from QSettings. | |
void | setFoldingVisible (bool folding) |
Set whether the folding controls are visible in the editor. | |
void | setHistoryFilePath (const QString &path) |
Sets the file path to use for recording and retrieving previously executed commands. | |
void | setInterpreter (QgsCodeInterpreter *newInterpreter) |
Sets an attached code interpreter for executing commands when the editor is in the QgsCodeEditor::Mode::CommandInput mode. | |
void | setLinearPosition (int position) |
Convenience function to set the cursor position as a linear index. | |
void | setLinearSelection (int start, int end) |
Convenience function to set the selection using linear indexes. | |
void | setLineNumbersVisible (bool visible) |
Sets whether line numbers should be visible in the editor. | |
Q_DECL_DEPRECATED void | setMarginVisible (bool margin) |
Set margin visible state. | |
void | setTitle (const QString &title) |
Set the widget title. | |
int | wrapPosition (int line=-1) |
Returns the linear position of the start of the last wrapped part for the specified line, or for the current line if line = -1 If wrapping is disabled, returns -1 instead. | |
Static Public Member Functions | |
static QColor | color (QgsCodeEditorColorScheme::ColorRole role) |
Returns the color to use in the editor for the specified role. | |
static QColor | defaultColor (QgsCodeEditorColorScheme::ColorRole role, const QString &theme=QString()) |
Returns the default color for the specified role. | |
static QFont | getMonospaceFont () |
Returns the monospaced font to use for code editors. | |
static QString | languageToString (Qgis::ScriptLanguage language) |
Returns a user-friendly, translated name of the specified script language. | |
static void | setColor (QgsCodeEditorColorScheme::ColorRole role, const QColor &color) |
Sets the color to use in the editor for the specified role. | |
Static Public Attributes | |
static constexpr int | SEARCH_RESULT_INDICATOR = QsciScintilla::INDIC_MAX - 1 |
Indicator index for search results. | |
static const QgsSettingsEntryBool * | settingContextHelpHover |
static QgsSettingsTreeNode * | sTreeCodeEditor = QgsSettingsTree::sTreeGui->createChildNode( QStringLiteral( "code-editor" ) ) |
Protected Member Functions | |
void | contextMenuEvent (QContextMenuEvent *event) override |
bool | eventFilter (QObject *watched, QEvent *event) override |
void | focusOutEvent (QFocusEvent *event) override |
virtual void | initializeLexer () |
Called when the dialect specific code lexer needs to be initialized (or reinitialized). | |
void | keyPressEvent (QKeyEvent *event) override |
QColor | lexerColor (QgsCodeEditorColorScheme::ColorRole role) const |
Returns the color to use in the lexer for the specified role. | |
QFont | lexerFont () const |
Returns the font to use in the lexer. | |
virtual void | populateContextMenu (QMenu *menu) |
Called when the context menu for the widget is about to be shown, after it has been fully populated with the standard actions created by the base class. | |
virtual QString | reformatCodeString (const QString &string) |
Applies code reformatting to a string and returns the result. | |
void | runPostLexerConfigurationTasks () |
Performs tasks which must be run after a lexer has been set for the widget. | |
virtual void | showMessage (const QString &title, const QString &message, Qgis::MessageLevel level) |
Shows a user facing message (eg a warning message). | |
void | updatePrompt () |
Triggers an update of the interactive prompt part of the editor. | |
void | updateSoftHistory () |
Updates the soft history by storing the current editor text in the history. | |
Static Protected Member Functions | |
static bool | isFixedPitch (const QFont &font) |
Returns true if a font is a fixed pitch font. | |
A text editor based on QScintilla2.
Definition at line 97 of file qgscodeeditor.h.
typedef QFlags< Flag > QgsCodeEditor::Flags |
Flags controlling behavior of code editor.
Definition at line 153 of file qgscodeeditor.h.
|
strong |
Flags controlling behavior of code editor.
Definition at line 141 of file qgscodeeditor.h.
|
strong |
Margin roles.
This enum contains the roles which the different numbered margins are used for.
Enumerator | |
---|---|
LineNumbers | Line numbers. |
ErrorIndicators | Error indicators. |
FoldingControls | Folding controls. |
Definition at line 128 of file qgscodeeditor.h.
|
strong |
Code editor modes.
Enumerator | |
---|---|
ScriptEditor | Standard mode, allows for display and edit of entire scripts. |
OutputDisplay | Read only mode for display of command outputs. |
CommandInput | Command input mode. |
Definition at line 113 of file qgscodeeditor.h.
QgsCodeEditor::QgsCodeEditor | ( | QWidget * | parent = nullptr , |
const QString & | title = QString() , |
||
bool | folding = false , |
||
bool | margin = false , |
||
QgsCodeEditor::Flags | flags = QgsCodeEditor::Flags() , |
||
QgsCodeEditor::Mode | mode = QgsCodeEditor::Mode::ScriptEditor |
||
) |
Construct a new code editor.
parent | The parent QWidget |
title | The title to show in the code editor dialog |
folding | false: Enable folding for code editor (deprecated, use flags instead) |
margin | false: Enable margin for code editor (deprecated) |
flags | flags controlling behavior of code editor (since QGIS 3.28) |
mode | code editor mode (since QGIS 3.30) |
Definition at line 86 of file qgscodeeditor.cpp.
void QgsCodeEditor::addWarning | ( | int | lineNumber, |
const QString & | warning | ||
) |
Adds a warning message and indicator to the specified a lineNumber.
Definition at line 1091 of file qgscodeeditor.cpp.
|
overridevirtual |
Definition at line 1230 of file qgscodeeditor.cpp.
|
virtualslot |
Applies syntax checking to the editor.
This is only supported for editors which return the Qgis::ScriptLanguageCapability::CheckSyntax capability from languageCapabilities().
Reimplemented in QgsCodeEditorPython.
Definition at line 811 of file qgscodeeditor.cpp.
|
slot |
Clears the entire persistent history of commands run in the editor.
Definition at line 850 of file qgscodeeditor.cpp.
|
slot |
Clears the history of commands run in the current session.
Definition at line 841 of file qgscodeeditor.cpp.
void QgsCodeEditor::clearWarnings | ( | ) |
Clears all warning messages from the editor.
Definition at line 1102 of file qgscodeeditor.cpp.
|
static |
Returns the color to use in the editor for the specified role.
This color will be the default theme color for the role, unless the user has manually selected a custom color scheme for the editor.
Definition at line 1012 of file qgscodeeditor.cpp.
|
overrideprotected |
Definition at line 278 of file qgscodeeditor.cpp.
|
static |
Returns the default color for the specified role.
The optional theme argument can be used to specify a color theme. A blank theme indicates the default color scheme.
Available themes are stored in QgsCodeEditorColorSchemeRegistry, and can be retrieved via QgsGui::codeEditorColorSchemeRegistry().
Definition at line 943 of file qgscodeeditor.cpp.
|
overrideprotected |
Definition at line 355 of file qgscodeeditor.cpp.
|
overrideprotected |
Definition at line 155 of file qgscodeeditor.cpp.
bool QgsCodeEditor::foldingVisible | ( | ) |
Returns true
if the folding controls are visible in the editor.
Definition at line 604 of file qgscodeeditor.cpp.
|
static |
Returns the monospaced font to use for code editors.
Definition at line 1046 of file qgscodeeditor.cpp.
|
signal |
Emitted when documentation was requested for the specified word.
QStringList QgsCodeEditor::history | ( | ) | const |
Returns the list of commands previously executed in the editor.
Definition at line 820 of file qgscodeeditor.cpp.
|
protectedvirtual |
Called when the dialect specific code lexer needs to be initialized (or reinitialized).
The default implementation does nothing.
Reimplemented in QgsCodeEditorCSS, QgsCodeEditorExpression, QgsCodeEditorHTML, QgsCodeEditorJavascript, QgsCodeEditorJson, QgsCodeEditorPython, QgsCodeEditorR, QgsCodeEditorShell, and QgsCodeEditorSQL.
Definition at line 370 of file qgscodeeditor.cpp.
void QgsCodeEditor::insertText | ( | const QString & | text | ) |
Insert text at cursor position, or replace any selected text if user has made a selection.
text | The text to be inserted |
Definition at line 927 of file qgscodeeditor.cpp.
QgsCodeInterpreter * QgsCodeEditor::interpreter | ( | ) | const |
Returns the attached code interpreter, or nullptr
if not set.
Definition at line 718 of file qgscodeeditor.cpp.
bool QgsCodeEditor::isCursorOnLastLine | ( | ) | const |
Returns true
if the cursor is on the last line of the document.
Definition at line 1113 of file qgscodeeditor.cpp.
|
staticprotected |
Returns true
if a font is a fixed pitch font.
Definition at line 1041 of file qgscodeeditor.cpp.
|
overrideprotected |
Definition at line 185 of file qgscodeeditor.cpp.
|
virtual |
Returns the associated scripting language.
Reimplemented in QgsCodeEditorCSS, QgsCodeEditorExpression, QgsCodeEditorHTML, QgsCodeEditorJavascript, QgsCodeEditorJson, QgsCodeEditorPython, QgsCodeEditorR, QgsCodeEditorShell, and QgsCodeEditorSQL.
Definition at line 506 of file qgscodeeditor.cpp.
|
virtual |
Returns the associated scripting language capabilities.
Reimplemented in QgsCodeEditorHTML, and QgsCodeEditorPython.
Definition at line 511 of file qgscodeeditor.cpp.
|
static |
Returns a user-friendly, translated name of the specified script language.
Definition at line 516 of file qgscodeeditor.cpp.
|
protected |
Returns the color to use in the lexer for the specified role.
Definition at line 374 of file qgscodeeditor.cpp.
|
protected |
Returns the font to use in the lexer.
Definition at line 390 of file qgscodeeditor.cpp.
int QgsCodeEditor::linearPosition | ( | ) | const |
Convenience function to return the cursor position as a linear index.
Definition at line 1149 of file qgscodeeditor.cpp.
bool QgsCodeEditor::lineNumbersVisible | ( | ) | const |
Returns whether line numbers are visible in the editor.
Definition at line 586 of file qgscodeeditor.cpp.
|
inline |
Returns whether margins are in a visible state.
Definition at line 209 of file qgscodeeditor.h.
|
inline |
|
virtualslot |
Moves the cursor to the end of the document and scrolls to ensure it is visible.
Definition at line 1137 of file qgscodeeditor.cpp.
|
virtualslot |
Moves the cursor to the start of the document and scrolls to ensure it is visible.
Definition at line 1127 of file qgscodeeditor.cpp.
|
signal |
Emitted when the persistent history of commands run in the editor is cleared.
|
protectedvirtual |
Called when the context menu for the widget is about to be shown, after it has been fully populated with the standard actions created by the base class.
This method provides an opportunity for subclasses to add additional non-standard actions to the context menu.
Reimplemented in QgsCodeEditorPython.
Definition at line 680 of file qgscodeeditor.cpp.
|
slot |
Applies code reformatting to the editor.
This is only supported for editors which return the Qgis::ScriptLanguageCapability::Reformat capability from languageCapabilities().
Definition at line 786 of file qgscodeeditor.cpp.
|
protectedvirtual |
Applies code reformatting to a string and returns the result.
This is only supported for editors which return the Qgis::ScriptLanguageCapability::Reformat capability from languageCapabilities().
Reimplemented in QgsCodeEditorHTML, and QgsCodeEditorPython.
Definition at line 684 of file qgscodeeditor.cpp.
|
slot |
Removes the command at the specified index from the history of the code editor.
Definition at line 914 of file qgscodeeditor.cpp.
|
slot |
Runs a command in the editor.
An interpreter() must be set.
Since QGIS 3.32, if skipHistory is true
then the command will not be automatically added to the widget's history.
Definition at line 825 of file qgscodeeditor.cpp.
|
protected |
Performs tasks which must be run after a lexer has been set for the widget.
Definition at line 423 of file qgscodeeditor.cpp.
int QgsCodeEditor::selectionEnd | ( | ) | const |
Convenience function to return the end of the selection as a linear index Contrary to the getSelection method, this method returns the cursor position if no selection is made.
Definition at line 1172 of file qgscodeeditor.cpp.
int QgsCodeEditor::selectionStart | ( | ) | const |
Convenience function to return the start of the selection as a linear index Contrary to the getSelection method, this method returns the cursor position if no selection is made.
Definition at line 1161 of file qgscodeeditor.cpp.
|
signal |
Emitted when the history of commands run in the current session is cleared.
|
static |
Sets the color to use in the editor for the specified role.
This color will be stored as the new default color for the role, to be used for all code editors.
Set color to an invalid QColor in order to clear the stored color value and reset it to the default color.
Definition at line 1027 of file qgscodeeditor.cpp.
void QgsCodeEditor::setCustomAppearance | ( | const QString & | scheme = QString() , |
const QMap< QgsCodeEditorColorScheme::ColorRole, QColor > & | customColors = QMap<QgsCodeEditorColorScheme::ColorRole, QColor>() , |
||
const QString & | fontFamily = QString() , |
||
int | fontSize = 0 |
||
) |
Sets a custom appearance for the widget, disconnecting it from using the standard appearance taken from QSettings.
Definition at line 1078 of file qgscodeeditor.cpp.
void QgsCodeEditor::setFoldingVisible | ( | bool | folding | ) |
Set whether the folding controls are visible in the editor.
Definition at line 591 of file qgscodeeditor.cpp.
void QgsCodeEditor::setHistoryFilePath | ( | const QString & | path | ) |
Sets the file path to use for recording and retrieving previously executed commands.
Definition at line 1121 of file qgscodeeditor.cpp.
void QgsCodeEditor::setInterpreter | ( | QgsCodeInterpreter * | newInterpreter | ) |
Sets an attached code interpreter for executing commands when the editor is in the QgsCodeEditor::Mode::CommandInput mode.
Definition at line 723 of file qgscodeeditor.cpp.
void QgsCodeEditor::setLinearPosition | ( | int | position | ) |
Convenience function to set the cursor position as a linear index.
Definition at line 1154 of file qgscodeeditor.cpp.
void QgsCodeEditor::setLinearSelection | ( | int | start, |
int | end | ||
) |
Convenience function to set the selection using linear indexes.
Definition at line 1183 of file qgscodeeditor.cpp.
void QgsCodeEditor::setLineNumbersVisible | ( | bool | visible | ) |
Sets whether line numbers should be visible in the editor.
Defaults to false
.
Definition at line 567 of file qgscodeeditor.cpp.
void QgsCodeEditor::setMarginVisible | ( | bool | margin | ) |
Set margin visible state.
margin | Set margin in the editor |
Definition at line 546 of file qgscodeeditor.cpp.
void QgsCodeEditor::setTitle | ( | const QString & | title | ) |
Set the widget title.
title | widget title |
Definition at line 501 of file qgscodeeditor.cpp.
|
slot |
Shows the command history dialog.
Definition at line 905 of file qgscodeeditor.cpp.
|
protectedvirtual |
Shows a user facing message (eg a warning message).
The default implementation uses QMessageBox.
Definition at line 689 of file qgscodeeditor.cpp.
|
slot |
Shows the next command from the session in the editor.
Definition at line 895 of file qgscodeeditor.cpp.
|
slot |
Shows the previous command from the session in the editor.
Definition at line 885 of file qgscodeeditor.cpp.
|
virtualslot |
Toggle comment for the selected text.
This is only supported for editors which return the Qgis::ScriptLanguageCapability::ToggleComment capability from languageCapabilities().
Definition at line 816 of file qgscodeeditor.cpp.
|
protected |
Triggers an update of the interactive prompt part of the editor.
Definition at line 709 of file qgscodeeditor.cpp.
|
protected |
Updates the soft history by storing the current editor text in the history.
Definition at line 658 of file qgscodeeditor.cpp.
int QgsCodeEditor::wrapPosition | ( | int | line = -1 | ) |
Returns the linear position of the start of the last wrapped part for the specified line, or for the current line if line = -1 If wrapping is disabled, returns -1 instead.
Definition at line 1200 of file qgscodeeditor.cpp.
|
slot |
Stores the commands executed in the editor to the persistent history file.
Definition at line 863 of file qgscodeeditor.cpp.
|
staticconstexpr |
Indicator index for search results.
Definition at line 157 of file qgscodeeditor.h.
|
static |
Definition at line 105 of file qgscodeeditor.h.
|
inlinestatic |
Definition at line 104 of file qgscodeeditor.h.