Skip to content

Latest commit

 

History

History
1147 lines (769 loc) · 64.6 KB

class_textedit.rst

File metadata and controls

1147 lines (769 loc) · 64.6 KB
github_url:hide

TextEdit

Inherits: :ref:`Control<class_Control>` < :ref:`CanvasItem<class_CanvasItem>` < :ref:`Node<class_Node>` < :ref:`Object<class_Object>`

Multiline text editing control.

Description

TextEdit is meant for editing large, multiline text. It also has facilities for editing code, such as syntax highlighting support and multiple levels of undo/redo.

Properties

:ref:`bool<class_bool>` :ref:`breakpoint_gutter<class_TextEdit_property_breakpoint_gutter>` false
:ref:`bool<class_bool>` :ref:`caret_blink<class_TextEdit_property_caret_blink>` false
:ref:`float<class_float>` :ref:`caret_blink_speed<class_TextEdit_property_caret_blink_speed>` 0.65
:ref:`bool<class_bool>` :ref:`caret_block_mode<class_TextEdit_property_caret_block_mode>` false
:ref:`bool<class_bool>` :ref:`caret_moving_by_right_click<class_TextEdit_property_caret_moving_by_right_click>` true
:ref:`bool<class_bool>` :ref:`context_menu_enabled<class_TextEdit_property_context_menu_enabled>` true
:ref:`bool<class_bool>` :ref:`draw_spaces<class_TextEdit_property_draw_spaces>` false
:ref:`bool<class_bool>` :ref:`draw_tabs<class_TextEdit_property_draw_tabs>` false
:ref:`FocusMode<enum_Control_FocusMode>` focus_mode O: 2
:ref:`bool<class_bool>` :ref:`fold_gutter<class_TextEdit_property_fold_gutter>` false
:ref:`bool<class_bool>` :ref:`hiding_enabled<class_TextEdit_property_hiding_enabled>` false
:ref:`bool<class_bool>` :ref:`highlight_all_occurrences<class_TextEdit_property_highlight_all_occurrences>` false
:ref:`bool<class_bool>` :ref:`highlight_current_line<class_TextEdit_property_highlight_current_line>` false
:ref:`bool<class_bool>` :ref:`minimap_draw<class_TextEdit_property_minimap_draw>` false
:ref:`int<class_int>` :ref:`minimap_width<class_TextEdit_property_minimap_width>` 80
:ref:`CursorShape<enum_Control_CursorShape>` mouse_default_cursor_shape O: 1
:ref:`bool<class_bool>` :ref:`override_selected_font_color<class_TextEdit_property_override_selected_font_color>` false
:ref:`bool<class_bool>` :ref:`readonly<class_TextEdit_property_readonly>` false
:ref:`int<class_int>` :ref:`scroll_horizontal<class_TextEdit_property_scroll_horizontal>` 0
:ref:`float<class_float>` :ref:`scroll_vertical<class_TextEdit_property_scroll_vertical>` 0.0
:ref:`bool<class_bool>` :ref:`selecting_enabled<class_TextEdit_property_selecting_enabled>` true
:ref:`bool<class_bool>` :ref:`shortcut_keys_enabled<class_TextEdit_property_shortcut_keys_enabled>` true
:ref:`bool<class_bool>` :ref:`show_line_numbers<class_TextEdit_property_show_line_numbers>` false
:ref:`bool<class_bool>` :ref:`smooth_scrolling<class_TextEdit_property_smooth_scrolling>` false
:ref:`bool<class_bool>` :ref:`syntax_highlighting<class_TextEdit_property_syntax_highlighting>` false
:ref:`String<class_String>` :ref:`text<class_TextEdit_property_text>` ""
:ref:`float<class_float>` :ref:`v_scroll_speed<class_TextEdit_property_v_scroll_speed>` 80.0
:ref:`bool<class_bool>` :ref:`wrap_enabled<class_TextEdit_property_wrap_enabled>` false

Methods

