<?xml version="1.0" encoding="UTF-8" ?>
<class name="CodeEdit" inherits="TextEdit" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		A multiline text editor designed for editing code.
	</brief_description>
	<description>
		CodeEdit is a specialized [TextEdit] designed for editing plain text code files. It has many features commonly found in code editors such as line numbers, line folding, code completion, indent management, and string/comment management.
		[b]Note:[/b] Regardless of locale, [CodeEdit] will by default always use left-to-right text direction to correctly display source code.
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="_confirm_code_completion" qualifiers="virtual">
			<return type="void" />
			<param index="0" name="replace" type="bool" />
			<description>
				Override this method to define how the selected entry should be inserted. If [param replace] is [code]true[/code], any existing text should be replaced.
			</description>
		</method>
		<method name="_filter_code_completion_candidates" qualifiers="virtual const">
			<return type="Dictionary[]" />
			<param index="0" name="candidates" type="Dictionary[]" />
			<description>
				Override this method to define what items in [param candidates] should be displayed.
				Both [param candidates] and the return is a [Array] of [Dictionary], see [method get_code_completion_option] for [Dictionary] content.
			</description>
		</method>
		<method name="_request_code_completion" qualifiers="virtual">
			<return type="void" />
			<param index="0" name="force" type="bool" />
			<description>
				Override this method to define what happens when the user requests code completion. If [param force] is [code]true[/code], any checks should be bypassed.
			</description>
		</method>
		<method name="add_auto_brace_completion_pair">
			<return type="void" />
			<param index="0" name="start_key" type="String" />
			<param index="1" name="end_key" type="String" />
			<description>
				Adds a brace pair.
				Both the start and end keys must be symbols. Only the start key has to be unique.
			</description>
		</method>
		<method name="add_code_completion_option">
			<return type="void" />
			<param index="0" name="type" type="int" enum="CodeEdit.CodeCompletionKind" />
			<param index="1" name="display_text" type="String" />
			<param index="2" name="insert_text" type="String" />
			<param index="3" name="text_color" type="Color" default="Color(1, 1, 1, 1)" />
			<param index="4" name="icon" type="Resource" default="null" />
			<param index="5" name="value" type="Variant" default="null" />
			<param index="6" name="location" type="int" default="1024" />
			<description>
				Submits an item to the queue of potential candidates for the autocomplete menu. Call [method update_code_completion_options] to update the list.
				[param location] indicates location of the option relative to the location of the code completion query. See [enum CodeEdit.CodeCompletionLocation] for how to set this value.
				[b]Note:[/b] This list will replace all current candidates.
			</description>
		</method>
		<method name="add_comment_delimiter">
			<return type="void" />
			<param index="0" name="start_key" type="String" />
			<param index="1" name="end_key" type="String" />
			<param index="2" name="line_only" type="bool" default="false" />
			<description>
				Adds a comment delimiter from [param start_key] to [param end_key]. Both keys should be symbols, and [param start_key] must not be shared with other delimiters.
				If [param line_only] is [code]true[/code] or [param end_key] is an empty [String], the region does not carry over to the next line.
			</description>
		</method>
		<method name="add_string_delimiter">
			<return type="void" />
			<param index="0" name="start_key" type="String" />
			<param index="1" name="end_key" type="String" />
			<param index="2" name="line_only" type="bool" default="false" />
			<description>
				Defines a string delimiter from [param start_key] to [param end_key]. Both keys should be symbols, and [param start_key] must not be shared with other delimiters.
				If [param line_only] is [code]true[/code] or [param end_key] is an empty [String], the region does not carry over to the next line.
			</description>
		</method>
		<method name="can_fold_line" qualifiers="const">
			<return type="bool" />
			<param index="0" name="line" type="int" />
			<description>
				Returns [code]true[/code] if the given line is foldable. A line is foldable if it is the start of a valid code region (see [method get_code_region_start_tag]), if it is the start of a comment or string block, or if the next non-empty line is more indented (see [method TextEdit.get_indent_level]).
			</description>
		</method>
		<method name="cancel_code_completion">
			<return type="void" />
			<description>
				Cancels the autocomplete menu.
			</description>
		</method>
		<method name="clear_bookmarked_lines">
			<return type="void" />
			<description>
				Clears all bookmarked lines.
			</description>
		</method>
		<method name="clear_breakpointed_lines">
			<return type="void" />
			<description>
				Clears all breakpointed lines.
			</description>
		</method>
		<method name="clear_comment_delimiters">
			<return type="void" />
			<description>
				Removes all comment delimiters.
			</description>
		</method>
		<method name="clear_executing_lines">
			<return type="void" />
			<description>
				Clears all executed lines.
			</description>
		</method>
		<method name="clear_string_delimiters">
			<return type="void" />
			<description>
				Removes all string delimiters.
			</description>
		</method>
		<method name="confirm_code_completion">
			<return type="void" />
			<param index="0" name="replace" type="bool" default="false" />
			<description>
				Inserts the selected entry into the text. If [param replace] is [code]true[/code], any existing text is replaced rather than merged.
			</description>
		</method>
		<method name="convert_indent">
			<return type="void" />
			<param index="0" name="from_line" type="int" default="-1" />
			<param index="1" name="to_line" type="int" default="-1" />
			<description>
				Converts the indents of lines between [param from_line] and [param to_line] to tabs or spaces as set by [member indent_use_spaces].
				Values of [code]-1[/code] convert the entire text.
			</description>
		</method>
		<method name="create_code_region">
			<return type="void" />
			<description>
				Creates a new code region with the selection. At least one single line comment delimiter have to be defined (see [method add_comment_delimiter]).
				A code region is a part of code that is highlighted when folded and can help organize your script.
				Code region start and end tags can be customized (see [method set_code_region_tags]).
				Code regions are delimited using start and end tags (respectively [code]region[/code] and [code]endregion[/code] by default) preceded by one line comment delimiter. (eg. [code]#region[/code] and [code]#endregion[/code])
			</description>
		</method>
		<method name="delete_lines">
			<return type="void" />
			<description>
				Deletes all lines that are selected or have a caret on them.
			</description>
		</method>
		<method name="do_indent">
			<return type="void" />
			<description>
				If there is no selection, indentation is inserted at the caret. Otherwise, the selected lines are indented like [method indent_lines]. Equivalent to the [member ProjectSettings.input/ui_text_indent] action. The indentation characters used depend on [member indent_use_spaces] and [member indent_size].
			</description>
		</method>
		<method name="duplicate_lines">
			<return type="void" />
			<description>
				Duplicates all lines currently selected with any caret. Duplicates the entire line beneath the current one no matter where the caret is within the line.
			</description>
		</method>
		<method name="duplicate_selection">
			<return type="void" />
			<description>
				Duplicates all selected text and duplicates all lines with a caret on them.
			</description>
		</method>
		<method name="fold_all_lines">
			<return type="void" />
			<description>
				Folds all lines that are possible to be folded (see [method can_fold_line]).
			</description>
		</method>
		<method name="fold_line">
			<return type="void" />
			<param index="0" name="line" type="int" />
			<description>
				Folds the given line, if possible (see [method can_fold_line]).
			</description>
		</method>
		<method name="get_auto_brace_completion_close_key" qualifiers="const">
			<return type="String" />
			<param index="0" name="open_key" type="String" />
			<description>
				Gets the matching auto brace close key for [param open_key].
			</description>
		</method>
		<method name="get_bookmarked_lines" qualifiers="const">
			<return type="PackedInt32Array" />
			<description>
				Gets all bookmarked lines.
			</description>
		</method>
		<method name="get_breakpointed_lines" qualifiers="const">
			<return type="PackedInt32Array" />
			<description>
				Gets all breakpointed lines.
			</description>
		</method>
		<method name="get_code_completion_option" qualifiers="const">
			<return type="Dictionary" />
			<param index="0" name="index" type="int" />
			<description>
				Gets the completion option at [param index]. The return [Dictionary] has the following key-values:
				[code]kind[/code]: [enum CodeCompletionKind]
				[code]display_text[/code]: Text that is shown on the autocomplete menu.
				[code]insert_text[/code]: Text that is to be inserted when this item is selected.
				[code]font_color[/code]: Color of the text on the autocomplete menu.
				[code]icon[/code]: Icon to draw on the autocomplete menu.
				[code]default_value[/code]: Value of the symbol.
			</description>
		</method>
		<method name="get_code_completion_options" qualifiers="const">
			<return type="Dictionary[]" />
			<description>
				Gets all completion options, see [method get_code_completion_option] for return content.
			</description>
		</method>
		<method name="get_code_completion_selected_index" qualifiers="const">
			<return type="int" />
			<description>
				Gets the index of the current selected completion option.
			</description>
		</method>
		<method name="get_code_region_end_tag" qualifiers="const">
			<return type="String" />
			<description>
				Returns the code region end tag (without comment delimiter).
			</description>
		</method>
		<method name="get_code_region_start_tag" qualifiers="const">
			<return type="String" />
			<description>
				Returns the code region start tag (without comment delimiter).
			</description>
		</method>
		<method name="get_delimiter_end_key" qualifiers="const">
			<return type="String" />
			<param index="0" name="delimiter_index" type="int" />
			<description>
				Gets the end key for a string or comment region index.
			</description>
		</method>
		<method name="get_delimiter_end_position" qualifiers="const">
			<return type="Vector2" />
			<param index="0" name="line" type="int" />
			<param index="1" name="column" type="int" />
			<description>
				If [param line] [param column] is in a string or comment, returns the end position of the region. If not or no end could be found, both [Vector2] values will be [code]-1[/code].
			</description>
		</method>
		<method name="get_delimiter_start_key" qualifiers="const">
			<return type="String" />
			<param index="0" name="delimiter_index" type="int" />
			<description>
				Gets the start key for a string or comment region index.
			</description>
		</method>
		<method name="get_delimiter_start_position" qualifiers="const">
			<return type="Vector2" />
			<param index="0" name="line" type="int" />
			<param index="1" name="column" type="int" />
			<description>
				If [param line] [param column] is in a string or comment, returns the start position of the region. If not or no start could be found, both [Vector2] values will be [code]-1[/code].
			</description>
		</method>
		<method name="get_executing_lines" qualifiers="const">
			<return type="PackedInt32Array" />
			<description>
				Gets all executing lines.
			</description>
		</method>
		<method name="get_folded_lines" qualifiers="const">
			<return type="int[]" />
			<description>
				Returns all lines that are currently folded.
			</description>
		</method>
		<method name="get_text_for_code_completion" qualifiers="const">
			<return type="String" />
			<description>
				Returns the full text with char [code]0xFFFF[/code] at the caret location.
			</description>
		</method>
		<method name="get_text_for_symbol_lookup" qualifiers="const">
			<return type="String" />
			<description>
				Returns the full text with char [code]0xFFFF[/code] at the cursor location.
			</description>
		</method>
		<method name="get_text_with_cursor_char" qualifiers="const">
			<return type="String" />
			<param index="0" name="line" type="int" />
			<param index="1" name="column" type="int" />
			<description>
				Returns the full text with char [code]0xFFFF[/code] at the specified location.
			</description>
		</method>
		<method name="has_auto_brace_completion_close_key" qualifiers="const">
			<return type="bool" />
			<param index="0" name="close_key" type="String" />
			<description>
				Returns [code]true[/code] if close key [param close_key] exists.
			</description>
		</method>
		<method name="has_auto_brace_completion_open_key" qualifiers="const">
			<return type="bool" />
			<param index="0" name="open_key" type="String" />
			<description>
				Returns [code]true[/code] if open key [param open_key] exists.
			</description>
		</method>
		<method name="has_comment_delimiter" qualifiers="const">
			<return type="bool" />
			<param index="0" name="start_key" type="String" />
			<description>
				Returns [code]true[/code] if comment [param start_key] exists.
			</description>
		</method>
		<method name="has_string_delimiter" qualifiers="const">
			<return type="bool" />
			<param index="0" name="start_key" type="String" />
			<description>
				Returns [code]true[/code] if string [param start_key] exists.
			</description>
		</method>
		<method name="indent_lines">
			<return type="void" />
			<description>
				Indents all lines that are selected or have a caret on them. Uses spaces or a tab depending on [member indent_use_spaces]. See [method unindent_lines].
			</description>
		</method>
		<method name="is_in_comment" qualifiers="const">
			<return type="int" />
			<param index="0" name="line" type="int" />
			<param index="1" name="column" type="int" default="-1" />
			<description>
				Returns delimiter index if [param line] [param column] is in a comment. If [param column] is not provided, will return delimiter index if the entire [param line] is a comment. Otherwise [code]-1[/code].
			</description>
		</method>
		<method name="is_in_string" qualifiers="const">
			<return type="int" />
			<param index="0" name="line" type="int" />
			<param index="1" name="column" type="int" default="-1" />
			<description>
				Returns the delimiter index if [param line] [param column] is in a string. If [param column] is not provided, will return the delimiter index if the entire [param line] is a string. Otherwise [code]-1[/code].
			</description>
		</method>
		<method name="is_line_bookmarked" qualifiers="const">
			<return type="bool" />
			<param index="0" name="line" type="int" />
			<description>
				Returns [code]true[/code] if the given line is bookmarked. See [method set_line_as_bookmarked].
			</description>
		</method>
		<method name="is_line_breakpointed" qualifiers="const">
			<return type="bool" />
			<param index="0" name="line" type="int" />
			<description>
				Returns [code]true[/code] if the given line is breakpointed. See [method set_line_as_breakpoint].
			</description>
		</method>
		<method name="is_line_code_region_end" qualifiers="const">
			<return type="bool" />
			<param index="0" name="line" type="int" />
			<description>
				Returns [code]true[/code] if the given line is a code region end. See [method set_code_region_tags].
			</description>
		</method>
		<method name="is_line_code_region_start" qualifiers="const">
			<return type="bool" />
			<param index="0" name="line" type="int" />
			<description>
				Returns [code]true[/code] if the given line is a code region start. See [method set_code_region_tags].
			</description>
		</method>
		<method name="is_line_executing" qualifiers="const">
			<return type="bool" />
			<param index="0" name="line" type="int" />
			<description>
				Returns [code]true[/code] if the given line is marked as executing. See [method set_line_as_executing].
			</description>
		</method>
		<method name="is_line_folded" qualifiers="const">
			<return type="bool" />
			<param index="0" name="line" type="int" />
			<description>
				Returns [code]true[/code] if the given line is folded. See [method fold_line].
			</description>
		</method>
		<method name="move_lines_down">
			<return type="void" />
			<description>
				Moves all lines down that are selected or have a caret on them.
			</description>
		</method>
		<method name="move_lines_up">
			<return type="void" />
			<description>
				Moves all lines up that are selected or have a caret on them.
			</description>
		</method>
		<method name="remove_comment_delimiter">
			<return type="void" />
			<param index="0" name="start_key" type="String" />
			<description>
				Removes the comment delimiter with [param start_key].
			</description>
		</method>
		<method name="remove_string_delimiter">
			<return type="void" />
			<param index="0" name="start_key" type="String" />
			<description>
				Removes the string delimiter with [param start_key].
			</description>
		</method>
		<method name="request_code_completion">
			<return type="void" />
			<param index="0" name="force" type="bool" default="false" />
			<description>
				Emits [signal code_completion_requested], if [param force] is [code]true[/code] will bypass all checks. Otherwise will check that the caret is in a word or in front of a prefix. Will ignore the request if all current options are of type file path, node path, or signal.
			</description>
		</method>
		<method name="set_code_completion_selected_index">
			<return type="void" />
			<param index="0" name="index" type="int" />
			<description>
				Sets the current selected completion option.
			</description>
		</method>
		<method name="set_code_hint">
			<return type="void" />
			<param index="0" name="code_hint" type="String" />
			<description>
				Sets the code hint text. Pass an empty string to clear.
			</description>
		</method>
		<method name="set_code_hint_draw_below">
			<return type="void" />
			<param index="0" name="draw_below" type="bool" />
			<description>
				If [code]true[/code], the code hint will draw below the main caret. If [code]false[/code], the code hint will draw above the main caret. See [method set_code_hint].
			</description>
		</method>
		<method name="set_code_region_tags">
			<return type="void" />
			<param index="0" name="start" type="String" default="&quot;region&quot;" />
			<param index="1" name="end" type="String" default="&quot;endregion&quot;" />
			<description>
				Sets the code region start and end tags (without comment delimiter).
			</description>
		</method>
		<method name="set_line_as_bookmarked">
			<return type="void" />
			<param index="0" name="line" type="int" />
			<param index="1" name="bookmarked" type="bool" />
			<description>
				Sets the given line as bookmarked. If [code]true[/code] and [member gutters_draw_bookmarks] is [code]true[/code], draws the [theme_item bookmark] icon in the gutter for this line. See [method get_bookmarked_lines] and [method is_line_bookmarked].
			</description>
		</method>
		<method name="set_line_as_breakpoint">
			<return type="void" />
			<param index="0" name="line" type="int" />
			<param index="1" name="breakpointed" type="bool" />
			<description>
				Sets the given line as a breakpoint. If [code]true[/code] and [member gutters_draw_breakpoints_gutter] is [code]true[/code], draws the [theme_item breakpoint] icon in the gutter for this line. See [method get_breakpointed_lines] and [method is_line_breakpointed].
			</description>
		</method>
		<method name="set_line_as_executing">
			<return type="void" />
			<param index="0" name="line" type="int" />
			<param index="1" name="executing" type="bool" />
			<description>
				Sets the given line as executing. If [code]true[/code] and [member gutters_draw_executing_lines] is [code]true[/code], draws the [theme_item executing_line] icon in the gutter for this line. See [method get_executing_lines] and [method is_line_executing].
			</description>
		</method>
		<method name="set_symbol_lookup_word_as_valid">
			<return type="void" />
			<param index="0" name="valid" type="bool" />
			<description>
				Sets the symbol emitted by [signal symbol_validate] as a valid lookup.
			</description>
		</method>
		<method name="toggle_foldable_line">
			<return type="void" />
			<param index="0" name="line" type="int" />
			<description>
				Toggle the folding of the code block at the given line.
			</description>
		</method>
		<method name="toggle_foldable_lines_at_carets">
			<return type="void" />
			<description>
				Toggle the folding of the code block on all lines with a caret on them.
			</description>
		</method>
		<method name="unfold_all_lines">
			<return type="void" />
			<description>
				Unfolds all lines that are folded.
			</description>
		</method>
		<method name="unfold_line">
			<return type="void" />
			<param index="0" name="line" type="int" />
			<description>
				Unfolds the given line if it is folded or if it is hidden under a folded line.
			</description>
		</method>
		<method name="unindent_lines">
			<return type="void" />
			<description>
				Unindents all lines that are selected or have a caret on them. Uses spaces or a tab depending on [member indent_use_spaces]. Equivalent to the [member ProjectSettings.input/ui_text_dedent] action. See [method indent_lines].
			</description>
		</method>
		<method name="update_code_completion_options">
			<return type="void" />
			<param index="0" name="force" type="bool" />
			<description>
				Submits all completion options added with [method add_code_completion_option]. Will try to force the autocomplete menu to popup, if [param force] is [code]true[/code].
				[b]Note:[/b] This will replace all current candidates.
			</description>
		</method>
	</methods>
	<members>
		<member name="auto_brace_completion_enabled" type="bool" setter="set_auto_brace_completion_enabled" getter="is_auto_brace_completion_enabled" default="false">
			If [code]true[/code], uses [member auto_brace_completion_pairs] to automatically insert the closing brace when the opening brace is inserted by typing or autocompletion. Also automatically removes the closing brace when using backspace on the opening brace.
		</member>
		<member name="auto_brace_completion_highlight_matching" type="bool" setter="set_highlight_matching_braces_enabled" getter="is_highlight_matching_braces_enabled" default="false">
			If [code]true[/code], highlights brace pairs when the caret is on either one, using [member auto_brace_completion_pairs]. If matching, the pairs will be underlined. If a brace is unmatched, it is colored with [theme_item brace_mismatch_color].
		</member>
		<member name="auto_brace_completion_pairs" type="Dictionary" setter="set_auto_brace_completion_pairs" getter="get_auto_brace_completion_pairs" default="{ &quot;\&quot;&quot;: &quot;\&quot;&quot;, &quot;&apos;&quot;: &quot;&apos;&quot;, &quot;(&quot;: &quot;)&quot;, &quot;[&quot;: &quot;]&quot;, &quot;{&quot;: &quot;}&quot; }">
			Sets the brace pairs to be autocompleted. For each entry in the dictionary, the key is the opening brace and the value is the closing brace that matches it. A brace is a [String] made of symbols. See [member auto_brace_completion_enabled] and [member auto_brace_completion_highlight_matching].
		</member>
		<member name="code_completion_enabled" type="bool" setter="set_code_completion_enabled" getter="is_code_completion_enabled" default="false">
			If [code]true[/code], the [member ProjectSettings.input/ui_text_completion_query] action requests code completion. To handle it, see [method _request_code_completion] or [signal code_completion_requested].
		</member>
		<member name="code_completion_prefixes" type="String[]" setter="set_code_completion_prefixes" getter="get_code_completion_prefixes" default="[]">
			Sets prefixes that will trigger code completion.
		</member>
		<member name="delimiter_comments" type="String[]" setter="set_comment_delimiters" getter="get_comment_delimiters" default="[]">
			Sets the comment delimiters. All existing comment delimiters will be removed.
		</member>
		<member name="delimiter_strings" type="String[]" setter="set_string_delimiters" getter="get_string_delimiters" default="[&quot;&apos; &apos;&quot;, &quot;\&quot; \&quot;&quot;]">
			Sets the string delimiters. All existing string delimiters will be removed.
		</member>
		<member name="gutters_draw_bookmarks" type="bool" setter="set_draw_bookmarks_gutter" getter="is_drawing_bookmarks_gutter" default="false">
			If [code]true[/code], bookmarks are drawn in the gutter. This gutter is shared with breakpoints and executing lines. See [method set_line_as_bookmarked].
		</member>
		<member name="gutters_draw_breakpoints_gutter" type="bool" setter="set_draw_breakpoints_gutter" getter="is_drawing_breakpoints_gutter" default="false">
			If [code]true[/code], breakpoints are drawn in the gutter. This gutter is shared with bookmarks and executing lines. Clicking the gutter will toggle the breakpoint for the line, see [method set_line_as_breakpoint].
		</member>
		<member name="gutters_draw_executing_lines" type="bool" setter="set_draw_executing_lines_gutter" getter="is_drawing_executing_lines_gutter" default="false">
			If [code]true[/code], executing lines are marked in the gutter. This gutter is shared with breakpoints and bookmarks. See [method set_line_as_executing].
		</member>
		<member name="gutters_draw_fold_gutter" type="bool" setter="set_draw_fold_gutter" getter="is_drawing_fold_gutter" default="false">
			If [code]true[/code], the fold gutter is drawn. In this gutter, the [theme_item can_fold_code_region] icon is drawn for each foldable line (see [method can_fold_line]) and the [theme_item folded_code_region] icon is drawn for each folded line (see [method is_line_folded]). These icons can be clicked to toggle the fold state, see [method toggle_foldable_line]. [member line_folding] must be [code]true[/code] to show icons.
		</member>
		<member name="gutters_draw_line_numbers" type="bool" setter="set_draw_line_numbers" getter="is_draw_line_numbers_enabled" default="false">
			If [code]true[/code], the line number gutter is drawn. Line numbers start at [code]1[/code] and are incremented for each line of text. Clicking and dragging in the line number gutter will select entire lines of text.
		</member>
		<member name="gutters_zero_pad_line_numbers" type="bool" setter="set_line_numbers_zero_padded" getter="is_line_numbers_zero_padded" default="false">
			If [code]true[/code], line numbers drawn in the gutter are zero padded based on the total line count. Requires [member gutters_draw_line_numbers] to be set to [code]true[/code].
		</member>
		<member name="indent_automatic" type="bool" setter="set_auto_indent_enabled" getter="is_auto_indent_enabled" default="false">
			If [code]true[/code], an extra indent is automatically inserted when a new line is added and a prefix in [member indent_automatic_prefixes] is found. If a brace pair opening key is found, the matching closing brace will be moved to another new line (see [member auto_brace_completion_pairs]).
		</member>
		<member name="indent_automatic_prefixes" type="String[]" setter="set_auto_indent_prefixes" getter="get_auto_indent_prefixes" default="[&quot;:&quot;, &quot;{&quot;, &quot;[&quot;, &quot;(&quot;]">
			Prefixes to trigger an automatic indent. Used when [member indent_automatic] is set to [code]true[/code].
		</member>
		<member name="indent_size" type="int" setter="set_indent_size" getter="get_indent_size" default="4">
			Size of the tabulation indent (one [kbd]Tab[/kbd] press) in characters. If [member indent_use_spaces] is enabled the number of spaces to use.
		</member>
		<member name="indent_use_spaces" type="bool" setter="set_indent_using_spaces" getter="is_indent_using_spaces" default="false">
			Use spaces instead of tabs for indentation.
		</member>
		<member name="layout_direction" type="int" setter="set_layout_direction" getter="get_layout_direction" overrides="Control" enum="Control.LayoutDirection" default="2" />
		<member name="line_folding" type="bool" setter="set_line_folding_enabled" getter="is_line_folding_enabled" default="false">
			If [code]true[/code], lines can be folded. Otherwise, line folding methods like [method fold_line] will not work and [method can_fold_line] will always return [code]false[/code]. See [member gutters_draw_fold_gutter].
		</member>
		<member name="line_length_guidelines" type="int[]" setter="set_line_length_guidelines" getter="get_line_length_guidelines" default="[]">
			Draws vertical lines at the provided columns. The first entry is considered a main hard guideline and is draw more prominently.
		</member>
		<member name="symbol_lookup_on_click" type="bool" setter="set_symbol_lookup_on_click_enabled" getter="is_symbol_lookup_on_click_enabled" default="false">
			Set when a validated word from [signal symbol_validate] is clicked, the [signal symbol_lookup] should be emitted.
		</member>
		<member name="symbol_tooltip_on_hover" type="bool" setter="set_symbol_tooltip_on_hover_enabled" getter="is_symbol_tooltip_on_hover_enabled" default="false">
			Set when a word is hovered, the [signal symbol_hovered] should be emitted.
		</member>
		<member name="text_direction" type="int" setter="set_text_direction" getter="get_text_direction" overrides="TextEdit" enum="Control.TextDirection" default="1" />
	</members>
	<signals>
		<signal name="breakpoint_toggled">
			<param index="0" name="line" type="int" />
			<description>
				Emitted when a breakpoint is added or removed from a line. If the line is moved via backspace a removed is emitted at the old line.
			</description>
		</signal>
		<signal name="code_completion_requested">
			<description>
				Emitted when the user requests code completion. This signal will not be sent if [method _request_code_completion] is overridden or [member code_completion_enabled] is [code]false[/code].
			</description>
		</signal>
		<signal name="symbol_hovered">
			<param index="0" name="symbol" type="String" />
			<param index="1" name="line" type="int" />
			<param index="2" name="column" type="int" />
			<description>
				Emitted when the user hovers over a symbol. Unlike [signal Control.mouse_entered], this signal is not emitted immediately, but when the cursor is over the symbol for [member ProjectSettings.gui/timers/tooltip_delay_sec] seconds.
				[b]Note:[/b] [member symbol_tooltip_on_hover] must be [code]true[/code] for this signal to be emitted.
			</description>
		</signal>
		<signal name="symbol_lookup">
			<param index="0" name="symbol" type="String" />
			<param index="1" name="line" type="int" />
			<param index="2" name="column" type="int" />
			<description>
				Emitted when the user has clicked on a valid symbol.
			</description>
		</signal>
		<signal name="symbol_validate">
			<param index="0" name="symbol" type="String" />
			<description>
				Emitted when the user hovers over a symbol. The symbol should be validated and responded to, by calling [method set_symbol_lookup_word_as_valid].
				[b]Note:[/b] [member symbol_lookup_on_click] must be [code]true[/code] for this signal to be emitted.
			</description>
		</signal>
	</signals>
	<constants>
		<constant name="KIND_CLASS" value="0" enum="CodeCompletionKind">
			Marks the option as a class.
		</constant>
		<constant name="KIND_FUNCTION" value="1" enum="CodeCompletionKind">
			Marks the option as a function.
		</constant>
		<constant name="KIND_SIGNAL" value="2" enum="CodeCompletionKind">
			Marks the option as a Godot signal.
		</constant>
		<constant name="KIND_VARIABLE" value="3" enum="CodeCompletionKind">
			Marks the option as a variable.
		</constant>
		<constant name="KIND_MEMBER" value="4" enum="CodeCompletionKind">
			Marks the option as a member.
		</constant>
		<constant name="KIND_ENUM" value="5" enum="CodeCompletionKind">
			Marks the option as an enum entry.
		</constant>
		<constant name="KIND_CONSTANT" value="6" enum="CodeCompletionKind">
			Marks the option as a constant.
		</constant>
		<constant name="KIND_NODE_PATH" value="7" enum="CodeCompletionKind">
			Marks the option as a Godot node path.
		</constant>
		<constant name="KIND_FILE_PATH" value="8" enum="CodeCompletionKind">
			Marks the option as a file path.
		</constant>
		<constant name="KIND_PLAIN_TEXT" value="9" enum="CodeCompletionKind">
			Marks the option as unclassified or plain text.
		</constant>
		<constant name="LOCATION_LOCAL" value="0" enum="CodeCompletionLocation">
			The option is local to the location of the code completion query - e.g. a local variable. Subsequent value of location represent options from the outer class, the exact value represent how far they are (in terms of inner classes).
		</constant>
		<constant name="LOCATION_PARENT_MASK" value="256" enum="CodeCompletionLocation">
			The option is from the containing class or a parent class, relative to the location of the code completion query. Perform a bitwise OR with the class depth (e.g. [code]0[/code] for the local class, [code]1[/code] for the parent, [code]2[/code] for the grandparent, etc.) to store the depth of an option in the class or a parent class.
		</constant>
		<constant name="LOCATION_OTHER_USER_CODE" value="512" enum="CodeCompletionLocation">
			The option is from user code which is not local and not in a derived class (e.g. Autoload Singletons).
		</constant>
		<constant name="LOCATION_OTHER" value="1024" enum="CodeCompletionLocation">
			The option is from other engine code, not covered by the other enum constants - e.g. built-in classes.
		</constant>
	</constants>
	<theme_items>
		<theme_item name="bookmark_color" data_type="color" type="Color" default="Color(0.5, 0.64, 1, 0.8)">
			[Color] of the bookmark icon for bookmarked lines.
		</theme_item>
		<theme_item name="brace_mismatch_color" data_type="color" type="Color" default="Color(1, 0.2, 0.2, 1)">
			[Color] of the text to highlight mismatched braces.
		</theme_item>
		<theme_item name="breakpoint_color" data_type="color" type="Color" default="Color(0.9, 0.29, 0.3, 1)">
			[Color] of the breakpoint icon for bookmarked lines.
		</theme_item>
		<theme_item name="code_folding_color" data_type="color" type="Color" default="Color(0.8, 0.8, 0.8, 0.8)">
			[Color] for all icons related to line folding.
		</theme_item>
		<theme_item name="completion_background_color" data_type="color" type="Color" default="Color(0.17, 0.16, 0.2, 1)">
			Sets the background [Color] for the code completion popup.
		</theme_item>
		<theme_item name="completion_existing_color" data_type="color" type="Color" default="Color(0.87, 0.87, 0.87, 0.13)">
			Background highlight [Color] for matching text in code completion options.
		</theme_item>
		<theme_item name="completion_scroll_color" data_type="color" type="Color" default="Color(1, 1, 1, 0.29)">
			[Color] of the scrollbar in the code completion popup.
		</theme_item>
		<theme_item name="completion_scroll_hovered_color" data_type="color" type="Color" default="Color(1, 1, 1, 0.4)">
			[Color] of the scrollbar in the code completion popup when hovered.
		</theme_item>
		<theme_item name="completion_selected_color" data_type="color" type="Color" default="Color(0.26, 0.26, 0.27, 1)">
			Background highlight [Color] for the current selected option item in the code completion popup.
		</theme_item>
		<theme_item name="executing_line_color" data_type="color" type="Color" default="Color(0.98, 0.89, 0.27, 1)">
			[Color] of the executing icon for executing lines.
		</theme_item>
		<theme_item name="folded_code_region_color" data_type="color" type="Color" default="Color(0.68, 0.46, 0.77, 0.2)">
			[Color] of background line highlight for folded code region.
		</theme_item>
		<theme_item name="line_length_guideline_color" data_type="color" type="Color" default="Color(0.3, 0.5, 0.8, 0.1)">
			[Color] of the main line length guideline, secondary guidelines will have 50% alpha applied.
		</theme_item>
		<theme_item name="line_number_color" data_type="color" type="Color" default="Color(0.67, 0.67, 0.67, 0.4)">
			Sets the [Color] of line numbers.
		</theme_item>
		<theme_item name="completion_lines" data_type="constant" type="int" default="7">
			Max number of options to display in the code completion popup at any one time.
		</theme_item>
		<theme_item name="completion_max_width" data_type="constant" type="int" default="50">
			Max width of options in the code completion popup. Options longer than this will be cut off.
		</theme_item>
		<theme_item name="completion_scroll_width" data_type="constant" type="int" default="6">
			Width of the scrollbar in the code completion popup.
		</theme_item>
		<theme_item name="bookmark" data_type="icon" type="Texture2D">
			Sets a custom [Texture2D] to draw in the bookmark gutter for bookmarked lines.
		</theme_item>
		<theme_item name="breakpoint" data_type="icon" type="Texture2D">
			Sets a custom [Texture2D] to draw in the breakpoint gutter for breakpointed lines.
		</theme_item>
		<theme_item name="can_fold" data_type="icon" type="Texture2D">
			Sets a custom [Texture2D] to draw in the line folding gutter when a line can be folded.
		</theme_item>
		<theme_item name="can_fold_code_region" data_type="icon" type="Texture2D">
			Sets a custom [Texture2D] to draw in the line folding gutter when a code region can be folded.
		</theme_item>
		<theme_item name="completion_color_bg" data_type="icon" type="Texture2D">
			Background panel for the color preview box in autocompletion (visible when the color is translucent).
		</theme_item>
		<theme_item name="executing_line" data_type="icon" type="Texture2D">
			Icon to draw in the executing gutter for executing lines.
		</theme_item>
		<theme_item name="folded" data_type="icon" type="Texture2D">
			Sets a custom [Texture2D] to draw in the line folding gutter when a line is folded and can be unfolded.
		</theme_item>
		<theme_item name="folded_code_region" data_type="icon" type="Texture2D">
			Sets a custom [Texture2D] to draw in the line folding gutter when a code region is folded and can be unfolded.
		</theme_item>
		<theme_item name="folded_eol_icon" data_type="icon" type="Texture2D">
			Sets a custom [Texture2D] to draw at the end of a folded line.
		</theme_item>
		<theme_item name="completion" data_type="style" type="StyleBox">
			[StyleBox] for the code completion popup.
		</theme_item>
	</theme_items>
</class>
