Merge pull request #28366 from iwek7/feature/issue28355/showSpacesInEditor
Add feature to show spaces in code editor
This commit is contained in:
@@ -1252,6 +1252,11 @@ void TextEdit::_notification(int p_what) {
|
||||
cache.tab_icon->draw(ci, Point2(char_ofs + char_margin + ofs_x, ofs_y + yofs), in_selection && override_selected_font_color ? cache.font_selected_color : color);
|
||||
}
|
||||
|
||||
if (draw_spaces && str[j] == ' ') {
|
||||
int yofs = (get_row_height() - cache.space_icon->get_height()) / 2;
|
||||
cache.space_icon->draw(ci, Point2(char_ofs + char_margin + ofs_x, ofs_y + yofs), in_selection && override_selected_font_color ? cache.font_selected_color : color);
|
||||
}
|
||||
|
||||
char_ofs += char_w;
|
||||
|
||||
if (line_wrap_index == line_wrap_amount && j == str.length() - 1 && is_folded(line)) {
|
||||
@@ -4510,6 +4515,7 @@ void TextEdit::_update_caches() {
|
||||
#endif
|
||||
cache.row_height = cache.font->get_height() + cache.line_spacing;
|
||||
cache.tab_icon = get_icon("tab");
|
||||
cache.space_icon = get_icon("space");
|
||||
cache.folded_icon = get_icon("folded");
|
||||
cache.can_fold_icon = get_icon("fold");
|
||||
cache.folded_eol_icon = get_icon("GuiEllipsis", "EditorIcons");
|
||||
@@ -5646,6 +5652,16 @@ bool TextEdit::is_drawing_tabs() const {
|
||||
return draw_tabs;
|
||||
}
|
||||
|
||||
void TextEdit::set_draw_spaces(bool p_draw) {
|
||||
|
||||
draw_spaces = p_draw;
|
||||
}
|
||||
|
||||
bool TextEdit::is_drawing_spaces() const {
|
||||
|
||||
return draw_spaces;
|
||||
}
|
||||
|
||||
void TextEdit::set_override_selected_font_color(bool p_override_selected_font_color) {
|
||||
override_selected_font_color = p_override_selected_font_color;
|
||||
}
|
||||
@@ -6379,6 +6395,8 @@ void TextEdit::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("is_show_line_numbers_enabled"), &TextEdit::is_show_line_numbers_enabled);
|
||||
ClassDB::bind_method(D_METHOD("set_draw_tabs"), &TextEdit::set_draw_tabs);
|
||||
ClassDB::bind_method(D_METHOD("is_drawing_tabs"), &TextEdit::is_drawing_tabs);
|
||||
ClassDB::bind_method(D_METHOD("set_draw_spaces"), &TextEdit::set_draw_spaces);
|
||||
ClassDB::bind_method(D_METHOD("is_drawing_spaces"), &TextEdit::is_drawing_spaces);
|
||||
ClassDB::bind_method(D_METHOD("set_breakpoint_gutter_enabled", "enable"), &TextEdit::set_breakpoint_gutter_enabled);
|
||||
ClassDB::bind_method(D_METHOD("is_breakpoint_gutter_enabled"), &TextEdit::is_breakpoint_gutter_enabled);
|
||||
ClassDB::bind_method(D_METHOD("set_draw_fold_gutter"), &TextEdit::set_draw_fold_gutter);
|
||||
@@ -6430,6 +6448,7 @@ void TextEdit::_bind_methods() {
|
||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "syntax_highlighting"), "set_syntax_coloring", "is_syntax_coloring_enabled");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "show_line_numbers"), "set_show_line_numbers", "is_show_line_numbers_enabled");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "draw_tabs"), "set_draw_tabs", "is_drawing_tabs");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "draw_spaces"), "set_draw_spaces", "is_drawing_spaces");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "breakpoint_gutter"), "set_breakpoint_gutter_enabled", "is_breakpoint_gutter_enabled");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "fold_gutter"), "set_draw_fold_gutter", "is_drawing_fold_gutter");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "highlight_all_occurrences"), "set_highlight_all_occurrences", "is_highlight_all_occurrences_enabled");
|
||||
@@ -6471,6 +6490,7 @@ TextEdit::TextEdit() {
|
||||
|
||||
setting_row = false;
|
||||
draw_tabs = false;
|
||||
draw_spaces = false;
|
||||
override_selected_font_color = false;
|
||||
draw_caret = true;
|
||||
max_chars = 0;
|
||||
|
||||
Reference in New Issue
Block a user