void :ref:`add_color_region<class_TextEdit_method_add_color_region>` ( :ref:`String<class_String>` begin_key, :ref:`String<class_String>` end_key, :ref:`Color<class_Color>` color, :ref:`bool<class_bool>` line_only=false )
void :ref:`add_keyword_color<class_TextEdit_method_add_keyword_color>` ( :ref:`String<class_String>` keyword, :ref:`Color<class_Color>` color )
:ref:`bool<class_bool>` :ref:`can_fold<class_TextEdit_method_can_fold>` ( :ref:`int<class_int>` line ) const
void :ref:`center_viewport_to_cursor<class_TextEdit_method_center_viewport_to_cursor>` ( )
void :ref:`clear_colors<class_TextEdit_method_clear_colors>` ( )
void :ref:`clear_undo_history<class_TextEdit_method_clear_undo_history>` ( )
void :ref:`copy<class_TextEdit_method_copy>` ( )
:ref:`int<class_int>` :ref:`cursor_get_column<class_TextEdit_method_cursor_get_column>` ( ) const
:ref:`int<class_int>` :ref:`cursor_get_line<class_TextEdit_method_cursor_get_line>` ( ) const
void :ref:`cursor_set_column<class_TextEdit_method_cursor_set_column>` ( :ref:`int<class_int>` column, :ref:`bool<class_bool>` adjust_viewport=true )
void :ref:`cursor_set_line<class_TextEdit_method_cursor_set_line>` ( :ref:`int<class_int>` line, :ref:`bool<class_bool>` adjust_viewport=true, :ref:`bool<class_bool>` can_be_hidden=true, :ref:`int<class_int>` wrap_index=0 )
void :ref:`cut<class_TextEdit_method_cut>` ( )
void :ref:`deselect<class_TextEdit_method_deselect>` ( )
void :ref:`fold_all_lines<class_TextEdit_method_fold_all_lines>` ( )
void :ref:`fold_line<class_TextEdit_method_fold_line>` ( :ref:`int<class_int>` line )
:ref:`Array<class_Array>` :ref:`get_breakpoints<class_TextEdit_method_get_breakpoints>` ( ) const
:ref:`Color<class_Color>` :ref:`get_keyword_color<class_TextEdit_method_get_keyword_color>` ( :ref:`String<class_String>` keyword ) const
:ref:`String<class_String>` :ref:`get_line<class_TextEdit_method_get_line>` ( :ref:`int<class_int>` line ) const
:ref:`int<class_int>` :ref:`get_line_count<class_TextEdit_method_get_line_count>` ( ) const
:ref:`PopupMenu<class_PopupMenu>` :ref:`get_menu<class_TextEdit_method_get_menu>` ( ) const
:ref:`int<class_int>` :ref:`get_selection_from_column<class_TextEdit_method_get_selection_from_column>` ( ) const
:ref:`int<class_int>` :ref:`get_selection_from_line<class_TextEdit_method_get_selection_from_line>` ( ) const
:ref:`String<class_String>` :ref:`get_selection_text<class_TextEdit_method_get_selection_text>` ( ) const
:ref:`int<class_int>` :ref:`get_selection_to_column<class_TextEdit_method_get_selection_to_column>` ( ) const
:ref:`int<class_int>` :ref:`get_selection_to_line<class_TextEdit_method_get_selection_to_line>` ( ) const
:ref:`String<class_String>` :ref:`get_word_under_cursor<class_TextEdit_method_get_word_under_cursor>` ( ) const
:ref:`bool<class_bool>` :ref:`has_keyword_color<class_TextEdit_method_has_keyword_color>` ( :ref:`String<class_String>` keyword ) const
void :ref:`insert_text_at_cursor<class_TextEdit_method_insert_text_at_cursor>` ( :ref:`String<class_String>` text )
:ref:`bool<class_bool>` :ref:`is_folded<class_TextEdit_method_is_folded>` ( :ref:`int<class_int>` line ) const
:ref:`bool<class_bool>` :ref:`is_line_hidden<class_TextEdit_method_is_line_hidden>` ( :ref:`int<class_int>` line ) const
:ref:`bool<class_bool>` :ref:`is_selection_active<class_TextEdit_method_is_selection_active>` ( ) const
void :ref:`menu_option<class_TextEdit_method_menu_option>` ( :ref:`int<class_int>` option )
void :ref:`paste<class_TextEdit_method_paste>` ( )
void :ref:`redo<class_TextEdit_method_redo>` ( )
void :ref:`remove_breakpoints<class_TextEdit_method_remove_breakpoints>` ( )
:ref:`PackedInt32Array<class_PackedInt32Array>` :ref:`search<class_TextEdit_method_search>` ( :ref:`String<class_String>` key, :ref:`int<class_int>` flags, :ref:`int<class_int>` from_line, :ref:`int<class_int>` from_column ) const
void :ref:`select<class_TextEdit_method_select>` ( :ref:`int<class_int>` from_line, :ref:`int<class_int>` from_column, :ref:`int<class_int>` to_line, :ref:`int<class_int>` to_column )
void :ref:`select_all<class_TextEdit_method_select_all>` ( )
void :ref:`set_line_as_hidden<class_TextEdit_method_set_line_as_hidden>` ( :ref:`int<class_int>` line, :ref:`bool<class_bool>` enable )
void :ref:`toggle_fold_line<class_TextEdit_method_toggle_fold_line>` ( :ref:`int<class_int>` line )
void :ref:`undo<class_TextEdit_method_undo>` ( )
void :ref:`unfold_line<class_TextEdit_method_unfold_line>` ( :ref:`int<class_int>` line )
void :ref:`unhide_all_lines<class_TextEdit_method_unhide_all_lines>` ( )

