Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

TextEdit

Inherits: Control < CanvasItem < Node < Object

Inherited By: CodeEdit

A multiline text editor.

Description

A multiline text editor. It also has limited facilities for editing code, such as syntax highlighting support. For more advanced facilities for editing code, see CodeEdit.

Note: Most viewport, caret and edit methods contain a caret_index argument for caret_multiple support. The argument should be one of the following: -1 for all carets, 0 for the main caret, or greater than 0 for secondary carets.

Note: When holding down Alt, the vertical scroll wheel will scroll 5 times as fast as it would normally do. This also works in the Godot script editor.

Properties

AutowrapMode

autowrap_mode

3

bool

caret_blink

false

float

caret_blink_interval

0.65

bool

caret_draw_when_editable_disabled

false

bool

caret_mid_grapheme

false

bool

caret_move_on_right_click

true

bool

caret_multiple

true

CaretType

caret_type

0

bool

context_menu_enabled

true

bool

deselect_on_focus_loss_enabled

true

bool

drag_and_drop_selection_enabled

true

bool

draw_control_chars

false

bool

draw_spaces

false

bool

draw_tabs

false

bool

editable

true

FocusMode

focus_mode

2 (overrides Control)

bool

highlight_all_occurrences

false

bool

highlight_current_line

false

String

language

""

bool

middle_mouse_paste_enabled

true

bool

minimap_draw

false

int

minimap_width

80

CursorShape

mouse_default_cursor_shape

1 (overrides Control)

String

placeholder_text

""

bool

scroll_fit_content_height

false

int

scroll_horizontal

0

bool

scroll_past_end_of_file

false

bool

scroll_smooth

false

float

scroll_v_scroll_speed

80.0

float

scroll_vertical

0.0

bool

selecting_enabled

true

bool

shortcut_keys_enabled

true

StructuredTextParser

structured_text_bidi_override

0

Array

structured_text_bidi_override_options

[]

SyntaxHighlighter

syntax_highlighter

String

text

""

TextDirection

text_direction

0

bool

virtual_keyboard_enabled

true

LineWrappingMode

wrap_mode

0

Methods

void

_backspace ( int caret_index ) virtual

void

_copy ( int caret_index ) virtual

void

_cut ( int caret_index ) virtual

void

_handle_unicode_input ( int unicode_char, int caret_index ) virtual

void

_paste ( int caret_index ) virtual

void

_paste_primary_clipboard ( int caret_index ) virtual

int

add_caret ( int line, int col )

void

add_caret_at_carets ( bool below )

void

add_gutter ( int at=-1 )

void

add_selection_for_next_occurrence ( )

void

adjust_carets_after_edit ( int caret, int from_line, int from_col, int to_line, int to_col )

void

adjust_viewport_to_caret ( int caret_index=0 )

void

backspace ( int caret_index=-1 )

void

begin_complex_operation ( )

void

center_viewport_to_caret ( int caret_index=0 )

void

clear ( )

void

clear_undo_history ( )

void

copy ( int caret_index=-1 )

void

cut ( int caret_index=-1 )

void

delete_selection ( int caret_index=-1 )

void

deselect ( int caret_index=-1 )

void

end_action ( )

void

end_complex_operation ( )

int

get_caret_column ( int caret_index=0 ) const

int

get_caret_count ( ) const

Vector2

get_caret_draw_pos ( int caret_index=0 ) const

PackedInt32Array

get_caret_index_edit_order ( )

int

get_caret_line ( int caret_index=0 ) const

int

get_caret_wrap_index ( int caret_index=0 ) const

int

get_first_non_whitespace_column ( int line ) const

int

get_first_visible_line ( ) const

int

get_gutter_count ( ) const

String

get_gutter_name ( int gutter ) const

GutterType

get_gutter_type ( int gutter ) const

int

get_gutter_width ( int gutter ) const

HScrollBar

get_h_scroll_bar ( ) const

int

get_indent_level ( int line ) const

int

get_last_full_visible_line ( ) const

int

get_last_full_visible_line_wrap_index ( ) const

int

get_last_unhidden_line ( ) const

String

get_line ( int line ) const

Color

get_line_background_color ( int line ) const

Vector2i

get_line_column_at_pos ( Vector2i position, bool allow_out_of_bounds=true ) const

int

get_line_count ( ) const

Texture2D

get_line_gutter_icon ( int line, int gutter ) const

Color

get_line_gutter_item_color ( int line, int gutter ) const

Variant

get_line_gutter_metadata ( int line, int gutter ) const

String

get_line_gutter_text ( int line, int gutter ) const

int

get_line_height ( ) const

int

get_line_width ( int line, int wrap_index=-1 ) const

int

get_line_wrap_count ( int line ) const

int

get_line_wrap_index_at_column ( int line, int column ) const

PackedStringArray

get_line_wrapped_text ( int line ) const

Vector2

get_local_mouse_pos ( ) const

PopupMenu

get_menu ( ) const

int

get_minimap_line_at_pos ( Vector2i position ) const

int

get_minimap_visible_lines ( ) const

Vector2i

get_next_visible_line_index_offset_from ( int line, int wrap_index, int visible_amount ) const

int

get_next_visible_line_offset_from ( int line, int visible_amount ) const

Vector2i

get_pos_at_line_column ( int line, int column ) const

