<?xml version="1.0" encoding="UTF-8" ?>
<class name="TextEdit" inherits="Control" version="3.2">
	<brief_description>
		Multiline text editing control.
	</brief_description>
	<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.
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="add_color_region">
			<return type="void">
			</return>
			<argument index="0" name="begin_key" type="String">
			</argument>
			<argument index="1" name="end_key" type="String">
			</argument>
			<argument index="2" name="color" type="Color">
			</argument>
			<argument index="3" name="line_only" type="bool" default="false">
			</argument>
			<description>
				Adds color region (given the delimiters) and its colors.
			</description>
		</method>
		<method name="add_keyword_color">
			<return type="void">
			</return>
			<argument index="0" name="keyword" type="String">
			</argument>
			<argument index="1" name="color" type="Color">
			</argument>
			<description>
				Adds a [code]keyword[/code] and its [Color].
			</description>
		</method>
		<method name="can_fold" qualifiers="const">
			<return type="bool">
			</return>
			<argument index="0" name="line" type="int">
			</argument>
			<description>
				Returns if the given line is foldable, that is, it has indented lines right below it.
			</description>
		</method>
		<method name="center_viewport_to_cursor">
			<return type="void">
			</return>
			<description>
				Centers the viewport on the line the editing cursor is at. This also resets the [member scroll_horizontal] value to [code]0[/code].
			</description>
		</method>
		<method name="clear_colors">
			<return type="void">
			</return>
			<description>
				Clears all custom syntax coloring information previously added with [method add_color_region] or [method add_keyword_color].
			</description>
		</method>
		<method name="clear_undo_history">
			<return type="void">
			</return>
			<description>
				Clears the undo history.
			</description>
		</method>
		<method name="copy">
			<return type="void">
			</return>
			<description>
				Copy's the current text selection.
			</description>
		</method>
		<method name="cursor_get_column" qualifiers="const">
			<return type="int">
			</return>
			<description>
				Returns the column the editing cursor is at.
			</description>
		</method>
		<method name="cursor_get_line" qualifiers="const">
			<return type="int">
			</return>
			<description>
				Returns the line the editing cursor is at.
			</description>
		</method>
		<method name="cursor_set_column">
			<return type="void">
			</return>
			<argument index="0" name="column" type="int">
			</argument>
			<argument index="1" name="adjust_viewport" type="bool" default="true">
			</argument>
			<description>
				Moves the cursor at the specified [code]column[/code] index.
				If [code]adjust_viewport[/code] is set to [code]true[/code], the viewport will center at the cursor position after the move occurs.
			</description>
		</method>
		<method name="cursor_set_line">
			<return type="void">
			</return>
			<argument index="0" name="line" type="int">
			</argument>
			<argument index="1" name="adjust_viewport" type="bool" default="true">
			</argument>
			<argument index="2" name="can_be_hidden" type="bool" default="true">
			</argument>
			<argument index="3" name="wrap_index" type="int" default="0">
			</argument>
			<description>
				Moves the cursor at the specified [code]line[/code] index.
				If [code]adjust_viewport[/code] is set to [code]true[/code], the viewport will center at the cursor position after the move occurs.
				If [code]can_be_hidden[/code] is set to [code]true[/code], the specified [code]line[/code] can be hidden using [method set_line_as_hidden].
			</description>
		</method>
		<method name="cut">
			<return type="void">
			</return>
			<description>
				Cut's the current selection.
			</description>
		</method>
		<method name="deselect">
			<return type="void">
			</return>
			<description>
				Deselects the current selection.
			</description>
		</method>
		<method name="fold_all_lines">
			<return type="void">
			</return>
			<description>
				Folds all lines that are possible to be folded (see [method can_fold]).
			</description>
		</method>
		<method name="fold_line">
			<return type="void">
			</return>
			<argument index="0" name="line" type="int">
			</argument>
			<description>
				Folds the given line, if possible (see [method can_fold]).
			</description>
		</method>
		<method name="get_breakpoints" qualifiers="const">
			<return type="Array">
			</return>
			<description>
				Returns an array containing the line number of each breakpoint.
			</description>
		</method>
		<method name="get_keyword_color" qualifiers="const">
			<return type="Color">
			</return>
			<argument index="0" name="keyword" type="String">
			</argument>
			<description>
				Returns the [Color] of the specified [code]keyword[/code].
			</description>
		</method>
		<method name="get_line" qualifiers="const">
			<return type="String">
			</return>
			<argument index="0" name="line" type="int">
			</argument>
			<description>
				Returns the text of a specific line.
			</description>
		</method>
		<method name="get_line_count" qualifiers="const">
			<return type="int">
			</return>
			<description>
				Returns the amount of total lines in the text.
			</description>
		</method>
		<method name="get_menu" qualifiers="const">
			<return type="PopupMenu">
			</return>
			<description>
				Returns the [PopupMenu] of this [TextEdit]. By default, this menu is displayed when right-clicking on the [TextEdit].
			</description>
		</method>
		<method name="get_selection_from_column" qualifiers="const">
			<return type="int">
			</return>
			<description>
				Returns the selection begin column.
			</description>
		</method>
		<method name="get_selection_from_line" qualifiers="const">
			<return type="int">
			</return>
			<description>
				Returns the selection begin line.
			</description>
		</method>
		<method name="get_selection_text" qualifiers="const">
			<return type="String">
			</return>
			<description>
				Returns the text inside the selection.
			</description>
		</method>
		<method name="get_selection_to_column" qualifiers="const">
			<return type="int">
			</return>
			<description>
				Returns the selection end column.
			</description>
		</method>
		<method name="get_selection_to_line" qualifiers="const">
			<return type="int">
			</return>
			<description>
				Returns the selection end line.
			</description>
		</method>
		<method name="get_word_under_cursor" qualifiers="const">
			<return type="String">
			</return>
			<description>
				Returns a [String] text with the word under the caret (text cursor) location.
			</description>
		</method>
		<method name="has_keyword_color" qualifiers="const">
			<return type="bool">
			</return>
			<argument index="0" name="keyword" type="String">
			</argument>
			<description>
				Returns whether the specified [code]keyword[/code] has a color set to it or not.
			</description>
		</method>
		<method name="insert_text_at_cursor">
			<return type="void">
			</return>
			<argument index="0" name="text" type="String">
			</argument>
			<description>
				Insert the specified text at the cursor position.
			</description>
		</method>
		<method name="is_folded" qualifiers="const">
			<return type="bool">
			</return>
			<argument index="0" name="line" type="int">
			</argument>
			<description>
				Returns whether the line at the specified index is folded or not.
			</description>
		</method>
		<method name="is_line_hidden" qualifiers="const">
			<return type="bool">
			</return>
			<argument index="0" name="line" type="int">
			</argument>
			<description>
				Returns whether the line at the specified index is hidden or not.
			</description>
		</method>
		<method name="is_selection_active" qualifiers="const">
			<return type="bool">
			</return>
			<description>
				Returns [code]true[/code] if the selection is active.
			</description>
		</method>
		<method name="menu_option">
			<return type="void">
			</return>
			<argument index="0" name="option" type="int">
			</argument>
			<description>
				Triggers a right-click menu action by the specified index. See [enum MenuItems] for a list of available indexes.
			</description>
		</method>
		<method name="paste">
			<return type="void">
			</return>
			<description>
				Paste the current selection.
			</description>
		</method>
		<method name="redo">
			<return type="void">
			</return>
			<description>
				Perform redo operation.
			</description>
		</method>
		<method name="remove_breakpoints">
			<return type="void">
			</return>
			<description>
				Removes all the breakpoints. This will not fire the [signal breakpoint_toggled] signal.
			</description>
		</method>
		<method name="search" qualifiers="const">
			<return type="PoolIntArray">
			</return>
			<argument index="0" name="key" type="String">
			</argument>
			<argument index="1" name="flags" type="int">
			</argument>
			<argument index="2" name="from_line" type="int">
			</argument>
			<argument index="3" name="from_column" type="int">
			</argument>
			<description>
				Perform a search inside the text. Search flags can be specified in the [enum SearchFlags] enum.
				Returns an empty [code]PoolIntArray[/code] if no result was found. Otherwise, the result line and column can be accessed at indices specified in the [enum SearchResult] enum, e.g:
				[codeblock]
				var result = search(key, flags, line, column)
				if result.size() &gt; 0:
				    # Result found.
				    var res_line = result[TextEdit.SEARCH_RESULT_LINE]
				    var res_column = result[TextEdit.SEARCH_RESULT_COLUMN]
				[/codeblock]
			</description>
		</method>
		<method name="select">
			<return type="void">
			</return>
			<argument index="0" name="from_line" type="int">
			</argument>
			<argument index="1" name="from_column" type="int">
			</argument>
			<argument index="2" name="to_line" type="int">
			</argument>
			<argument index="3" name="to_column" type="int">
			</argument>
			<description>
				Perform selection, from line/column to line/column.
				If [member selecting_enabled] is [code]false[/code], no selection will occur.
			</description>
		</method>
		<method name="select_all">
			<return type="void">
			</return>
			<description>
				Select all the text.
				If [member selecting_enabled] is [code]false[/code], no selection will occur.
			</description>
		</method>
		<method name="set_line">
			<return type="void">
			</return>
			<argument index="0" name="line" type="int">
			</argument>
			<argument index="1" name="new_text" type="String">
			</argument>
			<description>
				Sets the text for a specific line.
			</description>
		</method>
		<method name="set_line_as_hidden">
			<return type="void">
			</return>
			<argument index="0" name="line" type="int">
			</argument>
			<argument index="1" name="enable" type="bool">
			</argument>
			<description>
				If [code]true[/code], hides the line of the specified index.
			</description>
		</method>
		<method name="toggle_fold_line">
			<return type="void">
			</return>
			<argument index="0" name="line" type="int">
			</argument>
			<description>
				Toggle the folding of the code block at the given line.
			</description>
		</method>
		<method name="undo">
			<return type="void">
			</return>
			<description>
				Perform undo operation.
			</description>
		</method>
		<method name="unfold_line">
			<return type="void">
			</return>
			<argument index="0" name="line" type="int">
			</argument>
			<description>
				Unfolds the given line, if folded.
			</description>
		</method>
		<method name="unhide_all_lines">
			<return type="void">
			</return>
			<description>
				Unhide all lines that were previously set to hidden by [method set_line_as_hidden].
			</description>
		</method>
	</methods>
	<members>
		<member name="breakpoint_gutter" type="bool" setter="set_breakpoint_gutter_enabled" getter="is_breakpoint_gutter_enabled" default="false">
			If [code]true[/code], the breakpoint gutter is visible.
		</member>
		<member name="caret_blink" type="bool" setter="cursor_set_blink_enabled" getter="cursor_get_blink_enabled" default="false">
			If [code]true[/code], the caret (visual cursor) blinks.
		</member>
		<member name="caret_blink_speed" type="float" setter="cursor_set_blink_speed" getter="cursor_get_blink_speed" default="0.65">
			Duration (in seconds) of a caret's blinking cycle.
		</member>
		<member name="caret_block_mode" type="bool" setter="cursor_set_block_mode" getter="cursor_is_block_mode" default="false">
			If [code]true[/code], the caret displays as a rectangle.
			If [code]false[/code], the caret displays as a bar.
		</member>
		<member name="caret_moving_by_right_click" type="bool" setter="set_right_click_moves_caret" getter="is_right_click_moving_caret" default="true">
			If [code]true[/code], a right-click moves the cursor at the mouse position before displaying the context menu.
			If [code]false[/code], the context menu disregards mouse location.
		</member>
		<member name="context_menu_enabled" type="bool" setter="set_context_menu_enabled" getter="is_context_menu_enabled" default="true">
			If [code]true[/code], a right-click displays the context menu.
		</member>
		<member name="draw_spaces" type="bool" setter="set_draw_spaces" getter="is_drawing_spaces" default="false">
			If [code]true[/code], the "space" character will have a visible representation.
		</member>
		<member name="draw_tabs" type="bool" setter="set_draw_tabs" getter="is_drawing_tabs" default="false">
			If [code]true[/code], the "tab" character will have a visible representation.
		</member>
		<member name="focus_mode" type="int" setter="set_focus_mode" getter="get_focus_mode" override="true" enum="Control.FocusMode" default="2" />
		<member name="fold_gutter" type="bool" setter="set_draw_fold_gutter" getter="is_drawing_fold_gutter" default="false">
			If [code]true[/code], the fold gutter is visible. This enables folding groups of indented lines.
		</member>
		<member name="hiding_enabled" type="bool" setter="set_hiding_enabled" getter="is_hiding_enabled" default="false">
			If [code]true[/code], all lines that have been set to hidden by [method set_line_as_hidden], will not be visible.
		</member>
		<member name="highlight_all_occurrences" type="bool" setter="set_highlight_all_occurrences" getter="is_highlight_all_occurrences_enabled" default="false">
			If [code]true[/code], all occurrences of the selected text will be highlighted.
		</member>
		<member name="highlight_current_line" type="bool" setter="set_highlight_current_line" getter="is_highlight_current_line_enabled" default="false">
			If [code]true[/code], the line containing the cursor is highlighted.
		</member>
		<member name="minimap_draw" type="bool" setter="draw_minimap" getter="is_drawing_minimap" default="false">
			If [code]true[/code], a minimap is shown, providing an outline of your source code.
		</member>
		<member name="minimap_width" type="int" setter="set_minimap_width" getter="get_minimap_width" default="80">
			The width, in pixels, of the minimap.
		</member>
		<member name="mouse_default_cursor_shape" type="int" setter="set_default_cursor_shape" getter="get_default_cursor_shape" override="true" enum="Control.CursorShape" default="1" />
		<member name="override_selected_font_color" type="bool" setter="set_override_selected_font_color" getter="is_overriding_selected_font_color" default="false">
			If [code]true[/code], custom [code]font_color_selected[/code] will be used for selected text.
		</member>
		<member name="readonly" type="bool" setter="set_readonly" getter="is_readonly" default="false">
			If [code]true[/code], read-only mode is enabled. Existing text cannot be modified and new text cannot be added.
		</member>
		<member name="scroll_horizontal" type="int" setter="set_h_scroll" getter="get_h_scroll" default="0">
			The current horizontal scroll value.
		</member>
		<member name="scroll_vertical" type="float" setter="set_v_scroll" getter="get_v_scroll" default="0.0">
			The current vertical scroll value.
		</member>
		<member name="selecting_enabled" type="bool" setter="set_selecting_enabled" getter="is_selecting_enabled" default="true">
			If [code]true[/code], text can be selected.
			If [code]false[/code], text can not be selected by the user or by the [method select] or [method select_all] methods.
		</member>
		<member name="shortcut_keys_enabled" type="bool" setter="set_shortcut_keys_enabled" getter="is_shortcut_keys_enabled" default="true">
			If [code]true[/code], shortcut keys for context menu items are enabled, even if the context menu is disabled.
		</member>
		<member name="show_line_numbers" type="bool" setter="set_show_line_numbers" getter="is_show_line_numbers_enabled" default="false">
			If [code]true[/code], line numbers are displayed to the left of the text.
		</member>
		<member name="smooth_scrolling" type="bool" setter="set_smooth_scroll_enable" getter="is_smooth_scroll_enabled" default="false">
			If [code]true[/code], sets the [code]step[/code] of the scrollbars to [code]0.25[/code] which results in smoother scrolling.
		</member>
		<member name="syntax_highlighting" type="bool" setter="set_syntax_coloring" getter="is_syntax_coloring_enabled" default="false">
			If [code]true[/code], any custom color properties that have been set for this [TextEdit] will be visible.
		</member>
		<member name="text" type="String" setter="set_text" getter="get_text" default="&quot;&quot;">
			String value of the [TextEdit].
		</member>
		<member name="v_scroll_speed" type="float" setter="set_v_scroll_speed" getter="get_v_scroll_speed" default="80.0">
			Vertical scroll sensitivity.
		</member>
		<member name="virtual_keyboard_enabled" type="bool" setter="set_virtual_keyboard_enabled" getter="is_virtual_keyboard_enabled" default="true">
			If [code]true[/code], the native virtual keyboard is shown when focused on platforms that support it.
		</member>
		<member name="wrap_enabled" type="bool" setter="set_wrap_enabled" getter="is_wrap_enabled" default="false">
			If [code]true[/code], enables text wrapping when it goes beyond the edge of what is visible.
		</member>
	</members>
	<signals>
		<signal name="breakpoint_toggled">
			<argument index="0" name="row" type="int">
			</argument>
			<description>
				Emitted when a breakpoint is placed via the breakpoint gutter.
			</description>
		</signal>
		<signal name="cursor_changed">
			<description>
				Emitted when the cursor changes.
			</description>
		</signal>
		<signal name="info_clicked">
			<argument index="0" name="row" type="int">
			</argument>
			<argument index="1" name="info" type="String">
			</argument>
			<description>
				Emitted when the info icon is clicked.
			</description>
		</signal>
		<signal name="request_completion">
			<description>
			</description>
		</signal>
		<signal name="symbol_lookup">
			<argument index="0" name="symbol" type="String">
			</argument>
			<argument index="1" name="row" type="int">
			</argument>
			<argument index="2" name="column" type="int">
			</argument>
			<description>
			</description>
		</signal>
		<signal name="text_changed">
			<description>
				Emitted when the text changes.
			</description>
		</signal>
	</signals>
	<constants>
		<constant name="SEARCH_MATCH_CASE" value="1" enum="SearchFlags">
			Match case when searching.
		</constant>
		<constant name="SEARCH_WHOLE_WORDS" value="2" enum="SearchFlags">
			Match whole words when searching.
		</constant>
		<constant name="SEARCH_BACKWARDS" value="4" enum="SearchFlags">
			Search from end to beginning.
		</constant>
		<constant name="SEARCH_RESULT_COLUMN" value="0" enum="SearchResult">
			Used to access the result column from [method search].
		</constant>
		<constant name="SEARCH_RESULT_LINE" value="1" enum="SearchResult">
			Used to access the result line from [method search].
		</constant>
		<constant name="MENU_CUT" value="0" enum="MenuItems">
			Cuts (copies and clears) the selected text.
		</constant>
		<constant name="MENU_COPY" value="1" enum="MenuItems">
			Copies the selected text.
		</constant>
		<constant name="MENU_PASTE" value="2" enum="MenuItems">
			Pastes the clipboard text over the selected text (or at the cursor's position).
		</constant>
		<constant name="MENU_CLEAR" value="3" enum="MenuItems">
			Erases the whole [TextEdit] text.
		</constant>
		<constant name="MENU_SELECT_ALL" value="4" enum="MenuItems">
			Selects the whole [TextEdit] text.
		</constant>
		<constant name="MENU_UNDO" value="5" enum="MenuItems">
			Undoes the previous action.
		</constant>
		<constant name="MENU_REDO" value="6" enum="MenuItems">
			Redoes the previous action.
		</constant>
		<constant name="MENU_MAX" value="7" enum="MenuItems">
			Represents the size of the [enum MenuItems] enum.
		</constant>
	</constants>
	<theme_items>
		<theme_item name="background_color" type="Color" default="Color( 0, 0, 0, 0 )">
			Sets the background [Color] of this [TextEdit]. [member syntax_highlighting] has to be enabled.
		</theme_item>
		<theme_item name="bookmark_color" type="Color" default="Color( 0.08, 0.49, 0.98, 1 )">
			Sets the [Color] of the bookmark marker. [member syntax_highlighting] has to be enabled.
		</theme_item>
		<theme_item name="brace_mismatch_color" type="Color" default="Color( 1, 0.2, 0.2, 1 )">
		</theme_item>
		<theme_item name="breakpoint_color" type="Color" default="Color( 0.8, 0.8, 0.4, 0.2 )">
			Sets the [Color] of the breakpoints. [member breakpoint_gutter] has to be enabled.
		</theme_item>
		<theme_item name="caret_background_color" type="Color" default="Color( 0, 0, 0, 1 )">
		</theme_item>
		<theme_item name="caret_color" type="Color" default="Color( 0.88, 0.88, 0.88, 1 )">
		</theme_item>
		<theme_item name="code_folding_color" type="Color" default="Color( 0.8, 0.8, 0.8, 0.8 )">
		</theme_item>
		<theme_item name="completion" type="StyleBox">
		</theme_item>
		<theme_item name="completion_background_color" type="Color" default="Color( 0.17, 0.16, 0.2, 1 )">
		</theme_item>
		<theme_item name="completion_existing_color" type="Color" default="Color( 0.87, 0.87, 0.87, 0.13 )">
		</theme_item>
		<theme_item name="completion_font_color" type="Color" default="Color( 0.67, 0.67, 0.67, 1 )">
		</theme_item>
		<theme_item name="completion_lines" type="int" default="7">
		</theme_item>
		<theme_item name="completion_max_width" type="int" default="50">
		</theme_item>
		<theme_item name="completion_scroll_color" type="Color" default="Color( 1, 1, 1, 1 )">
		</theme_item>
		<theme_item name="completion_scroll_width" type="int" default="3">
		</theme_item>
		<theme_item name="completion_selected_color" type="Color" default="Color( 0.26, 0.26, 0.27, 1 )">
		</theme_item>
		<theme_item name="current_line_color" type="Color" default="Color( 0.25, 0.25, 0.26, 0.8 )">
			Sets the [Color] of the breakpoints. [member breakpoint_gutter] has to be enabled.
		</theme_item>
		<theme_item name="executing_line_color" type="Color" default="Color( 0.2, 0.8, 0.2, 0.4 )">
		</theme_item>
		<theme_item name="focus" type="StyleBox">
		</theme_item>
		<theme_item name="fold" type="Texture">
		</theme_item>
		<theme_item name="folded" type="Texture">
		</theme_item>
		<theme_item name="font" type="Font">
			Sets the default [Font].
		</theme_item>
		<theme_item name="font_color" type="Color" default="Color( 0.88, 0.88, 0.88, 1 )">
			Sets the font [Color].
		</theme_item>
		<theme_item name="font_color_readonly" type="Color" default="Color( 0.88, 0.88, 0.88, 0.5 )">
		</theme_item>
		<theme_item name="font_color_selected" type="Color" default="Color( 0, 0, 0, 1 )">
			Sets the [Color] of the selected text. [member override_selected_font_color] has to be enabled.
		</theme_item>
		<theme_item name="function_color" type="Color" default="Color( 0.4, 0.64, 0.81, 1 )">
		</theme_item>
		<theme_item name="line_number_color" type="Color" default="Color( 0.67, 0.67, 0.67, 0.4 )">
			Sets the [Color] of the line numbers. [member show_line_numbers] has to be enabled.
		</theme_item>
		<theme_item name="line_spacing" type="int" default="4">
			Sets the spacing between the lines.
		</theme_item>
		<theme_item name="mark_color" type="Color" default="Color( 1, 0.4, 0.4, 0.4 )">
			Sets the [Color] of marked text.
		</theme_item>
		<theme_item name="member_variable_color" type="Color" default="Color( 0.9, 0.31, 0.35, 1 )">
		</theme_item>
		<theme_item name="normal" type="StyleBox">
			Sets the [StyleBox] of this [TextEdit].
		</theme_item>
		<theme_item name="number_color" type="Color" default="Color( 0.92, 0.58, 0.2, 1 )">
		</theme_item>
		<theme_item name="read_only" type="StyleBox">
			Sets the [StyleBox] of this [TextEdit] when [member readonly] is enabled.
		</theme_item>
		<theme_item name="safe_line_number_color" type="Color" default="Color( 0.67, 0.78, 0.67, 0.6 )">
		</theme_item>
		<theme_item name="selection_color" type="Color" default="Color( 0.49, 0.49, 0.49, 1 )">
			Sets the highlight [Color] of text selections.
		</theme_item>
		<theme_item name="space" type="Texture">
		</theme_item>
		<theme_item name="symbol_color" type="Color" default="Color( 0.94, 0.94, 0.94, 1 )">
		</theme_item>
		<theme_item name="tab" type="Texture">
			Sets a custom [Texture] for tab text characters.
		</theme_item>
		<theme_item name="word_highlighted_color" type="Color" default="Color( 0.8, 0.9, 0.9, 0.15 )">
			Sets the highlight [Color] of multiple occurrences. [member highlight_all_occurrences] has to be enabled.
		</theme_item>
	</theme_items>
</class>
