Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
CodeEdit
繼承: TextEdit < Control < CanvasItem < Node < Object
多行文字編輯器,針對編輯程式碼而設計。
說明
CodeEdit 是一種專門用於編輯純文字程式碼檔的 TextEdit。它包含了許多程式碼編輯器中的常見功能,如行號、折行、程式碼補全、縮進管理以及字串/注釋管理。
注意:無論使用什麼區域設定,CodeEdit 預設總是使用從左至右的文字方向來正確顯示原始程式碼。
屬性
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
layout_direction |
|
|
|
||
|
||
|
||
|
||
text_direction |
|
方法
主題屬性
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
訊號
breakpoint_toggled(line: int) 🔗
Emitted when a breakpoint is added or removed from a line. If the line is removed via backspace, a signal is emitted at the old line.
code_completion_requested() 🔗
Emitted when the user requests code completion. This signal will not be sent if _request_code_completion() is overridden or code_completion_enabled is false.
symbol_hovered(symbol: String, line: int, column: int) 🔗
Emitted when the user hovers over a symbol. Unlike Control.mouse_entered, this signal is not emitted immediately, but when the cursor is over the symbol for ProjectSettings.gui/timers/tooltip_delay_sec seconds.
Note: symbol_tooltip_on_hover must be true for this signal to be emitted.
symbol_lookup(symbol: String, line: int, column: int) 🔗
使用者點擊有效符號時發出。
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().
Note: symbol_lookup_on_click must be true for this signal to be emitted.
列舉
enum CodeCompletionKind: 🔗
CodeCompletionKind KIND_CLASS = 0
將該選項標記為類。
CodeCompletionKind KIND_FUNCTION = 1
將該選項標記為函式。
CodeCompletionKind KIND_SIGNAL = 2
將該選項標記為 Godot 訊號。
CodeCompletionKind KIND_VARIABLE = 3
將該選項標記為變數。
CodeCompletionKind KIND_MEMBER = 4
將該選項標記為成員。
CodeCompletionKind KIND_ENUM = 5
將該選項標記為列舉條目。
CodeCompletionKind KIND_CONSTANT = 6
將該選項標記為常數。
CodeCompletionKind KIND_NODE_PATH = 7
將該選項標記為 Godot 節點路徑。
CodeCompletionKind KIND_FILE_PATH = 8
將該選項標記為檔路徑。
CodeCompletionKind KIND_PLAIN_TEXT = 9
將該選項標記為未分類或純文字。
CodeCompletionKind KIND_KEYWORD = 10
Marks the option as a keyword.
enum CodeCompletionLocation: 🔗
CodeCompletionLocation LOCATION_LOCAL = 0
該選項是相對於程式碼補全查詢位置的 - 例如區域變數。位置的後續值表示選項來自外部類,確切的值表示它們的距離(就內部類而言)。
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
該選項來自使用者程式碼,不是局部,也不是衍生類(例如自動載入單例)。
CodeCompletionLocation LOCATION_OTHER = 1024
該選項來自其他引擎程式碼,未被其他列舉常數覆蓋 - 例如內建類。
屬性說明
bool auto_brace_completion_enabled = false 🔗
If true, uses 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.
bool auto_brace_completion_highlight_matching = false 🔗
If true, highlights brace pairs when the caret is on either one, using auto_brace_completion_pairs. If matching, the pairs will be underlined. If a brace is unmatched, it is colored with brace_mismatch_color.
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. 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 auto_brace_completion_enabled and auto_brace_completion_highlight_matching.
bool code_completion_enabled = false 🔗
If true, the ProjectSettings.input/ui_text_completion_query action requests code completion. To handle it, see _request_code_completion() or code_completion_requested.
Array[String] code_completion_prefixes = [] 🔗
設定將觸發程式碼補全的前綴。
Array[String] delimiter_comments = [] 🔗
設定注釋分隔符號。將刪除所有的現有注釋分隔符號。
Array[String] delimiter_strings = ["' '", "\" \""] 🔗
設定字串分隔符號。將刪除所有的現有字串分隔符號。
bool gutters_draw_bookmarks = false 🔗
If true, bookmarks are drawn in the gutter. This gutter is shared with breakpoints and executing lines. See set_line_as_bookmarked().
bool gutters_draw_breakpoints_gutter = false 🔗
If true, 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 set_line_as_breakpoint().
bool gutters_draw_executing_lines = false 🔗
If true, executing lines are marked in the gutter. This gutter is shared with breakpoints and bookmarks. See set_line_as_executing().
bool gutters_draw_fold_gutter = false 🔗
If true, the fold gutter is drawn. In this gutter, the can_fold_code_region icon is drawn for each foldable line (see can_fold_line()) and the folded_code_region icon is drawn for each folded line (see is_line_folded()). These icons can be clicked to toggle the fold state, see toggle_foldable_line(). line_folding must be true to show icons.
bool gutters_draw_line_numbers = false 🔗
If true, the line number gutter is drawn. Line numbers start at 1 and are incremented for each line of text. Clicking and dragging in the line number gutter will select entire lines of text.
int gutters_line_numbers_min_digits = 3 🔗
The minimum width in digits reserved for the line number gutter.
bool gutters_zero_pad_line_numbers = false 🔗
If true, line numbers drawn in the gutter are zero padded based on the total line count. Requires gutters_draw_line_numbers to be set to true.
bool indent_automatic = false 🔗
If true, an extra indent is automatically inserted when a new line is added and a prefix in 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 auto_brace_completion_pairs).
Array[String] indent_automatic_prefixes = [":", "{", "[", "("] 🔗
Prefixes to trigger an automatic indent. Used when indent_automatic is set to true.
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 🔗
使用空格代替定位字元進行縮進。
If true, lines can be folded. Otherwise, line folding methods like fold_line() will not work and can_fold_line() will always return false. See gutters_draw_fold_gutter.
Array[int] line_length_guidelines = [] 🔗
Draws vertical lines at the provided columns. The first entry is considered a main hard guideline and is drawn more prominently.
bool symbol_lookup_on_click = false 🔗
設定當來自 symbol_validate 的驗證詞被點擊時,應發出 symbol_lookup。
bool symbol_tooltip_on_hover = false 🔗
If true, the symbol_hovered signal is emitted when hovering over a word.
方法說明
void _confirm_code_completion(replace: bool) virtual 🔗
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]) virtual const 🔗
Override this method to define what items in candidates should be displayed.
Both candidates and the return is an Array of Dictionary, see get_code_completion_option() for Dictionary content.
void _request_code_completion(force: bool) virtual 🔗
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) 🔗
新增一對括弧。
開始和結束鍵都必須是符號。只有開始鍵必須是唯一的。
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) 🔗
向自動補全功能表的潛在候選佇列提交條目。請呼叫 update_code_completion_options() 來更新列表。
location 指示的是該選項相對於程式碼補全請求位置的位置。這個值如何設定見 CodeCompletionLocation。
注意:這個列表將替換所有目前候選。
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) const 🔗
Returns true if the given line is foldable. A line is foldable if it is the start of a valid code region (see 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 TextEdit.get_indent_level()).
void cancel_code_completion() 🔗
取消自動補全功能表。
void clear_bookmarked_lines() 🔗
清除所有書簽行。
void clear_breakpointed_lines() 🔗
清除所有中斷點行。
void clear_comment_delimiters() 🔗
移除所有注釋分隔符號。
void clear_executing_lines() 🔗
清除所有已執行的行。
void clear_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) 🔗
將 from_line 和 to_line 之間的行縮進,轉換為 indent_use_spaces 設定的定位字元或空格。
值均為 -1 將轉換整個文字。
void create_code_region() 🔗
使用選擇建立一個新的程式碼區域。至少必須定義一個單行註解分隔符號(請參閱add_comment_delimiter())。
程式碼區域是程式碼的一部分,在折疊時會被反白顯示,可以幫助組織腳本。
程式碼區域的開始和結束標記可以自訂(請參閱set_code_region_tags())。
程式碼區域使用開始和結束標記(預設分別為 region 和 endregion)進行分隔,前面有一行註解分隔符號。 (例如 #region 和 #endregion)
void delete_lines() 🔗
Deletes all lines that are selected or have a caret on them.
void do_indent() 🔗
If there is no selection, indentation is inserted at the caret. Otherwise, the selected lines are indented like indent_lines(). Equivalent to the ProjectSettings.input/ui_text_indent action. The indentation characters used depend on indent_use_spaces and indent_size.
void duplicate_lines() 🔗
複製所有目前使用任何脫字符號選擇的行。無論脫字符號位於行內的何處,複製目前行下方的整行。
void duplicate_selection() 🔗
Duplicates all selected text and duplicates all lines with a caret on them.
void fold_all_lines() 🔗
折疊所有可能被折疊的行(參見 can_fold_line())。
如果可能,折疊給定的行(參見 can_fold_line())。
String get_auto_brace_completion_close_key(open_key: String) const 🔗
獲取 open_key 相配對的括弧自動閉合鍵。
PackedInt32Array get_bookmarked_lines() const 🔗
獲取所有書簽行。
PackedInt32Array get_breakpointed_lines() const 🔗
獲取所有中斷點行。
Dictionary get_code_completion_option(index: int) const 🔗
獲取在 index 處的補全選項。返回的 Dictionary 有以下鍵值。
kind:CodeCompletionKind
display_text :在自動補全功能表上顯示的文字。
insert_text :當選中這個選項時要插入的文字。
font_color:自動補全功能表上文字的顏色。
icon :在自動補全功能表上繪製的圖示。
default_value:符號的值。
Array[Dictionary] get_code_completion_options() const 🔗
獲取所有補全選項,返回值見 get_code_completion_option()。
int get_code_completion_selected_index() const 🔗
獲取目前已選定補全項的索引。
String get_code_region_end_tag() const 🔗
返回該地區的導覽層。
String get_code_region_start_tag() const 🔗
返回選區的原始起始列。
String get_delimiter_end_key(delimiter_index: int) const 🔗
獲取字串或注釋塊索引的結束鍵。
Vector2 get_delimiter_end_position(line: int, column: int) const 🔗
如果 line column 是在一個字串或注釋中,則返回該區域的結束位元置。如果不在或未找到結束位置,則 Vector2 的兩個值都將是 -1 。
String get_delimiter_start_key(delimiter_index: int) const 🔗
獲取字串或注釋塊索引的開始鍵。
Vector2 get_delimiter_start_position(line: int, column: int) const 🔗
如果 line column 是在一個字串或注釋中,則返回該區域的起始位元置。如果不在或未找到開始位置,則 Vector2 的兩個值都將是 -1 。
PackedInt32Array get_executing_lines() const 🔗
獲取所有正在執行的行。
Array[int] get_folded_lines() const 🔗
Returns all lines that are currently folded.
String get_text_for_code_completion() const 🔗
返回在插入符號位置帶有 0xFFFF 字元的全文。
String get_text_for_symbol_lookup() const 🔗
返回在游標位置處帶有 0xFFFF 字元的全文。
String get_text_with_cursor_char(line: int, column: int) const 🔗
返回在插入符號位置帶有 0xFFFF 字元的全文。
bool has_auto_brace_completion_close_key(close_key: String) const 🔗
如果關閉鍵 close_key 存在,則返回 true。
bool has_auto_brace_completion_open_key(open_key: String) const 🔗
如果打開鍵 open_key 存在,則返回 true。
bool has_comment_delimiter(start_key: String) const 🔗
如果注釋的 start_key 存在,返回 true 。
bool has_string_delimiter(start_key: String) const 🔗
如果字串的 start_key 存在,返回 true 。
void indent_lines() 🔗
Indents all lines that are selected or have a caret on them. Uses spaces or a tab depending on indent_use_spaces. See unindent_lines().
int is_in_comment(line: int, column: int = -1) const 🔗
如果 line column 在一條注釋中,則返回分隔符號索引。如果沒有提供 column,且整個 line 是一條注釋,則將返回分隔符號索引。否則返回 -1。
int is_in_string(line: int, column: int = -1) const 🔗
如果 line column 在一條字串中,則返回分隔符號索引。如果沒有提供 column,且整個 line 是一個字串,則將返回分隔符號索引。否則返回 -1。
bool is_line_bookmarked(line: int) const 🔗
Returns true if the given line is bookmarked. See set_line_as_bookmarked().
bool is_line_breakpointed(line: int) const 🔗
Returns true if the given line is breakpointed. See set_line_as_breakpoint().
bool is_line_code_region_end(line: int) const 🔗
Returns true if the given line is a code region end. See set_code_region_tags().
bool is_line_code_region_start(line: int) const 🔗
Returns true if the given line is a code region start. See set_code_region_tags().
bool is_line_executing(line: int) const 🔗
Returns true if the given line is marked as executing. See set_line_as_executing().
bool is_line_folded(line: int) const 🔗
Returns true if the given line is folded. See fold_line().
void join_lines(line_ending: String = " ") 🔗
Joins all selected lines or lines containing a caret with their next line. Whitespace in between will be removed. If the next line has content, the line_ending will be inserted in between.
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) 🔗
移除帶有 start_key 的注釋分隔符號。
void remove_string_delimiter(start_key: String) 🔗
移除帶有 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) 🔗
設定目前選定的補全選項。
void set_code_hint(code_hint: String) 🔗
設定程式碼提示文字。傳遞一個空字串來清除。
void set_code_hint_draw_below(draw_below: bool) 🔗
If true, the code hint will draw below the main caret. If false, the code hint will draw above the main caret. See set_code_hint().
void set_code_region_tags(start: String = "region", end: String = "endregion") 🔗
設定程式碼區域開始和結束標記(無註解分隔符號)。
void set_line_as_bookmarked(line: int, bookmarked: bool) 🔗
Sets the given line as bookmarked. If true and gutters_draw_bookmarks is true, draws the bookmark icon in the gutter for this line. See get_bookmarked_lines() and is_line_bookmarked().
void set_line_as_breakpoint(line: int, breakpointed: bool) 🔗
Sets the given line as a breakpoint. If true and gutters_draw_breakpoints_gutter is true, draws the breakpoint icon in the gutter for this line. See get_breakpointed_lines() and is_line_breakpointed().
void set_line_as_executing(line: int, executing: bool) 🔗
Sets the given line as executing. If true and gutters_draw_executing_lines is true, draws the executing_line icon in the gutter for this line. See get_executing_lines() and is_line_executing().
void set_symbol_lookup_word_as_valid(valid: bool) 🔗
將 symbol_validate 發出的符號設定為有效搜尋。
void toggle_foldable_line(line: int) 🔗
在給定行切換程式碼塊的折疊。
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 that are folded.
Unfolds the given line if it is folded or if it is hidden under a folded line.
void unindent_lines() 🔗
Unindents all lines that are selected or have a caret on them. Uses spaces or a tab depending on indent_use_spaces. Equivalent to the ProjectSettings.input/ui_text_dedent action. See indent_lines().
void update_code_completion_options(force: bool) 🔗
提交所有用 add_code_completion_option() 新增的補全選項。如果 force 是 true,將嘗試強制彈出自動補全功能表 。
注意:這將取代所有目前的候補選項。
主題屬性說明
Color bookmark_color = Color(0.5, 0.64, 1, 0.8) 🔗
書簽圖示的 Color,用於標記了書簽的行。
Color brace_mismatch_color = Color(1, 0.2, 0.2, 1) 🔗
用於高亮不配對括弧文字的 Color。
Color breakpoint_color = Color(0.9, 0.29, 0.3, 1) 🔗
書簽行的中斷點圖示的 Color。
Color code_folding_color = Color(0.8, 0.8, 0.8, 0.8) 🔗
所有與折疊行相關的圖示的 Color。
Color completion_background_color = Color(0.17, 0.16, 0.2, 1) 🔗
設定程式碼補全快顯視窗的背景色 Color。
Color completion_existing_color = Color(0.87, 0.87, 0.87, 0.13) 🔗
用於配對程式碼補全選項中的文字的背景高亮的 Color。
Color completion_scroll_color = Color(1, 1, 1, 0.29) 🔗
程式碼補全快顯視窗中捲軸的 Color。
Color completion_scroll_hovered_color = Color(1, 1, 1, 0.4) 🔗
程式碼補全快顯視窗中捲軸在懸停狀態的 Color。
Color completion_selected_color = Color(0.26, 0.26, 0.27, 1) 🔗
程式碼補全快顯視窗中,目前選定選項的背景高亮的 Color。
Color executing_line_color = Color(0.98, 0.89, 0.27, 1) 🔗
執行行執行圖示的 Color。
Color folded_code_region_color = Color(0.68, 0.46, 0.77, 0.2) 🔗
折疊程式碼區域的背景線所反白的Color。
Color line_length_guideline_color = Color(0.3, 0.5, 0.8, 0.1) 🔗
主行長度輔助線的 Color,次要輔助線將套用 50% 的 Alpha。
Color line_number_color = Color(0.67, 0.67, 0.67, 0.4) 🔗
設定行號的顏色 Color。
同時在程式碼補全快顯視窗中顯示的最大選項數。
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 🔗
程式碼補全快顯視窗中捲軸的寬度。
設定書簽行的自訂 Texture2D,會在書簽欄中繪製。
設定中斷點行的自訂 Texture2D,會在中斷點欄中繪製。
設定可折疊行的自訂 Texture2D,會在折疊行欄中繪製。
Texture2D can_fold_code_region 🔗
設定可折疊行的自訂 Texture2D,會在折疊行欄中繪製。
Texture2D completion_color_bg 🔗
Background panel for the color preview box in autocompletion (visible when the color is translucent).
執行行的圖示,會在執行欄中繪製。
當行被折疊且可以展開時,設定要在行折疊裝訂線中繪製的一個自訂 Texture2D。
Texture2D folded_code_region 🔗
當行被折疊且可以展開時,設定要在行折疊裝訂線中繪製的一個自訂 Texture2D。
設定要繪製在折疊行末尾的一個自訂 Texture2D。
用於程式碼補全彈窗的 StyleBox。