CodeEdit
继承: TextEdit
< Control
< CanvasItem
< Node
< Object
A multiline text editor designed for editing code.
描述
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.
Note: Regardless of locale, CodeEdit will by default always use left-to-right text direction to correctly display source code.
属性
方法
主题属性
信号
breakpoint_toggled ( line: int
)
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.
code_completion_requested ( )
Emitted when the user requests code completion.
symbol_lookup ( symbol: String
, line: int
, column: int
)
Emitted when the user has clicked on a valid symbol.
symbol_validate ( symbol: String
)
Emitted when the user hovers over a symbol. The symbol should be validated and responded to, by calling set_symbol_lookup_word_as_valid
.
枚举
enum CodeCompletionKind:
CodeCompletionKind KIND_CLASS = 0
Marks the option as a class.
CodeCompletionKind KIND_FUNCTION = 1
Marks the option as a function.
CodeCompletionKind KIND_SIGNAL = 2
Marks the option as a Godot signal.
CodeCompletionKind KIND_VARIABLE = 3
Marks the option as a variable.
CodeCompletionKind KIND_MEMBER = 4
Marks the option as a member.
CodeCompletionKind KIND_ENUM = 5
Marks the option as an enum entry.
CodeCompletionKind KIND_CONSTANT = 6
Marks the option as a constant.
CodeCompletionKind KIND_NODE_PATH = 7
Marks the option as a Godot node path.
CodeCompletionKind KIND_FILE_PATH = 8
Marks the option as a file path.
CodeCompletionKind KIND_PLAIN_TEXT = 9
Marks the option as unclassified or plain text.
enum CodeCompletionLocation:
CodeCompletionLocation LOCATION_LOCAL = 0
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).
CodeCompletionLocation LOCATION_PARENT_MASK = 256
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. 0
for the local class, 1
for the parent, 2
for the grandparent, etc.) to store the depth of an option in the class or a parent class.
CodeCompletionLocation LOCATION_OTHER_USER_CODE = 512
The option is from user code which is not local and not in a derived class (e.g. Autoload Singletons).
CodeCompletionLocation LOCATION_OTHER = 1024
The option is from other engine code, not covered by the other enum constants - e.g. built-in classes.
属性说明
bool
auto_brace_completion_enabled = false
Sets whether brace pairs should be autocompleted.
bool
auto_brace_completion_highlight_matching = false
void
set_highlight_matching_braces_enabled ( value:bool
)bool
is_highlight_matching_braces_enabled ( )
Highlight mismatching brace pairs.
Dictionary
auto_brace_completion_pairs = { "\"": "\"", "'": "'", "(": ")", "[": "]", "{": "}" }
void
set_auto_brace_completion_pairs ( value:Dictionary
)Dictionary
get_auto_brace_completion_pairs ( )
Sets the brace pairs to be autocompleted.
bool
code_completion_enabled = false
Sets whether code completion is allowed.
Array String
code_completion_prefixes = []
void
set_code_completion_prefixes ( value: ArrayString
)- Array
String
get_code_completion_prefixes ( )
Sets prefixes that will trigger code completion.
Array String
delimiter_comments = []
Sets the comment delimiters. All existing comment delimiters will be removed.
Array String
delimiter_strings = ["' '", "\" \""]
Sets the string delimiters. All existing string delimiters will be removed.
bool
gutters_draw_bookmarks = false
Sets if bookmarked should be drawn in the gutter. This gutter is shared with breakpoints and executing lines.
bool
gutters_draw_breakpoints_gutter = false
Sets if breakpoints should be drawn in the gutter. This gutter is shared with bookmarks and executing lines.
bool
gutters_draw_executing_lines = false
Sets if executing lines should be marked in the gutter. This gutter is shared with breakpoints and bookmarks lines.
bool
gutters_draw_fold_gutter = false
Sets if foldable lines icons should be drawn in the gutter.
bool
gutters_draw_line_numbers = false
Sets if line numbers should be drawn in the gutter.
bool
gutters_zero_pad_line_numbers = false
Sets if line numbers drawn in the gutter are zero padded.
bool
indent_automatic = false
Sets whether automatic indent are enabled, this will add an extra indent if a prefix or brace is found.
Array String
indent_automatic_prefixes = [":", "{", "[", "("]
Prefixes to trigger an automatic indent.
int
indent_size = 4
Size of the tabulation indent (one Tab
press) in characters. If indent_use_spaces
is enabled the number of spaces to use.
bool
indent_use_spaces = false
Use spaces instead of tabs for indentation.
bool
line_folding = false
Sets whether line folding is allowed.
Array int
line_length_guidelines = []
Draws vertical lines at the provided columns. The first entry is considered a main hard guideline and is draw more prominently.
bool
symbol_lookup_on_click = false
Set when a validated word from symbol_validate
is clicked, the symbol_lookup
should be emitted.
方法说明
void
_confirm_code_completion ( replace: bool
) virtual1
Override this method to define how the selected entry should be inserted. If replace
is true
, any existing text should be replaced.
Array Dictionary
_filter_code_completion_candidates ( candidates: Array Dictionary
) virtual1 const2
Override this method to define what items in candidates
should be displayed.
Both candidates
and the return is a Array
of Dictionary
, see get_code_completion_option
for Dictionary
content.
void
_request_code_completion ( force: bool
) virtual1
Override this method to define what happens when the user requests code completion. If force
is true
, any checks should be bypassed.
void
add_auto_brace_completion_pair ( start_key: String
, end_key: String
)
Adds a brace pair.
Both the start and end keys must be symbols. Only the start key has to be unique.
void
add_code_completion_option ( type: CodeCompletionKind, display_text: String
, insert_text: String
, text_color: Color
= Color(1, 1, 1, 1), icon: Resource
= null, value: Variant
= null, location: int
= 1024 )
Submits an item to the queue of potential candidates for the autocomplete menu. Call update_code_completion_options
to update the list.
location
indicates location of the option relative to the location of the code completion query. See CodeCompletionLocation for how to set this value.
Note: This list will replace all current candidates.
void
add_comment_delimiter ( start_key: String
, end_key: String
, line_only: bool
= false )
Adds a comment delimiter from start_key
to end_key
. Both keys should be symbols, and start_key
must not be shared with other delimiters.
If line_only
is true
or end_key
is an empty String
, the region does not carry over to the next line.
void
add_string_delimiter ( start_key: String
, end_key: String
, line_only: bool
= false )
Defines a string delimiter from start_key
to end_key
. Both keys should be symbols, and start_key
must not be shared with other delimiters.
If line_only
is true
or end_key
is an empty String
, the region does not carry over to the next line.
bool
can_fold_line ( line: int
) const2
Returns if the given line is foldable, that is, it has indented lines right below it or a comment / string block.
void
cancel_code_completion ( )
Cancels the autocomplete menu.
void
clear_bookmarked_lines ( )
Clears all bookmarked lines.
void
clear_breakpointed_lines ( )
Clears all breakpointed lines.
void
clear_comment_delimiters ( )
Removes all comment delimiters.
void
clear_executing_lines ( )
Clears all executed lines.
void
clear_string_delimiters ( )
Removes all string delimiters.
void
confirm_code_completion ( replace: bool
= false )
Inserts the selected entry into the text. If replace
is true
, any existing text is replaced rather than merged.
void
convert_indent ( from_line: int
= -1, to_line: int
= -1 )
Converts the indents of lines between from_line
and to_line
to tabs or spaces as set by indent_use_spaces
.
Values of -1
convert the entire text.
void
create_code_region ( )
Creates a new code region with the selection. At least one single line comment delimiter have to be defined (see 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 set_code_region_tags
).
Code regions are delimited using start and end tags (respectively region
and endregion
by default) preceded by one line comment delimiter. (eg. #region
and #endregion
)
void
delete_lines ( )
Deletes all lines that are selected or have a caret on them.
void
do_indent ( )
Perform an indent as if the user activated the "ui_text_indent" action.
void
duplicate_lines ( )
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.
void
duplicate_selection ( )
Duplicates all selected text and duplicates all lines with a caret on them.
void
fold_all_lines ( )
Folds all lines that are possible to be folded (see can_fold_line
).
void
fold_line ( line: int
)
Folds the given line, if possible (see can_fold_line
).
String
get_auto_brace_completion_close_key ( open_key: String
) const2
Gets the matching auto brace close key for open_key
.
PackedInt32Array
get_bookmarked_lines ( ) const2
Gets all bookmarked lines.
PackedInt32Array
get_breakpointed_lines ( ) const2
Gets all breakpointed lines.
Dictionary
get_code_completion_option ( index: int
) const2
Gets the completion option at index
. The return Dictionary
has the following key-values:
kind
: CodeCompletionKind
display_text
: Text that is shown on the autocomplete menu.
insert_text
: Text that is to be inserted when this item is selected.
font_color
: Color of the text on the autocomplete menu.
icon
: Icon to draw on the autocomplete menu.
default_value
: Value of the symbol.
Array Dictionary
get_code_completion_options ( ) const2
Gets all completion options, see get_code_completion_option
for return content.
int
get_code_completion_selected_index ( ) const2
Gets the index of the current selected completion option.
String
get_code_region_end_tag ( ) const2
Returns the code region end tag (without comment delimiter).
String
get_code_region_start_tag ( ) const2
Returns the code region start tag (without comment delimiter).
String
get_delimiter_end_key ( delimiter_index: int
) const2
Gets the end key for a string or comment region index.
Vector2
get_delimiter_end_position ( line: int
, column: int
) const2
If line
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 -1
.
String
get_delimiter_start_key ( delimiter_index: int
) const2
Gets the start key for a string or comment region index.
Vector2
get_delimiter_start_position ( line: int
, column: int
) const2
If line
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 -1
.
PackedInt32Array
get_executing_lines ( ) const2
Gets all executing lines.
Array int
get_folded_lines ( ) const2
Returns all lines that are current folded.
String
get_text_for_code_completion ( ) const2
Returns the full text with char 0xFFFF
at the caret location.
String
get_text_for_symbol_lookup ( ) const2
Returns the full text with char 0xFFFF
at the cursor location.
String
get_text_with_cursor_char ( line: int
, column: int
) const2
Returns the full text with char 0xFFFF
at the specified location.
bool
has_auto_brace_completion_close_key ( close_key: String
) const2
Returns true
if close key close_key
exists.
bool
has_auto_brace_completion_open_key ( open_key: String
) const2
Returns true
if open key open_key
exists.
bool
has_comment_delimiter ( start_key: String
) const2
Returns true
if comment start_key
exists.
bool
has_string_delimiter ( start_key: String
) const2
Returns true
if string start_key
exists.
void
indent_lines ( )
Indents selected lines, or in the case of no selection the caret line by one.
int
is_in_comment ( line: int
, column: int
= -1 ) const2
Returns delimiter index if line
column
is in a comment. If column
is not provided, will return delimiter index if the entire line
is a comment. Otherwise -1
.
int
is_in_string ( line: int
, column: int
= -1 ) const2
Returns the delimiter index if line
column
is in a string. If column
is not provided, will return the delimiter index if the entire line
is a string. Otherwise -1
.
bool
is_line_bookmarked ( line: int
) const2
Returns whether the line at the specified index is bookmarked or not.
bool
is_line_breakpointed ( line: int
) const2
Returns whether the line at the specified index is breakpointed or not.
bool
is_line_code_region_end ( line: int
) const2
Returns whether the line at the specified index is a code region end.
bool
is_line_code_region_start ( line: int
) const2
Returns whether the line at the specified index is a code region start.
bool
is_line_executing ( line: int
) const2
Returns whether the line at the specified index is marked as executing or not.
bool
is_line_folded ( line: int
) const2
Returns whether the line at the specified index is folded or not.
void
move_lines_down ( )
Moves all lines down that are selected or have a caret on them.
void
move_lines_up ( )
Moves all lines up that are selected or have a caret on them.
void
remove_comment_delimiter ( start_key: String
)
Removes the comment delimiter with start_key
.
void
remove_string_delimiter ( start_key: String
)
Removes the string delimiter with start_key
.
void
request_code_completion ( force: bool
= false )
Emits code_completion_requested
, if force
is true
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.
void
set_code_completion_selected_index ( index: int
)
Sets the current selected completion option.
void
set_code_hint ( code_hint: String
)
Sets the code hint text. Pass an empty string to clear.
void
set_code_hint_draw_below ( draw_below: bool
)
Sets if the code hint should draw below the text.
void
set_code_region_tags ( start: String
= "region", end: String
= "endregion" )
Sets the code region start and end tags (without comment delimiter).
void
set_line_as_bookmarked ( line: int
, bookmarked: bool
)
Sets the line as bookmarked.
void
set_line_as_breakpoint ( line: int
, breakpointed: bool
)
Sets the line as breakpointed.
void
set_line_as_executing ( line: int
, executing: bool
)
Sets the line as executing.
void
set_symbol_lookup_word_as_valid ( valid: bool
)
Sets the symbol emitted by symbol_validate
as a valid lookup.
void
toggle_foldable_line ( line: int
)
Toggle the folding of the code block at the given line.
void
toggle_foldable_lines_at_carets ( )
Toggle the folding of the code block on all lines with a caret on them.
void
unfold_all_lines ( )
Unfolds all lines, folded or not.
void
unfold_line ( line: int
)
Unfolds all lines that were previously folded.
void
unindent_lines ( )
Unindents selected lines, or in the case of no selection the caret line by one. Same as performing "ui_text_unindent" action.
void
update_code_completion_options ( force: bool
)
Submits all completion options added with add_code_completion_option
. Will try to force the autocomplete menu to popup, if force
is true
.
Note: This will replace all current candidates.
主题属性说明
Color
bookmark_color = Color(0.5, 0.64, 1, 0.8)
Color
of the bookmark icon for bookmarked lines.
Color
brace_mismatch_color = Color(1, 0.2, 0.2, 1)
Color
of the text to highlight mismatched braces.
Color
breakpoint_color = Color(0.9, 0.29, 0.3, 1)
Color
of the breakpoint icon for bookmarked lines.
Color
code_folding_color = Color(0.8, 0.8, 0.8, 0.8)
Color
for all icons related to line folding.
Color
completion_background_color = Color(0.17, 0.16, 0.2, 1)
Sets the background Color
for the code completion popup.
Color
completion_existing_color = Color(0.87, 0.87, 0.87, 0.13)
Background highlight Color
for matching text in code completion options.
Color
completion_scroll_color = Color(1, 1, 1, 0.29)
Color
of the scrollbar in the code completion popup.
Color
completion_scroll_hovered_color = Color(1, 1, 1, 0.4)
Color
of the scrollbar in the code completion popup when hovered.
Color
completion_selected_color = Color(0.26, 0.26, 0.27, 1)
Background highlight Color
for the current selected option item in the code completion popup.
Color
executing_line_color = Color(0.98, 0.89, 0.27, 1)
Color
of the executing icon for executing lines.
Color
folded_code_region_color = Color(0.68, 0.46, 0.77, 0.2)
Color
of background line highlight for folded code region.
Color
line_length_guideline_color = Color(0.3, 0.5, 0.8, 0.1)
Color
of the main line length guideline, secondary guidelines will have 50% alpha applied.
Color
line_number_color = Color(0.67, 0.67, 0.67, 0.4)
Sets the Color
of line numbers.
int
completion_lines = 7
Max number of options to display in the code completion popup at any one time.
int
completion_max_width = 50
Max width of options in the code completion popup. Options longer than this will be cut off.
int
completion_scroll_width = 6
Width of the scrollbar in the code completion popup.
Texture2D
bookmark
Sets a custom Texture2D
to draw in the bookmark gutter for bookmarked lines.
Texture2D
breakpoint
Sets a custom Texture2D
to draw in the breakpoint gutter for breakpointed lines.
Texture2D
can_fold
Sets a custom Texture2D
to draw in the line folding gutter when a line can be folded.
Texture2D
can_fold_code_region
Sets a custom Texture2D
to draw in the line folding gutter when a code region can be folded.
Texture2D
completion_color_bg
Background panel for the color preview box in autocompletion (visible when the color is translucent).
Texture2D
executing_line
Icon to draw in the executing gutter for executing lines.
Texture2D
folded
Sets a custom Texture2D
to draw in the line folding gutter when a line is folded and can be unfolded.
Texture2D
folded_code_region
Sets a custom Texture2D
to draw in the line folding gutter when a code region is folded and can be unfolded.
Texture2D
folded_eol_icon
Sets a custom Texture2D
to draw at the end of a folded line.
StyleBox
completion
StyleBox
for the code completion popup.
本方法通常需要用户覆盖才能生效。
本方法无副作用,不会修改该实例的任何成员变量。
本方法除了能接受在此处描述的参数外,还能够继续接受任意数量的参数。
本方法用于构造某个类型。
调用本方法无需实例,可直接使用类名进行调用。
本方法描述的是使用本类型作为左操作数的有效运算符。
这个值是由下列位标志构成位掩码的整数。
无返回值。