You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-05 12:10:55 +00:00
Script Editor: Add option to disable documentation tooltips
This commit is contained in:
@@ -1237,6 +1237,9 @@
|
|||||||
<member name="text_editor/appearance/whitespace/line_spacing" type="int" setter="" getter="">
|
<member name="text_editor/appearance/whitespace/line_spacing" type="int" setter="" getter="">
|
||||||
The space to add between lines (in pixels). Greater line spacing can help improve readability at the cost of displaying fewer lines on screen.
|
The space to add between lines (in pixels). Greater line spacing can help improve readability at the cost of displaying fewer lines on screen.
|
||||||
</member>
|
</member>
|
||||||
|
<member name="text_editor/behavior/documentation/enable_tooltips" type="bool" setter="" getter="">
|
||||||
|
If [code]true[/code], documentation tooltips will appear when hovering over a symbol.
|
||||||
|
</member>
|
||||||
<member name="text_editor/behavior/files/auto_reload_and_parse_scripts_on_save" type="bool" setter="" getter="">
|
<member name="text_editor/behavior/files/auto_reload_and_parse_scripts_on_save" type="bool" setter="" getter="">
|
||||||
If [code]true[/code], tool scripts will be automatically soft-reloaded after they are saved.
|
If [code]true[/code], tool scripts will be automatically soft-reloaded after they are saved.
|
||||||
</member>
|
</member>
|
||||||
|
|||||||
@@ -719,6 +719,9 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
|
|||||||
_initial_set("text_editor/behavior/files/auto_reload_and_parse_scripts_on_save", true);
|
_initial_set("text_editor/behavior/files/auto_reload_and_parse_scripts_on_save", true);
|
||||||
_initial_set("text_editor/behavior/files/open_dominant_script_on_scene_change", false, true);
|
_initial_set("text_editor/behavior/files/open_dominant_script_on_scene_change", false, true);
|
||||||
|
|
||||||
|
// Behavior: Documentation
|
||||||
|
_initial_set("text_editor/behavior/documentation/enable_tooltips", true, true);
|
||||||
|
|
||||||
// Script list
|
// Script list
|
||||||
_initial_set("text_editor/script_list/show_members_overview", true, true);
|
_initial_set("text_editor/script_list/show_members_overview", true, true);
|
||||||
_initial_set("text_editor/script_list/sort_members_outline_alphabetically", false, true);
|
_initial_set("text_editor/script_list/sort_members_outline_alphabetically", false, true);
|
||||||
|
|||||||
@@ -497,6 +497,24 @@ ScriptEditor *ScriptEditor::script_editor = nullptr;
|
|||||||
|
|
||||||
/*** SCRIPT EDITOR ******/
|
/*** SCRIPT EDITOR ******/
|
||||||
|
|
||||||
|
String ScriptEditor::_get_debug_tooltip(const String &p_text, Node *p_se) {
|
||||||
|
if (EDITOR_GET("text_editor/behavior/documentation/enable_tooltips")) {
|
||||||
|
return String();
|
||||||
|
}
|
||||||
|
|
||||||
|
// NOTE: See also `ScriptTextEditor::_show_symbol_tooltip()` for documentation tooltips enabled.
|
||||||
|
String debug_value = EditorDebuggerNode::get_singleton()->get_var_value(p_text);
|
||||||
|
if (!debug_value.is_empty()) {
|
||||||
|
constexpr int DISPLAY_LIMIT = 1024;
|
||||||
|
if (debug_value.size() > DISPLAY_LIMIT) {
|
||||||
|
debug_value = debug_value.left(DISPLAY_LIMIT) + "... " + TTR("(truncated)");
|
||||||
|
}
|
||||||
|
debug_value = TTR("Current value: ") + debug_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return debug_value;
|
||||||
|
}
|
||||||
|
|
||||||
void ScriptEditor::_breaked(bool p_breaked, bool p_can_debug) {
|
void ScriptEditor::_breaked(bool p_breaked, bool p_can_debug) {
|
||||||
if (external_editor_active) {
|
if (external_editor_active) {
|
||||||
return;
|
return;
|
||||||
@@ -2626,9 +2644,12 @@ bool ScriptEditor::edit(const Ref<Resource> &p_resource, int p_line, int p_col,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// If we delete a script within the filesystem, the original resource path
|
// If we delete a script within the filesystem, the original resource path
|
||||||
// is lost, so keep it as metadata to figure out the exact tab to delete.
|
// is lost, so keep it as `edited_file_data` to figure out the exact tab to delete.
|
||||||
se->edited_file_data.path = p_resource->get_path();
|
se->edited_file_data.path = p_resource->get_path();
|
||||||
se->edited_file_data.last_modified_time = FileAccess::get_modified_time(p_resource->get_path());
|
se->edited_file_data.last_modified_time = FileAccess::get_modified_time(p_resource->get_path());
|
||||||
|
|
||||||
|
se->set_tooltip_request_func(callable_mp(this, &ScriptEditor::_get_debug_tooltip));
|
||||||
|
|
||||||
if (se->get_edit_menu()) {
|
if (se->get_edit_menu()) {
|
||||||
se->get_edit_menu()->hide();
|
se->get_edit_menu()->hide();
|
||||||
menu_hb->add_child(se->get_edit_menu());
|
menu_hb->add_child(se->get_edit_menu());
|
||||||
|
|||||||
@@ -440,6 +440,7 @@ class ScriptEditor : public PanelContainer {
|
|||||||
void _goto_script_line(Ref<RefCounted> p_script, int p_line);
|
void _goto_script_line(Ref<RefCounted> p_script, int p_line);
|
||||||
void _set_execution(Ref<RefCounted> p_script, int p_line);
|
void _set_execution(Ref<RefCounted> p_script, int p_line);
|
||||||
void _clear_execution(Ref<RefCounted> p_script);
|
void _clear_execution(Ref<RefCounted> p_script);
|
||||||
|
String _get_debug_tooltip(const String &p_text, Node *p_se);
|
||||||
void _breaked(bool p_breaked, bool p_can_debug);
|
void _breaked(bool p_breaked, bool p_can_debug);
|
||||||
void _script_created(Ref<Script> p_script);
|
void _script_created(Ref<Script> p_script);
|
||||||
void _set_breakpoint(Ref<RefCounted> p_script, int p_line, bool p_enabled);
|
void _set_breakpoint(Ref<RefCounted> p_script, int p_line, bool p_enabled);
|
||||||
|
|||||||
@@ -1103,6 +1103,10 @@ void ScriptTextEditor::_validate_symbol(const String &p_symbol) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ScriptTextEditor::_show_symbol_tooltip(const String &p_symbol, int p_row, int p_column) {
|
void ScriptTextEditor::_show_symbol_tooltip(const String &p_symbol, int p_row, int p_column) {
|
||||||
|
if (!EDITOR_GET("text_editor/behavior/documentation/enable_tooltips").booleanize()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (p_symbol.begins_with("res://") || p_symbol.begins_with("uid://")) {
|
if (p_symbol.begins_with("res://") || p_symbol.begins_with("uid://")) {
|
||||||
EditorHelpBitTooltip::show_tooltip(code_editor->get_text_editor(), "resource||" + p_symbol);
|
EditorHelpBitTooltip::show_tooltip(code_editor->get_text_editor(), "resource||" + p_symbol);
|
||||||
return;
|
return;
|
||||||
@@ -1203,19 +1207,14 @@ void ScriptTextEditor::_show_symbol_tooltip(const String &p_symbol, int p_row, i
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NOTE: See also `ScriptEditor::_get_debug_tooltip()` for documentation tooltips disabled.
|
||||||
String debug_value = EditorDebuggerNode::get_singleton()->get_var_value(p_symbol);
|
String debug_value = EditorDebuggerNode::get_singleton()->get_var_value(p_symbol);
|
||||||
if (!debug_value.is_empty()) {
|
if (!debug_value.is_empty()) {
|
||||||
constexpr int DISPLAY_LIMIT = 1024;
|
constexpr int DISPLAY_LIMIT = 1024;
|
||||||
if (debug_value.size() > DISPLAY_LIMIT) {
|
if (debug_value.size() > DISPLAY_LIMIT) {
|
||||||
debug_value = debug_value.left(DISPLAY_LIMIT) + "... " + TTR("(truncated)");
|
debug_value = debug_value.left(DISPLAY_LIMIT) + "... " + TTR("(truncated)");
|
||||||
}
|
}
|
||||||
debug_value = debug_value.replace("[", "[lb]");
|
debug_value = TTR("Current value: ") + debug_value.replace("[", "[lb]");
|
||||||
|
|
||||||
if (doc_symbol.is_empty()) {
|
|
||||||
debug_value = p_symbol + ": " + debug_value;
|
|
||||||
} else {
|
|
||||||
debug_value = TTR("Current value: ") + debug_value;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!doc_symbol.is_empty() || !debug_value.is_empty()) {
|
if (!doc_symbol.is_empty() || !debug_value.is_empty()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user