texteditor.lua
---@meta TextEditor
local textEditor = {}
---@module 'Utils'
local Utils
---@class Position
---@field line integer The line number.
---@field column integer The column number.
local Position = {}
---Returns the position in the document as an integer. (since 17.0.0)
---@param document TextDocument The document to get the position in.
---@return integer position The position in the document.
function Position:toPositionInDocument(document) end
---Returns a new TextCursor at the position. (since 17.0.0)
---@param document TextDocument The document to create the cursor for.
---@return TextCursor cursor The created cursor.
function Position:toTextCursor(document) end
---@class Range
---@field from Position The beginning position of the range.
---@field to Position The end position of the range.
local Range = {}
---Returns the range in the document as a TextCursor. (since 17.0.0)
---@param document TextDocument The document to get the range in.
---@return TextCursor cursor The created cursor.
function Range:toTextCursor(document) end
---@class TextCursor
local TextCursor = {}
---@enum TextCursor.MoveOperation
---Move operations for a TextCursor.
TextCursor.MoveOperation = {
NoMove = 0,
Start = 0,
Up = 0,
StartOfLine = 0,
StartOfBlock = 0,
StartOfWord = 0,
PreviousBlock = 0,
PreviousCharacter = 0,
PreviousWord = 0,
Left = 0,
WordLeft = 0,
End = 0,
Down = 0,
EndOfLine = 0,
EndOfWord = 0,
EndOfBlock = 0,
NextBlock = 0,
NextCharacter = 0,
NextWord = 0,
Right = 0,
WordRight = 0,
NextCell = 0,
PreviousCell = 0,
NextRow = 0,
PreviousRow = 0
}
---@enum TextCursor.MoveMode
---Specifies how the cursor moves (with or without anchoring the selection).
TextCursor.MoveMode = {
MoveAnchor = 0,
KeepAnchor = 0
}
---Creates a new `TextCursor` object.
---
---**Overload 1**: `TextCursor.create()`
--- No parameters. Creates a default-constructed cursor.
---
---**Overload 2**: `TextCursor.create(doc)`
--- - `doc`: A `QTextDocument` (or usertype) from which to create the cursor. The position will be at the start of the document.
---
---**Overload 3**: `TextCursor.create(doc)`
--- - `doc`: A TextDocument for which to create the cursor. The position will be at the start of the document. (since 17.0.0)
---
---**Overload 4**: `TextCursor.create(other)`
--- - `other`: Another `TextCursor` to copy.
---
---@overload fun(): TextCursor
---@overload fun(doc: any): TextCursor
---@overload fun(doc: TextDocument): TextCursor
---@overload fun(other: TextCursor): TextCursor
---@return TextCursor
function TextCursor.create(...) end
---Returns the position of the cursor.
---@return integer position The position of the cursor.
function TextCursor:position() end
---Returns the block (line) and column for the cursor.
---@return integer block The block (line) of the cursor.
function TextCursor:blockNumber() end
---Returns the column for the cursor.
---@return integer column The column of the cursor.
function TextCursor:columnNumber() end
---Returns true if the cursor has a selection, false otherwise.
---@return boolean hasSelection True if the cursor has a selection, false otherwise.
function TextCursor:hasSelection() end
---Returns the selected text of the cursor.
---@return string selectedText The selected text of the cursor.
function TextCursor:selectedText() end
---Returns the range of selected text of the cursor.
---@return Range selectionRange The range of selected text of the cursor.
function TextCursor:selectionRange() end
---Inserts the passed text at the cursors position overwriting any selected text.
---@param text string The text to insert.
function TextCursor:insertText(text) end
---Moves the cursor using the specified operation `n` times. The move mode lets you specify whether the anchor is moved too.
---@param operation TextCursor.MoveOperation The move operation.
---@param mode TextCursor.MoveMode The move mode.
---@param n integer The number of times to repeat the move.
function TextCursor:movePosition(operation, mode, n) end
---Move the cursor using the specified operation once. The move mode lets you specify whether the anchor is moved too.
---@param operation TextCursor.MoveOperation The move operation.
---@param mode TextCursor.MoveMode The move mode.
function TextCursor:movePosition(operation, mode) end
---Move the cursor using the specified operation once. The anchor will be moved too.
---@param operation TextCursor.MoveOperation The move operation.
function TextCursor:movePosition(operation) end
---Set the cursor to a specific position. (since 17.0.0)
---@param position integer The position to set the cursor to.
---@param mode TextCursor.MoveMode The move mode.
function TextCursor:setPosition(position, mode) end
---Set the cursor (including the anchor) to a specific position. (since 17.0.0)
---@param position integer The position to set the cursor to.
function TextCursor:setPosition(position) end
---@class MultiTextCursor
local MultiTextCursor = {}
---Returns the main cursor.
---@return TextCursor mainCursor The main cursor.
function MultiTextCursor:mainCursor() end
---Sets the main cursor. (since 17.0.1)
---@param mainCursor TextCursor to set as the main cursor.
function MultiTextCursor:setMainCursor(mainCursor) end
---Returns the cursors.
---@return TextCursor[] cursors The cursors.
function MultiTextCursor:cursors() end
---Sets all cursors. (since 17.0.1)
---@param cursors TextCursor[] to set as the cursors.
function MultiTextCursor:setCursors(cursors) end
---Inserts the passed text at all cursor positions overwriting any selected text.
---@param text string The text to insert.
function MultiTextCursor:insertText(text) end
---@class Suggestion
local Suggestion = {}
---@class SuggestionParams
---@field text string The text of the suggestion.
---@field position Position The cursor position where the suggestion should be inserted.
---@field range Range The range of the text preceding the suggestion.
SuggestionParams = {}
---Creates Suggestion.
---@param params SuggestionParams Parameters for creating the suggestion.
---@return Suggestion suggestion The created suggestion.
function Suggestion:create(params) end
---@class TextDocument
local TextDocument = {}
---Returns the file path of the document.
---@return FilePath filePath The file path of the document.
function TextDocument:file() end
---Returns the font of the document.
---@return QFont
function TextDocument:font() end
---Returns the block (line) and column for the given position.
---@param position integer The position to convert.
---@return integer block The block (line) of the position.
---@return integer column The column of the position.
function TextDocument:blockAndColumn(position) end
---Returns the number of blocks (lines) in the document.
---@return integer blockCount The number of blocks in the document.
function TextDocument:blockCount() end
---Sets the suggestions for the document and enables toolTip on the mouse cursor hover.
---@param suggestions Suggestion[] A list of possible suggestions to display.
function TextDocument:setSuggestions(suggestions) end
---@class TextEditor
local TextEditor = {}
---Returns the document of the editor.
---@return TextDocument document The document of the editor.
function TextEditor:document() end
---Returns the cursor of the editor.
---@return MultiTextCursor cursor The cursor of the editor.
function TextEditor:cursor() end
---Sets the main cursor of the editor. (since 17.0.1)
---@param cursor MultiTextCursor to set as the cursor of the editor.
function TextEditor:setCursor(cursor) end
---@class EmbeddedWidget
local EmbeddedWidget = {}
---Closes the floating widget.
function EmbeddedWidget:close() end
---Resizes the floating widget according to its layout.
function EmbeddedWidget:resize() end
---Set the callback to be called when the widget should close. (E.g. if the user presses the escape key)
---@param fn function The function to be called when the embed should close.
function EmbeddedWidget:onShouldClose(fn) end
---Embeds a widget at the specified cursor position in the text editor.
---@param widget Widget|Layout The widget to be added as a floating widget.
---@param position integer|Position The position in the document where the widget should appear.
---@return EmbeddedWidget interface An interface to control the floating widget.
function TextEditor:addEmbeddedWidget(widget, position) end
---Inserts a widget into toolbar.
---@param side TextEditor.Side The side where the widget should be added.
---@param widget Widget|Layout The widget to be added to the toolbar
function TextEditor:insertExtraToolBarWidget(side, widget) end
---Adds an refactor marker in the text editor at given cursor position.
---@param icon Utils.Icon|FilePath|string Icon to be used. If specified icon is invalid the default QtCreator for markers is used.
---@param position integer The position in the document where the marker should appear.
---@param id string The identifier of the marker.
---@param anchorLeft boolean Specifies if the marker should appear at the beginning of the TextCursor block.
---@param callback function A function to be called once the marker is pressed.
function TextEditor:setRefactorMarker(icon, position, id, anchorLeft, callback) end
---Removes the refactor markers with given id.
---param id string The identifier of the marker.
function TextEditor:clearRefactorMarkers(icon, position, id, anchorLeft, callback) end
---Checks if the current suggestion is locked. The suggestion is locked when the user can use it.
---@return boolean True if the suggestion is locked, false otherwise.
function TextEditor:hasLockedSuggestion() end
---Inserts the passed text at all cursor positions overwriting any selected text.
---@param text string The text to insert.
function TextEditor:insertText(text) end
---Indicates if the editor widget has focus.
---@return boolean hasFocus True if the editor widget has focus, false otherwise.
function TextEditor:hasFocus() end
---Returns the block number of the first visible line in the text editor.
---@return integer blockNumber The block number of the first visible line.
function TextEditor:firstVisibleBlockNumber() end
---Returns the block number of the last visible line in the text editor.
---@return integer blockNumber The block number of the last visible line.
function TextEditor:lastVisibleBlockNumber() end
---Returns the current editor or nil.
---@return TextEditor|nil editor The currently active editor or nil if there is none.
function textEditor.currentEditor() end
---@enum TextEditor.Side
---Side of the toolbar.
textEditor.Side = {
Left = 0,
Right = 0
}
return textEditor