pyqode.core.modes¶
This package contains the core modes.
- class pyqode.core.modes.AutoCompleteMode¶
Bases: pyqode.core.api.mode.Mode
Generic auto complete mode that automatically completes the following symbols:
- ” -> “
- ‘ -> ‘
- ( -> )
- [ -> ]
- { -> }
- class pyqode.core.modes.AutoIndentMode¶
Bases: pyqode.core.api.mode.Mode
Generic indenter mode that indents the text when the user press RETURN.
You can customize this mode by overriding pyqode.core.modes.AutoIndentMode._get_indent()
- class pyqode.core.modes.CaretLineHighlighterMode¶
Bases: pyqode.core.api.mode.Mode
This mode highlights the caret line (active line).
- on_state_changed(state)¶
On state changed we (dis)connect to the cursorPositionChanged signal
- refresh()¶
Updates the current line decoration
- background¶
Background color of the caret line. Default is to use a color slightly darker/lighter than the background color. You can override the automatic color by setting up this property
- class pyqode.core.modes.CaseConverterMode¶
Bases: pyqode.core.api.mode.Mode
Converts selected text to lower case or UPPER case.
- It does so by adding two new menu entries to the editor’s context menu:
- Convert to lower case: ctrl-u
- Convert to UPPER CASE: ctrl+shift+u
- to_lower(*args)¶
Converts selected text to lower
- to_upper(*args)¶
Converts selected text to upper
- class pyqode.core.modes.CheckerMode(worker, delay=500, marker_panel_id='markerPanel', clear_on_request=True, show_tooltip=False)¶
Bases: pyqode.core.api.mode.Mode, pyqode.core.qt.QtCore.QObject
Performs a user defined code analysis job using the backend and display the results on the editor instance.
The user defined code analysis job is a simple function with the following signature:
def analysisProcess(data)
where data is the request data:
request_data = { 'code': self.editor.toPlainText(), 'path': self.editor.file.path, 'encoding': self.editor.file.encoding }
and the return value is a tuple made up of the following elements:
(description, status, line, [col], [icon], [color], [path])The background process is ran when the text changed and the ide is an idle state for a few seconds.
You can also request an analysis manually using pyqode.core.modes.CheckerMode.request_analysis()
Messages are displayed as text decorations on the editor and optional markers can be added to a pyqode.core.panels.MarkerPanel
- add_messages(messages, clear=True)¶
Adds a message or a list of message.
Parameters: - messages – A list of messages or a single message
- clear – Clear messages before displaying the new ones. Default is True.
- clear_messages()¶
Clears all messages.
- remove_message(message)¶
Removes a message.
Parameters: message – Message to remove
- request_analysis()¶
Requests an analysis.
- class pyqode.core.modes.CheckerMessage(description, status, line, col=None, icon=None, color=None, path=None)¶
Bases: builtins.object
Holds data for a message displayed by the pyqode.core.modes.CheckerMode.
- classmethod status_to_string(status)¶
Converts a message status to a string.
Parameters: status – Status to convert (p yqode.core.modes.CheckerMessages) Returns: The status string. Return type: str
- status_string¶
Returns the message status as a string.
Returns: The status string.
- class pyqode.core.modes.CheckerMessages¶
Bases: builtins.object
Enumerates the possible checker message types.
- class pyqode.core.modes.CodeCompletionMode¶
Bases: pyqode.core.api.mode.Mode, pyqode.core.qt.QtCore.QObject
This mode provides code completion system wich is extensible. It takes care of running the completion request in a background process using one or more completion provider(s).
To implement a code completion for a specific language, you only need to implement new pyqode.core.backend.workers.CodeCompletionWorker.Provider
The completion popup is shown the user press ctrl+space or automatically while the user is typing some code (this can be configured using a series of properties).
- request_completion()¶
Requests a code completion at the current cursor position.
- completion_prefix¶
Returns the current completion prefix
- class pyqode.core.modes.FileWatcherMode¶
Bases: pyqode.core.api.mode.Mode, pyqode.core.qt.QtCore.QObject
FileWatcher mode, check if the opened file has changed externally.
- on_state_changed(state)¶
Connects/Disconnects to the mouse_wheel_activated and key_pressed event
- auto_reload¶
Automatically reloads changed files
- class pyqode.core.modes.IndenterMode¶
Bases: pyqode.core.api.mode.Mode
Implements classic indentation/tabulation.
It inserts/removes tabulations (a series of spaces defined by the tabLength settings) at the cursor position if there is no selection, otherwise it fully indents/un-indents selected lines.
To trigger an indentation/un-indentation programatically, you must emit pyqode.core.api.CodeEdit.indent_requested or pyqode.core.api.CodeEdit.unindent_requested.
- indent()¶
Indents text at cursor position.
- indent_selection(cursor)¶
Indent selected text
Parameters: cursor – QTextCursor
- unindent()¶
Un-indents text at cursor position.
- unindent_selection(cursor)¶
Un-indents selected text
- class pyqode.core.modes.PygmentsSyntaxHighlighter(document, lexer=None)¶
Bases: pyqode.core.api.syntax_highlighter.SyntaxHighlighter
This mode enable syntax highlighting using the pygments library
Warning
There are some issues with multi-line comments, they are not properly highlighted until a full re-highlight is triggered. The text is automatically re-highlighted on save.
- on_install(editor)¶
- set_lexer_from_filename(filename)¶
Change the lexer based on the filename (actually only the extension is needed)
Parameters: filename – Filename or extension
- set_lexer_from_mime_type(mime, **options)¶
Sets the pygments lexer from mime type.
- pygments_style¶
Gets/Sets the pygments style
- class pyqode.core.modes.RightMarginMode¶
Bases: pyqode.core.api.mode.Mode
Display a right margin at column 80 by default.
- on_state_changed(state)¶
Connects/Disconnects to the painted event of the editor
Parameters: state – Enable state
- color¶
Gets/sets the color of the margin
- position¶
Gets/sets the position of the margin
- class pyqode.core.modes.SymbolMatcherMode¶
Bases: pyqode.core.api.mode.Mode
Do symbols matches highlighting (parenthesis, braces, ...).
Note
This mode requires the document to be filled with pyqode.core.api.TextBlockUserData, i.e. a pyqode.core.api.SyntaxHighlighter must be installed on the editor instance.
- do_symbols_matching()¶
Performs symbols matching.
- symbol_pos(cursor, character='(', symbol_type=0)¶
Find the corresponding symbol position (line, column).
- match_background¶
Background color of matching symbols.
- match_foreground¶
Foreground color of matching symbols.
- unmatch_background¶
Background color of non-matching symbols.
- unmatch_foreground¶
Foreground color of matching symbols.
- class pyqode.core.modes.WordClickMode¶
Bases: pyqode.core.api.mode.Mode, pyqode.core.qt.QtCore.QObject
This mode adds support for document word click.
It will highlight the click-able word when the user press control and move the mouse over a word.
pyqode.core.modes.WordClickMode.word_clicked is emitted when the word is clicked by the user (while keeping control pressed).
- on_state_changed(state)¶
Connects/disconnects slots to/from signals when the mode state changed.
- class pyqode.core.modes.ZoomMode¶
Bases: pyqode.core.api.mode.Mode
This mode make it possible to zoom in/out the editor view.
- Here are the controls:
- zoom out: ctrl+- or ctrl+mouse wheel backward
- zoom in: ctrl++ or ctrl+mouse wheel forward
- reset: ctrl + 0
- on_state_changed(state)¶
Connects/Disconnects to the mouse_wheel_activated and key_pressed event