Rect2i

get_rect_at_line_column ( int line, int column ) const

int

get_saved_version ( ) const

float

get_scroll_pos_for_line ( int line, int wrap_index=0 ) const

String

get_selected_text ( int caret_index=-1 )

int

get_selection_column ( int caret_index=0 ) const

int

get_selection_from_column ( int caret_index=0 ) const

int

get_selection_from_line ( int caret_index=0 ) const

int

get_selection_line ( int caret_index=0 ) const

SelectionMode

get_selection_mode ( ) const

int

get_selection_to_column ( int caret_index=0 ) const

int

get_selection_to_line ( int caret_index=0 ) const

int

get_tab_size ( ) const

int

get_total_gutter_width ( ) const

int

get_total_visible_line_count ( ) const

VScrollBar

get_v_scroll_bar ( ) const

int

get_version ( ) const

int

get_visible_line_count ( ) const

int

get_visible_line_count_in_range ( int from_line, int to_line ) const

String

get_word_at_pos ( Vector2 position ) const

String

get_word_under_caret ( int caret_index=-1 ) const

bool

has_ime_text ( ) const

bool

has_redo ( ) const

bool

has_selection ( int caret_index=-1 ) const

bool

has_undo ( ) const

void

insert_line_at ( int line, String text )

void

insert_text_at_caret ( String text, int caret_index=-1 )

bool

is_caret_visible ( int caret_index=0 ) const

bool

is_dragging_cursor ( ) const

bool

is_gutter_clickable ( int gutter ) const

bool

is_gutter_drawn ( int gutter ) const

bool

is_gutter_overwritable ( int gutter ) const

bool

is_line_gutter_clickable ( int line, int gutter ) const

bool

is_line_wrapped ( int line ) const

bool

is_menu_visible ( ) const

bool

is_mouse_over_selection ( bool edges, int caret_index=-1 ) const

bool

is_overtype_mode_enabled ( ) const

void

menu_option ( int option )

void

merge_gutters ( int from_line, int to_line )

void

merge_overlapping_carets ( )

void

paste ( int caret_index=-1 )

void

paste_primary_clipboard ( int caret_index=-1 )

void

redo ( )

void

remove_caret ( int caret )

void

remove_gutter ( int gutter )

void

remove_secondary_carets ( )

void

remove_text ( int from_line, int from_column, int to_line, int to_column )

Vector2i

search ( String text, int flags, int from_line, int from_colum ) const

void

select ( int from_line, int from_column, int to_line, int to_column, int caret_index=0 )

void

select_all ( )

void

select_word_under_caret ( int caret_index=-1 )

void

set_caret_column ( int column, bool adjust_viewport=true, int caret_index=0 )

void

set_caret_line ( int line, bool adjust_viewport=true, bool can_be_hidden=true, int wrap_index=0, int caret_index=0 )

void

set_gutter_clickable ( int gutter, bool clickable )

void

set_gutter_custom_draw ( int column, Callable draw_callback )

void

set_gutter_draw ( int gutter, bool draw )

void

set_gutter_name ( int gutter, String name )

void

set_gutter_overwritable ( int gutter, bool overwritable )

void

set_gutter_type ( int gutter, GutterType type )

void

set_gutter_width ( int gutter, int width )

void

set_line ( int line, String new_text )

void

set_line_as_center_visible ( int line, int wrap_index=0 )

void

set_line_as_first_visible ( int line, int wrap_index=0 )

void

set_line_as_last_visible ( int line, int wrap_index=0 )

void

set_line_background_color ( int line, Color color )

void

set_line_gutter_clickable ( int line, int gutter, bool clickable )

void

set_line_gutter_icon ( int line, int gutter, Texture2D icon )

void

set_line_gutter_item_color ( int line, int gutter, Color color )

void

set_line_gutter_metadata ( int line, int gutter, Variant metadata )

void

set_line_gutter_text ( int line, int gutter, String text )

void

set_overtype_mode_enabled ( bool enabled )

void

set_search_flags ( int flags )

void

set_search_text ( String search_text )

void

set_selection_mode ( SelectionMode mode, int line=-1, int column=-1, int caret_index=0 )

void

set_tab_size ( int size )

void

set_tooltip_request_func ( Callable callback )

void

start_action ( EditAction action )

void

swap_lines ( int from_line, int to_line )

void

tag_saved_version ( )

void

undo ( )

Theme Properties

Color

background_color

Color(0, 0, 0, 0)

Color

caret_background_color

Color(0, 0, 0, 1)

Color

caret_color

Color(0.875, 0.875, 0.875, 1)

Color

current_line_color

Color(0.25, 0.25, 0.26, 0.8)

Color

font_color

Color(0.875, 0.875, 0.875, 1)

Color

font_outline_color

Color(1, 1, 1, 1)

Color

font_placeholder_color

Color(0.875, 0.875, 0.875, 0.6)

Color

font_readonly_color

Color(0.875, 0.875, 0.875, 0.5)

Color

font_selected_color

Color(0, 0, 0, 0)

Color

search_result_border_color

Color(0.3, 0.3, 0.3, 0.4)

Color

search_result_color

Color(0.3, 0.3, 0.3, 1)

Color

selection_color

Color(0.5, 0.5, 0.5, 1)

Color