Theme Properties

:ref:`Color<class_Color>` background_color Color( 0, 0, 0, 0 )
:ref:`Color<class_Color>` bookmark_color Color( 0.08, 0.49, 0.98, 1 )
:ref:`Color<class_Color>` brace_mismatch_color Color( 1, 0.2, 0.2, 1 )
:ref:`Color<class_Color>` breakpoint_color Color( 0.8, 0.8, 0.4, 0.2 )
:ref:`Color<class_Color>` caret_background_color Color( 0, 0, 0, 1 )
:ref:`Color<class_Color>` caret_color Color( 0.88, 0.88, 0.88, 1 )
:ref:`Color<class_Color>` code_folding_color Color( 0.8, 0.8, 0.8, 0.8 )
:ref:`StyleBox<class_StyleBox>` completion  
:ref:`Color<class_Color>` completion_background_color Color( 0.17, 0.16, 0.2, 1 )
:ref:`Color<class_Color>` completion_existing_color Color( 0.87, 0.87, 0.87, 0.13 )
:ref:`Color<class_Color>` completion_font_color Color( 0.67, 0.67, 0.67, 1 )
:ref:`int<class_int>` completion_lines 7
:ref:`int<class_int>` completion_max_width 50
:ref:`Color<class_Color>` completion_scroll_color Color( 1, 1, 1, 1 )
:ref:`int<class_int>` completion_scroll_width 3
:ref:`Color<class_Color>` completion_selected_color Color( 0.26, 0.26, 0.27, 1 )
:ref:`Color<class_Color>` current_line_color Color( 0.25, 0.25, 0.26, 0.8 )
:ref:`Color<class_Color>` executing_line_color Color( 0.2, 0.8, 0.2, 0.4 )
:ref:`StyleBox<class_StyleBox>` focus  
:ref:`Texture2D<class_Texture2D>` fold  
:ref:`Texture2D<class_Texture2D>` folded  
:ref:`Font<class_Font>` font  
:ref:`Color<class_Color>` font_color Color( 0.88, 0.88, 0.88, 1 )
:ref:`Color<class_Color>` font_color_readonly Color( 0.88, 0.88, 0.88, 0.5 )
:ref:`Color<class_Color>` font_color_selected Color( 0, 0, 0, 1 )
:ref:`Color<class_Color>` function_color Color( 0.4, 0.64, 0.81, 1 )
:ref:`Color<class_Color>` line_number_color Color( 0.67, 0.67, 0.67, 0.4 )
:ref:`int<class_int>` line_spacing 4
:ref:`Color<class_Color>` mark_color Color( 1, 0.4, 0.4, 0.4 )
:ref:`Color<class_Color>` member_variable_color Color( 0.9, 0.31, 0.35, 1 )
:ref:`StyleBox<class_StyleBox>` normal  
:ref:`Color<class_Color>` number_color Color( 0.92, 0.58, 0.2, 1 )
:ref:`StyleBox<class_StyleBox>` read_only  
:ref:`Color<class_Color>` safe_line_number_color Color( 0.67, 0.78, 0.67, 0.6 )
:ref:`Color<class_Color>` selection_color Color( 0.49, 0.49, 0.49, 1 )
:ref:`Texture2D<class_Texture2D>` space  
:ref:`Color<class_Color>` symbol_color Color( 0.94, 0.94, 0.94, 1 )
:ref:`Texture2D<class_Texture2D>` tab  
:ref:`Color<class_Color>` word_highlighted_color Color( 0.8, 0.9, 0.9, 0.15 )