word_highlighted_color

Color(0.5, 0.5, 0.5, 0.25)

int

caret_width

1

int

line_spacing

4

int

outline_size

0

Font

font

int

font_size

Texture2D

space

Texture2D

tab

StyleBox

focus

StyleBox

normal

StyleBox

read_only


Signals

caret_changed ( )

Emitted when the caret changes position.


gutter_added ( )

Emitted when a gutter is added.


gutter_clicked ( int line, int gutter )

Emitted when a gutter is clicked.


gutter_removed ( )

Emitted when a gutter is removed.


lines_edited_from ( int from_line, int to_line )

Emitted immediately when the text changes.

When text is added from_line will be less than to_line. On a remove to_line will be less than from_line.


text_changed ( )

Emitted when the text changes.


text_set ( )

Emitted when clear is called or text is set.


Enumerations

enum MenuItems:

MenuItems MENU_CUT = 0

Cuts (copies and clears) the selected text.

MenuItems MENU_COPY = 1

Copies the selected text.

MenuItems MENU_PASTE = 2

Pastes the clipboard text over the selected text (or at the cursor's position).

MenuItems MENU_CLEAR = 3

Erases the whole TextEdit text.

MenuItems MENU_SELECT_ALL = 4

Selects the whole TextEdit text.

MenuItems MENU_UNDO = 5

Undoes the previous action.

MenuItems MENU_REDO = 6

Redoes the previous action.

MenuItems MENU_SUBMENU_TEXT_DIR = 7

ID of "Text Writing Direction" submenu.

MenuItems MENU_DIR_INHERITED = 8

Sets text direction to inherited.

MenuItems MENU_DIR_AUTO = 9

Sets text direction to automatic.

MenuItems MENU_DIR_LTR = 10

Sets text direction to left-to-right.

MenuItems MENU_DIR_RTL = 11

Sets text direction to right-to-left.

MenuItems MENU_DISPLAY_UCC = 12

Toggles control character display.

MenuItems MENU_SUBMENU_INSERT_UCC = 13

ID of "Insert Control Character" submenu.

MenuItems MENU_INSERT_LRM = 14

Inserts left-to-right mark (LRM) character.

MenuItems MENU_INSERT_RLM = 15

Inserts right-to-left mark (RLM) character.

MenuItems MENU_INSERT_LRE = 16

Inserts start of left-to-right embedding (LRE) character.

MenuItems MENU_INSERT_RLE = 17

Inserts start of right-to-left embedding (RLE) character.

MenuItems MENU_INSERT_LRO = 18

Inserts start of left-to-right override (LRO) character.

MenuItems MENU_INSERT_RLO = 19

Inserts start of right-to-left override (RLO) character.

MenuItems MENU_INSERT_PDF = 20

Inserts pop direction formatting (PDF) character.

MenuItems MENU_INSERT_ALM = 21

Inserts Arabic letter mark (ALM) character.

MenuItems MENU_INSERT_LRI = 22

Inserts left-to-right isolate (LRI) character.

MenuItems MENU_INSERT_RLI = 23

Inserts right-to-left isolate (RLI) character.

MenuItems MENU_INSERT_FSI = 24

Inserts first strong isolate (FSI) character.

MenuItems MENU_INSERT_PDI = 25

Inserts pop direction isolate (PDI) character.

MenuItems MENU_INSERT_ZWJ = 26

Inserts zero width joiner (ZWJ) character.

MenuItems MENU_INSERT_ZWNJ = 27

Inserts zero width non-joiner (ZWNJ) character.

MenuItems MENU_INSERT_WJ = 28

Inserts word joiner (WJ) character.

MenuItems MENU_INSERT_SHY = 29

Inserts soft hyphen (SHY) character.

MenuItems MENU_MAX = 30

Represents the size of the MenuItems enum.


enum EditAction:

EditAction ACTION_NONE = 0

No current action.

EditAction ACTION_TYPING = 1

A typing action.

EditAction ACTION_BACKSPACE = 2

A backwards delete action.

EditAction ACTION_DELETE = 3

A forward delete action.


enum SearchFlags:

SearchFlags SEARCH_MATCH_CASE = 1

Match case when searching.

SearchFlags SEARCH_WHOLE_WORDS = 2

Match whole words when searching.

SearchFlags SEARCH_BACKWARDS = 4

Search from end to beginning.


enum CaretType:

CaretType CARET_TYPE_LINE = 0

Vertical line caret.

CaretType CARET_TYPE_BLOCK = 1

Block caret.


enum SelectionMode:

SelectionMode SELECTION_MODE_NONE = 0

Not selecting.

SelectionMode SELECTION_MODE_SHIFT = 1

Select as if shift is pressed.

SelectionMode SELECTION_MODE_POINTER = 2

Select single characters as if the user single clicked.

SelectionMode SELECTION_MODE_WORD = 3

Select whole words as if the user double clicked.

SelectionMode SELECTION_MODE_LINE = 4

Select whole lines as if the user triple clicked.


enum LineWrappingMode:

LineWrappingMode LINE_WRAPPING_NONE = 0

Line wrapping is disabled.

LineWrappingMode LINE_WRAPPING_BOUNDARY = 1

Line wrapping occurs at the control boundary, beyond what would normally be visible.


enum GutterType:

GutterType GUTTER_TYPE_STRING = 0

Draw a string.

GutterType GUTTER_TYPE_ICON = 1

Draw an icon.

GutterType GUTTER_TYPE_CUSTOM = 2

Custom draw.


Property Descriptions

AutowrapMode autowrap_mode = 3

If wrap_mode is set to LINE_WRAPPING_BOUNDARY, sets text wrapping mode. To see how each mode behaves, see AutowrapMode.


  • void set_caret_blink_enabled ( bool value )

  • bool is_caret_blink_enabled ( )

If true, makes the caret blink.


  • void set_caret_blink_interval ( float value )

  • float get_caret_blink_interval ( )

The interval at which the caret blinks (in seconds).


bool caret_draw_when_editable_disabled = false

  • void set_draw_caret_when_editable_disabled ( bool value )

  • bool is_drawing_caret_when_editable_disabled ( )

If true, caret will be visible when editable is disabled.


bool caret_mid_grapheme = false

  • void set_caret_mid_grapheme_enabled ( bool value )

  • bool is_caret_mid_grapheme_enabled ( )

Allow moving caret, selecting and removing the individual composite character components.

Note: Backspace is always removing individual composite character components.


bool caret_move_on_right_click = true

  • void set_move_caret_on_right_click_enabled ( bool value )

  • bool is_move_caret_on_right_click_enabled ( )

If true, a right-click moves the caret at the mouse position before displaying the context menu.

If false, the context menu disregards mouse location.


bool caret_multiple = true

  • void set_multiple_carets_enabled ( bool value )

  • bool is_multiple_carets_enabled ( )

Sets if multiple carets are allowed.


CaretType caret_type = 0

Set the type of caret to draw.


bool context_menu_enabled = true

  • void set_context_menu_enabled ( bool value )

  • bool is_context_menu_enabled ( )

If true, a right-click displays the context menu.


bool deselect_on_focus_loss_enabled = true

  • void set_deselect_on_focus_loss_enabled ( bool value )

  • bool is_deselect_on_focus_loss_enabled ( )

If true, the selected text will be deselected when focus is lost.


bool drag_and_drop_selection_enabled = true

  • void set_drag_and_drop_selection_enabled ( bool value )

  • bool is_drag_and_drop_selection_enabled ( )

If true, allow drag and drop of selected text.


bool draw_control_chars = false

  • void set_draw_control_chars ( bool value )

  • bool get_draw_control_chars ( )

If true, control characters are displayed.


bool draw_spaces = false

  • void set_draw_spaces ( bool value )

  • bool is_drawing_spaces ( )

If true, the "space" character will have a visible representation.


bool draw_tabs = false

  • void set_draw_tabs ( bool value )

  • bool is_drawing_tabs ( )

If true, the "tab" character will have a visible representation.


bool editable = true

  • void set_editable ( bool value )

  • bool is_editable ( )

If false, existing text cannot be modified and new text cannot be added.


bool highlight_all_occurrences = false

  • void set_highlight_all_occurrences ( bool value )

  • bool is_highlight_all_occurrences_enabled ( )

If true, all occurrences of the selected text will be highlighted.


bool highlight_current_line = false

  • void set_highlight_current_line ( bool value )

  • bool is_highlight_current_line_enabled ( )

If true, the line containing the cursor is highlighted.


String language = ""

  • void set_language ( String value )

  • String get_language ( )

Language code used for line-breaking and text shaping algorithms, if left empty current locale is used instead.


bool middle_mouse_paste_enabled = true

  • void set_middle_mouse_paste_enabled ( bool value )

  • bool is_middle_mouse_paste_enabled ( )

If false, using middle mouse button to paste clipboard will be disabled.

Note: This method is only implemented on Linux.


bool minimap_draw = false

  • void set_draw_minimap ( bool value )

  • bool is_drawing_minimap ( )

If true, a minimap is shown, providing an outline of your source code.


int minimap_width = 80

  • void set_minimap_width ( int value )

  • int get_minimap_width ( )

The width, in pixels, of the minimap.


String placeholder_text = ""

  • void set_placeholder ( String value )

  • String get_placeholder ( )

Text shown when the TextEdit is empty. It is not the TextEdit's default value (see text).


bool scroll_fit_content_height = false

  • void set_fit_content_height_enabled ( bool value )

  • bool is_fit_content_height_enabled ( )

If true, TextEdit will disable vertical scroll and fit minimum height to the number of visible lines.


int scroll_horizontal = 0

  • void set_h_scroll ( int value )

  • int get_h_scroll ( )

If there is a horizontal scrollbar, this determines the current horizontal scroll value in pixels.


bool scroll_past_end_of_file = false

  • void set_scroll_past_end_of_file_enabled ( bool value )

  • bool is_scroll_past_end_of_file_enabled ( )

Allow scrolling past the last line into "virtual" space.


bool scroll_smooth = false

  • void set_smooth_scroll_enabled ( bool value )

  • bool is_smooth_scroll_enabled ( )

Scroll smoothly over the text rather than jumping to the next location.


float scroll_v_scroll_speed = 80.0

  • void set_v_scroll_speed ( float value )

  • float get_v_scroll_speed ( )

Sets the scroll speed with the minimap or when scroll_smooth is enabled.


float scroll_vertical = 0.0

  • void set_v_scroll ( float value )

  • float get_v_scroll ( )

If there is a vertical scrollbar, this determines the current vertical scroll value in line numbers, starting at 0 for the top line.


bool selecting_enabled = true

  • void set_selecting_enabled ( bool value )

  • bool is_selecting_enabled ( )

If true, text can be selected.

If false, text can not be selected by the user or by the select or select_all methods.


bool shortcut_keys_enabled = true

  • void set_shortcut_keys_enabled ( bool value )

  • bool is_shortcut_keys_enabled ( )

If true, shortcut keys for context menu items are enabled, even if the context menu is disabled.


StructuredTextParser structured_text_bidi_override = 0

Set BiDi algorithm override for the structured text.


Array structured_text_bidi_override_options = []

  • void set_structured_text_bidi_override_options ( Array value )

  • Array get_structured_text_bidi_override_options ( )

Set additional options for BiDi override.


SyntaxHighlighter syntax_highlighter

Sets the SyntaxHighlighter to use.


String text = ""

String value of the TextEdit.


TextDirection text_direction = 0

Base text writing direction.


bool virtual_keyboard_enabled = true

  • void set_virtual_keyboard_enabled ( bool value )

  • bool is_virtual_keyboard_enabled ( )

If true, the native virtual keyboard is shown when focused on platforms that support it.


LineWrappingMode wrap_mode = 0

Sets the line wrapping mode to use.


Method Descriptions

void _backspace ( int caret_index ) virtual

Override this method to define what happens when the user presses the backspace key.


void _copy ( int caret_index ) virtual

Override this method to define what happens when the user performs a copy operation.


void _cut ( int caret_index ) virtual

Override this method to define what happens when the user performs a cut operation.


void _handle_unicode_input ( int unicode_char, int caret_index ) virtual

Override this method to define what happens when the user types in the provided key unicode_char.


void _paste ( int caret_index ) virtual

Override this method to define what happens when the user performs a paste operation.


void _paste_primary_clipboard ( int caret_index ) virtual

Override this method to define what happens when the user performs a paste operation with middle mouse button.

Note: This method is only implemented on Linux.


int add_caret ( int line, int col )

Adds a new caret at the given location. Returns the index of the new caret, or -1 if the location is invalid.


void add_caret_at_carets ( bool below )

Adds an additional caret above or below every caret. If below is true the new caret will be added below and above otherwise.


void add_gutter ( int at=-1 )

Register a new gutter to this TextEdit. Use at to have a specific gutter order. A value of -1 appends the gutter to the right.


void add_selection_for_next_occurrence ( )

Adds a selection and a caret for the next occurrence of the current selection. If there is no active selection, selects word under caret.


void adjust_carets_after_edit ( int caret, int from_line, int from_col, int to_line, int to_col )

Reposition the carets affected by the edit. This assumes edits are applied in edit order, see get_caret_index_edit_order.


void adjust_viewport_to_caret ( int caret_index=0 )

Adjust the viewport so the caret is visible.


void backspace ( int caret_index=-1 )

Called when the user presses the backspace key. Can be overridden with _backspace.


void begin_complex_operation ( )

Starts a multipart edit. All edits will be treated as one action until end_complex_operation is called.


void center_viewport_to_caret ( int caret_index=0 )

Centers the viewport on the line the editing caret is at. This also resets the scroll_horizontal value to 0.


void clear ( )

Performs a full reset of TextEdit, including undo history.


void clear_undo_history ( )

Clears the undo history.


void copy ( int caret_index=-1 )

Copies the current text selection. Can be overridden with _copy.


void cut ( int caret_index=-1 )

Cut's the current selection. Can be overridden with _cut.


void delete_selection ( int caret_index=-1 )

Deletes the selected text.


void deselect ( int caret_index=-1 )

Deselects the current selection.


void end_action ( )

Marks the end of steps in the current action started with start_action.


void end_complex_operation ( )

Ends a multipart edit, started with begin_complex_operation. If called outside a complex operation, the current operation is pushed onto the undo/redo stack.


int get_caret_column ( int caret_index=0 ) const

Returns the column the editing caret is at.


int get_caret_count ( ) const

Returns the number of carets in this TextEdit.


Vector2 get_caret_draw_pos ( int caret_index=0 ) const

Returns the caret pixel draw position.


PackedInt32Array get_caret_index_edit_order ( )

Returns a list of caret indexes in their edit order, this done from bottom to top. Edit order refers to the way actions such as insert_text_at_caret are applied.


int get_caret_line ( int caret_index=0 ) const

Returns the line the editing caret is on.


int get_caret_wrap_index ( int caret_index=0 ) const

Returns the wrap index the editing caret is on.


int get_first_non_whitespace_column ( int line ) const

Returns the first column containing a non-whitespace character.


int get_first_visible_line ( ) const

Returns the first visible line.


int get_gutter_count ( ) const

Returns the number of gutters registered.


String get_gutter_name ( int gutter ) const

Returns the name of the gutter at the given index.


GutterType get_gutter_type ( int gutter ) const

Returns the type of the gutter at the given index.


int get_gutter_width ( int gutter ) const

Returns the width of the gutter at the given index.


HScrollBar get_h_scroll_bar ( ) const

Returns the HScrollBar used by TextEdit.


int get_indent_level ( int line ) const

Returns the number of spaces and tab * tab_size before the first char.


int get_last_full_visible_line ( ) const

Returns the last visible line. Use get_last_full_visible_line_wrap_index for the wrap index.


int get_last_full_visible_line_wrap_index ( ) const

Returns the last visible wrap index of the last visible line.


int get_last_unhidden_line ( ) const

Returns the last unhidden line in the entire TextEdit.


String get_line ( int line ) const

Returns the text of a specific line.


Color get_line_background_color ( int line ) const

Returns the current background color of the line. Color(0, 0, 0, 0) is returned if no color is set.


Vector2i get_line_column_at_pos ( Vector2i position, bool allow_out_of_bounds=true ) const

Returns the line and column at the given position. In the returned vector, x is the column, y is the line. If allow_out_of_bounds is false and the position is not over the text, both vector values will be set to -1.


int get_line_count ( ) const

Returns the number of lines in the text.


Texture2D get_line_gutter_icon ( int line, int gutter ) const

Returns the icon currently in gutter at line.


Color get_line_gutter_item_color ( int line, int gutter ) const

Returns the color currently in gutter at line.


Variant get_line_gutter_metadata ( int line, int gutter ) const

Returns the metadata currently in gutter at line.


String get_line_gutter_text ( int line, int gutter ) const

Returns the text currently in gutter at line.


int get_line_height ( ) const

Returns the maximum value of the line height among all lines.

Note: The return value is influenced by line_spacing and font_size. And it will not be less than 1.


int get_line_width ( int line, int wrap_index=-1 ) const

Returns the width in pixels of the wrap_index on line.


int get_line_wrap_count ( int line ) const

Returns the number of times the given line is wrapped.


int get_line_wrap_index_at_column ( int line, int column ) const

Returns the wrap index of the given line column.


PackedStringArray get_line_wrapped_text ( int line ) const

Returns an array of Strings representing each wrapped index.


Vector2 get_local_mouse_pos ( ) const

Returns the local mouse position adjusted for the text direction.


PopupMenu get_menu ( ) const

Returns the PopupMenu of this TextEdit. By default, this menu is displayed when right-clicking on the TextEdit.

You can add custom menu items or remove standard ones. Make sure your IDs don't conflict with the standard ones (see MenuItems). For example:

func _ready():
    var menu = get_menu()
    # Remove all items after "Redo".
    menu.item_count = menu.get_item_index(MENU_REDO) + 1
    # Add custom items.
    menu.add_separator()
    menu.add_item("Insert Date", MENU_MAX + 1)
    # Connect callback.
    menu.id_pressed.connect(_on_item_pressed)

func _on_item_pressed(id):
    if id == MENU_MAX + 1:
        insert_text_at_caret(Time.get_date_string_from_system())

Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their Window.visible property.


int get_minimap_line_at_pos ( Vector2i position ) const

Returns the equivalent minimap line at position.


int get_minimap_visible_lines ( ) const

Returns the number of lines that may be drawn on the minimap.


Vector2i get_next_visible_line_index_offset_from ( int line, int wrap_index, int visible_amount ) const

Similar to get_next_visible_line_offset_from, but takes into account the line wrap indexes. In the returned vector, x is the line, y is the wrap index.


int get_next_visible_line_offset_from ( int line, int visible_amount ) const

Returns the count to the next visible line from line to line + visible_amount. Can also count backwards. For example if a TextEdit has 5 lines with lines 2 and 3 hidden, calling this with line = 1, visible_amount = 1 would return 3.


Vector2i get_pos_at_line_column ( int line, int column ) const

Returns the local position for the given line and column. If x or y of the returned vector equal -1, the position is outside of the viewable area of the control.

Note: The Y position corresponds to the bottom side of the line. Use get_rect_at_line_column to get the top side position.


Rect2i get_rect_at_line_column ( int line, int column ) const

Returns the local position and size for the grapheme at the given line and column. If x or y position of the returned rect equal -1, the position is outside of the viewable area of the control.

Note: The Y position of the returned rect corresponds to the top side of the line, unlike get_pos_at_line_column which returns the bottom side.


int get_saved_version ( ) const

Returns the last tagged saved version from tag_saved_version.


float get_scroll_pos_for_line ( int line, int wrap_index=0 ) const

Returns the scroll position for wrap_index of line.


String get_selected_text ( int caret_index=-1 )

Returns the text inside the selection of a caret, or all the carets if caret_index is its default value -1.


int get_selection_column ( int caret_index=0 ) const

Returns the original start column of the selection.


int get_selection_from_column ( int caret_index=0 ) const

Returns the selection begin column.


int get_selection_from_line ( int caret_index=0 ) const

Returns the selection begin line.


int get_selection_line ( int caret_index=0 ) const

Returns the original start line of the selection.


SelectionMode get_selection_mode ( ) const

Returns the current selection mode.


int get_selection_to_column ( int caret_index=0 ) const

Returns the selection end column.


int get_selection_to_line ( int caret_index=0 ) const

Returns the selection end line.


int get_tab_size ( ) const

Returns the TextEdit's' tab size.


int get_total_gutter_width ( ) const

Returns the total width of all gutters and internal padding.


int get_total_visible_line_count ( ) const

Returns the number of lines that may be drawn.


VScrollBar get_v_scroll_bar ( ) const

Returns the VScrollBar of the TextEdit.


int get_version ( ) const

Returns the current version of the TextEdit. The version is a count of recorded operations by the undo/redo history.


int get_visible_line_count ( ) const

Returns the number of visible lines, including wrapped text.


int get_visible_line_count_in_range ( int from_line, int to_line ) const

Returns the total number of visible + wrapped lines between the two lines.


String get_word_at_pos ( Vector2 position ) const

Returns the word at position.


String get_word_under_caret ( int caret_index=-1 ) const

Returns a String text with the word under the caret's location.


bool has_ime_text ( ) const

Returns if the user has IME text.


bool has_redo ( ) const

Returns true if a "redo" action is available.


bool has_selection ( int caret_index=-1 ) const

Returns true if the user has selected text.


bool has_undo ( ) const

Returns true if an "undo" action is available.


void insert_line_at ( int line, String text )

Inserts a new line with text at line.


void insert_text_at_caret ( String text, int caret_index=-1 )

Insert the specified text at the caret position.


bool is_caret_visible ( int caret_index=0 ) const

Returns true if the caret is visible on the screen.


bool is_dragging_cursor ( ) const

Returns true if the user is dragging their mouse for scrolling or selecting.


bool is_gutter_clickable ( int gutter ) const

Returns whether the gutter is clickable.


bool is_gutter_drawn ( int gutter ) const

Returns whether the gutter is currently drawn.


bool is_gutter_overwritable ( int gutter ) const

Returns whether the gutter is overwritable.


bool is_line_gutter_clickable ( int line, int gutter ) const

Returns whether the gutter on the given line is clickable.


bool is_line_wrapped ( int line ) const

Returns if the given line is wrapped.


bool is_menu_visible ( ) const

Returns whether the menu is visible. Use this instead of get_menu().visible to improve performance (so the creation of the menu is avoided).


bool is_mouse_over_selection ( bool edges, int caret_index=-1 ) const

Returns whether the mouse is over selection. If edges is true, the edges are considered part of the selection.


bool is_overtype_mode_enabled ( ) const

Returns whether the user is in overtype mode.


void menu_option ( int option )

Executes a given action as defined in the MenuItems enum.


void merge_gutters ( int from_line, int to_line )

Merge the gutters from from_line into to_line. Only overwritable gutters will be copied.


void merge_overlapping_carets ( )

Merges any overlapping carets. Will favor the newest caret, or the caret with a selection.

Note: This is not called when a caret changes position but after certain actions, so it is possible to get into a state where carets overlap.


void paste ( int caret_index=-1 )

Paste at the current location. Can be overridden with _paste.


void paste_primary_clipboard ( int caret_index=-1 )

Pastes the primary clipboard.


void redo ( )

Perform redo operation.


void remove_caret ( int caret )

Removes the given caret index.

Note: This can result in adjustment of all other caret indices.


void remove_gutter ( int gutter )

Removes the gutter from this TextEdit.


void remove_secondary_carets ( )

Removes all additional carets.


void remove_text ( int from_line, int from_column, int to_line, int to_column )

Removes text between the given positions.

Note: This does not adjust the caret or selection, which as a result it can end up in an invalid position.


Perform a search inside the text. Search flags can be specified in the SearchFlags enum.

In the returned vector, x is the column, y is the line. If no results are found, both are equal to -1.

var result = search("print", SEARCH_WHOLE_WORDS, 0, 0)
if result.x != -1:
    # Result found.
    var line_number = result.y
    var column_number = result.x

void select ( int from_line, int from_column, int to_line, int to_column, int caret_index=0 )

Perform selection, from line/column to line/column.

If selecting_enabled is false, no selection will occur.


void select_all ( )

Select all the text.

If selecting_enabled is false, no selection will occur.


void select_word_under_caret ( int caret_index=-1 )

Selects the word under the caret.


void set_caret_column ( int column, bool adjust_viewport=true, int caret_index=0 )

Moves the caret to the specified column index.

If adjust_viewport is true, the viewport will center at the caret position after the move occurs.

Note: If supporting multiple carets this will not check for any overlap. See merge_overlapping_carets.


void set_caret_line ( int line, bool adjust_viewport=true, bool can_be_hidden=true, int wrap_index=0, int caret_index=0 )

Moves the caret to the specified line index.

If adjust_viewport is true, the viewport will center at the caret position after the move occurs.

If can_be_hidden is true, the specified line can be hidden.

Note: If supporting multiple carets this will not check for any overlap. See merge_overlapping_carets.


void set_gutter_clickable ( int gutter, bool clickable )

Sets the gutter as clickable. This will change the mouse cursor to a pointing hand when hovering over the gutter.


void set_gutter_custom_draw ( int column, Callable draw_callback )

Set a custom draw method for the gutter. The callback method must take the following args: line: int, gutter: int, Area: Rect2.


void set_gutter_draw ( int gutter, bool draw )

Sets whether the gutter should be drawn.


void set_gutter_name ( int gutter, String name )

Sets the name of the gutter.


void set_gutter_overwritable ( int gutter, bool overwritable )

Sets the gutter to overwritable. See merge_gutters.


void set_gutter_type ( int gutter, GutterType type )

Sets the type of gutter.


void set_gutter_width ( int gutter, int width )

Set the width of the gutter.


void set_line ( int line, String new_text )

Sets the text for a specific line.


void set_line_as_center_visible ( int line, int wrap_index=0 )

Positions the wrap_index of line at the center of the viewport.


void set_line_as_first_visible ( int line, int wrap_index=0 )

Positions the wrap_index of line at the top of the viewport.


void set_line_as_last_visible ( int line, int wrap_index=0 )

Positions the wrap_index of line at the bottom of the viewport.


void set_line_background_color ( int line, Color color )

Sets the current background color of the line. Set to Color(0, 0, 0, 0) for no color.


void set_line_gutter_clickable ( int line, int gutter, bool clickable )

If clickable is true, makes the gutter on line clickable. See gutter_clicked.


void set_line_gutter_icon ( int line, int gutter, Texture2D icon )

Sets the icon for gutter on line to icon.


void set_line_gutter_item_color ( int line, int gutter, Color color )

Sets the color for gutter on line to color.


void set_line_gutter_metadata ( int line, int gutter, Variant metadata )

Sets the metadata for gutter on line to metadata.


void set_line_gutter_text ( int line, int gutter, String text )

Sets the text for gutter on line to text.


void set_overtype_mode_enabled ( bool enabled )

If true, sets the user into overtype mode. When the user types in this mode, it will override existing text.


void set_search_flags ( int flags )

Sets the search flags. This is used with set_search_text to highlight occurrences of the searched text. Search flags can be specified from the SearchFlags enum.


void set_search_text ( String search_text )

Sets the search text. See set_search_flags.


void set_selection_mode ( SelectionMode mode, int line=-1, int column=-1, int caret_index=0 )

Sets the current selection mode.


void set_tab_size ( int size )

Sets the tab size for the TextEdit to use.


void set_tooltip_request_func ( Callable callback )

Provide custom tooltip text. The callback method must take the following args: hovered_word: String.


void start_action ( EditAction action )

Starts an action, will end the current action if action is different.

An action will also end after a call to end_action, after ProjectSettings.gui/timers/text_edit_idle_detect_sec is triggered or a new undoable step outside the start_action and end_action calls.


void swap_lines ( int from_line, int to_line )

Swaps the two lines.


void tag_saved_version ( )

Tag the current version as saved.


void undo ( )

Perform undo operation.


Theme Property Descriptions

Color background_color = Color(0, 0, 0, 0)

Sets the background Color of this TextEdit.


Color caret_background_color = Color(0, 0, 0, 1)

Color of the text behind the caret when using a block caret.


Color caret_color = Color(0.875, 0.875, 0.875, 1)

Color of the caret. This can be set to a fully transparent color to hide the caret entirely.


Color current_line_color = Color(0.25, 0.25, 0.26, 0.8)

Background Color of the line containing the caret.


Color font_color = Color(0.875, 0.875, 0.875, 1)

Sets the font Color.


Color font_outline_color = Color(1, 1, 1, 1)

The tint of text outline of the TextEdit.


Color font_placeholder_color = Color(0.875, 0.875, 0.875, 0.6)

Font color for placeholder_text.


Color font_readonly_color = Color(0.875, 0.875, 0.875, 0.5)

Sets the font Color when editable is disabled.


Color font_selected_color = Color(0, 0, 0, 0)

Sets the Color of the selected text. If equal to Color(0, 0, 0, 0), it will be ignored.


Color search_result_border_color = Color(0.3, 0.3, 0.3, 0.4)

Color of the border around text that matches the search query.


Color search_result_color = Color(0.3, 0.3, 0.3, 1)

Color behind the text that matches the search query.


Color selection_color = Color(0.5, 0.5, 0.5, 1)

Sets the highlight Color of text selections.


Color word_highlighted_color = Color(0.5, 0.5, 0.5, 0.25)

Sets the highlight Color of multiple occurrences. highlight_all_occurrences has to be enabled.


int caret_width = 1

The caret's width in pixels. Greater values can be used to improve accessibility by ensuring the caret is easily visible, or to ensure consistency with a large font size. If set to 0 or lower, the caret width is automatically set to 1 pixel and multiplied by the display scaling factor.


int line_spacing = 4

Sets the spacing between the lines.


int outline_size = 0

The size of the text outline.

Note: If using a font with FontFile.multichannel_signed_distance_field enabled, its FontFile.msdf_pixel_range must be set to at least twice the value of outline_size for outline rendering to look correct. Otherwise, the outline may appear to be cut off earlier than intended.


Font font

Sets the default Font.


int font_size

Sets default font size.


Texture2D space

Sets a custom Texture2D for space text characters.


Texture2D tab

Sets a custom Texture2D for tab text characters.


StyleBox focus

Sets the StyleBox when in focus. The focus StyleBox is displayed over the base StyleBox, so a partially transparent StyleBox should be used to ensure the base StyleBox remains visible. A StyleBox that represents an outline or an underline works well for this purpose. To disable the focus visual effect, assign a StyleBoxEmpty resource. Note that disabling the focus visual effect will harm keyboard/controller navigation usability, so this is not recommended for accessibility reasons.


StyleBox normal

Sets the StyleBox of this TextEdit.


StyleBox read_only

Sets the StyleBox of this TextEdit when editable is disabled.