Signals

Emitted when a breakpoint is placed via the breakpoint gutter.


  • cursor_changed ( )

Emitted when the cursor changes.


Emitted when the info icon is clicked.


  • request_completion ( )



  • text_changed ( )

Emitted when the text changes.

Enumerations

enum SearchFlags:

  • SEARCH_MATCH_CASE = 1 --- Match case when searching.
  • SEARCH_WHOLE_WORDS = 2 --- Match whole words when searching.
  • SEARCH_BACKWARDS = 4 --- Search from end to beginning.

enum SearchResult:


enum MenuItems:

  • MENU_CUT = 0 --- Cuts (copies and clears) the selected text.
  • MENU_COPY = 1 --- Copies the selected text.
  • MENU_PASTE = 2 --- Pastes the clipboard text over the selected text (or at the cursor's position).
  • MENU_CLEAR = 3 --- Erases the whole TextEdit text.
  • MENU_SELECT_ALL = 4 --- Selects the whole TextEdit text.
  • MENU_UNDO = 5 --- Undoes the previous action.
  • MENU_REDO = 6 --- Redoes the previous action.
  • MENU_MAX = 7 --- Represents the size of the :ref:`MenuItems<enum_TextEdit_MenuItems>` enum.

Property Descriptions

Default false
Setter set_breakpoint_gutter_enabled(value)
Getter is_breakpoint_gutter_enabled()

If true, the breakpoint gutter is visible.


Default false
Setter cursor_set_blink_enabled(value)
Getter cursor_get_blink_enabled()

If true, the caret (visual cursor) blinks.


Default 0.65
Setter cursor_set_blink_speed(value)
Getter cursor_get_blink_speed()

Duration (in seconds) of a caret's blinking cycle.


Default false
Setter cursor_set_block_mode(value)
Getter cursor_is_block_mode()

If true, the caret displays as a rectangle.

If false, the caret displays as a bar.


Default true
Setter set_right_click_moves_caret(value)
Getter is_right_click_moving_caret()

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

If false, the context menu disregards mouse location.


Default true
Setter set_context_menu_enabled(value)
Getter is_context_menu_enabled()

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


Default false
Setter set_draw_spaces(value)
Getter is_drawing_spaces()

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


Default false
Setter set_draw_tabs(value)
Getter is_drawing_tabs()

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


Default false
Setter set_draw_fold_gutter(value)
Getter is_drawing_fold_gutter()

If true, the fold gutter is visible. This enables folding groups of indented lines.


Default false
Setter set_hiding_enabled(value)
Getter is_hiding_enabled()

If true, all lines that have been set to hidden by :ref:`set_line_as_hidden<class_TextEdit_method_set_line_as_hidden>`, will not be visible.


Default false
Setter set_highlight_all_occurrences(value)
Getter is_highlight_all_occurrences_enabled()

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


Default false
Setter set_highlight_current_line(value)
Getter is_highlight_current_line_enabled()

If true, the line containing the cursor is highlighted.


Default false
Setter draw_minimap(value)
Getter is_drawing_minimap()

Default 80
Setter set_minimap_width(value)
Getter get_minimap_width()

Default false
Setter set_override_selected_font_color(value)
Getter is_overriding_selected_font_color()

Default false
Setter set_readonly(value)
Getter is_readonly()

If true, read-only mode is enabled. Existing text cannot be modified and new text cannot be added.


Default 0
Setter set_h_scroll(value)
Getter get_h_scroll()

The current horizontal scroll value.


Default 0.0
Setter set_v_scroll(value)
Getter get_v_scroll()

The current vertical scroll value.


Default true
Setter set_selecting_enabled(value)
Getter is_selecting_enabled()

Default true
Setter set_shortcut_keys_enabled(value)
Getter is_shortcut_keys_enabled()

Default false
Setter set_show_line_numbers(value)
Getter is_show_line_numbers_enabled()

If true, line numbers are displayed to the left of the text.


Default false
Setter set_smooth_scroll_enable(value)
Getter is_smooth_scroll_enabled()

If true, sets the step of the scrollbars to 0.25 which results in smoother scrolling.


Default false
Setter set_syntax_coloring(value)
Getter is_syntax_coloring_enabled()

If true, any custom color properties that have been set for this TextEdit will be visible.


Default ""
Setter set_text(value)
Getter get_text()

String value of the TextEdit.


Default 80.0
Setter set_v_scroll_speed(value)
Getter get_v_scroll_speed()

Vertical scroll sensitivity.


Default false
Setter set_wrap_enabled(value)
Getter is_wrap_enabled()

If true, enables text wrapping when it goes beyond the edge of what is visible.

Method Descriptions

Adds color region (given the delimiters) and its colors.


Adds a keyword and its :ref:`Color<class_Color>`.


Returns if the given line is foldable, that is, it has indented lines right below it.


  • void center_viewport_to_cursor ( )

  • void clear_colors ( )

Clears all custom syntax coloring information previously added with :ref:`add_color_region<class_TextEdit_method_add_color_region>` or :ref:`add_keyword_color<class_TextEdit_method_add_keyword_color>`.


  • void clear_undo_history ( )

Clears the undo history.


  • void copy ( )

Copy's the current text selection.


Returns the column the editing cursor is at.


Returns the line the editing cursor is at.


Moves the cursor at the specified column index.

If adjust_viewport is set to true, the viewport will center at the cursor position after the move occurs.


Moves the cursor at the specified line index.

If adjust_viewport is set to true, the viewport will center at the cursor position after the move occurs.

If can_be_hidden is set to true, the specified line can be hidden using :ref:`set_line_as_hidden<class_TextEdit_method_set_line_as_hidden>`.


  • void cut ( )

Cut's the current selection.


  • void deselect ( )

Deselects the current selection.


  • void fold_all_lines ( )

Folds all lines that are possible to be folded (see :ref:`can_fold<class_TextEdit_method_can_fold>`).


Folds the given line, if possible (see :ref:`can_fold<class_TextEdit_method_can_fold>`).


Returns an array containing the line number of each breakpoint.


Returns the :ref:`Color<class_Color>` of the specified keyword.


Returns the text of a specific line.


Returns the amount of total lines in the text.


Returns the :ref:`PopupMenu<class_PopupMenu>` of this TextEdit. By default, this menu is displayed when right-clicking on the TextEdit.


Returns the selection begin column.


Returns the selection begin line.


Returns the text inside the selection.


Returns the selection end column.


Returns the selection end line.


Returns a :ref:`String<class_String>` text with the word under the mouse cursor location.


Returns whether the specified keyword has a color set to it or not.


Insert the specified text at the cursor position.


Returns whether the line at the specified index is folded or not.


Returns whether the line at the specified index is hidden or not.


Returns true if the selection is active.


Triggers a right-click menu action by the specified index. See :ref:`MenuItems<enum_TextEdit_MenuItems>` for a list of available indexes.


  • void paste ( )

Paste the current selection.


  • void redo ( )

Perform redo operation.


  • void remove_breakpoints ( )

Removes all the breakpoints. This will not fire the :ref:`breakpoint_toggled<class_TextEdit_signal_breakpoint_toggled>` signal.


Perform a search inside the text. Search flags can be specified in the :ref:`SearchFlags<enum_TextEdit_SearchFlags>` enum.

Returns an empty PackedInt32Array if no result was found. Otherwise, the result line and column can be accessed at indices specified in the :ref:`SearchResult<enum_TextEdit_SearchResult>` enum, e.g:

var result = search(key, flags, line, column)
if result.size() > 0:
    # Result found.
    var res_line = result[TextEdit.SEARCH_RESULT_LINE]
    var res_column = result[TextEdit.SEARCH_RESULT_COLUMN]

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


  • void select_all ( )

Select all the text.


If true, hides the line of the specified index.


Toggle the folding of the code block at the given line.


  • void undo ( )

Perform undo operation.


Unfolds the given line, if folded.


  • void unhide_all_lines ( )

Unhide all lines that were previously set to hidden by :ref:`set_line_as_hidden<class_TextEdit_method_set_line_as_hidden>`.