mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-31 05:31:01 +00:00 
			
		
		
		
	Add line length guideline to code editors
This commit is contained in:
		
							parent
							
								
									e0e21984d8
								
							
						
					
					
						commit
						d9c1729a8f
					
				
					 5 changed files with 39 additions and 0 deletions
				
			
		|  | @ -482,6 +482,14 @@ void TextEdit::_notification(int p_what) { | |||
| 			Color color = cache.font_color; | ||||
| 			int in_region=-1; | ||||
| 
 | ||||
| 			if (line_length_guideline) { | ||||
| 				int x=xmargin_beg+cache.font->get_char_size('0').width*line_length_guideline_col-cursor.x_ofs; | ||||
| 				if (x>xmargin_beg && x<xmargin_end) { | ||||
| 					Color guideline_color(color.r,color.g,color.b,color.a*0.25f); | ||||
| 					VisualServer::get_singleton()->canvas_item_add_line(ci,Point2(x,0),Point2(x,cache.size.height),guideline_color); | ||||
| 				} | ||||
| 			} | ||||
| 
 | ||||
| 			if (syntax_coloring) { | ||||
| 
 | ||||
| 				if (custom_bg_color.a>0.01) { | ||||
|  | @ -4508,6 +4516,16 @@ bool TextEdit::is_show_line_numbers_enabled() const { | |||
| 	return line_numbers; | ||||
| } | ||||
| 
 | ||||
| void TextEdit::set_show_line_length_guideline(bool p_show) { | ||||
| 	line_length_guideline=p_show; | ||||
| 	update(); | ||||
| } | ||||
| 
 | ||||
| void TextEdit::set_line_length_guideline_column(int p_column) { | ||||
| 	line_length_guideline_col=p_column; | ||||
| 	update(); | ||||
| } | ||||
| 
 | ||||
| void TextEdit::set_draw_breakpoint_gutter(bool p_draw) { | ||||
| 	draw_breakpoint_gutter = p_draw; | ||||
| 	update(); | ||||
|  | @ -4785,6 +4803,8 @@ TextEdit::TextEdit()  { | |||
| 	completion_line_ofs=0; | ||||
| 	tooltip_obj=NULL; | ||||
| 	line_numbers=false; | ||||
| 	line_length_guideline=false; | ||||
| 	line_length_guideline_col=80; | ||||
| 	draw_breakpoint_gutter=false; | ||||
| 	next_operation_is_complex=false; | ||||
| 	scroll_past_end_of_file_enabled=false; | ||||
|  |  | |||
|  | @ -232,6 +232,8 @@ class TextEdit : public Control  { | |||
| 	bool text_changed_dirty; | ||||
| 	bool undo_enabled; | ||||
| 	bool line_numbers; | ||||
| 	bool line_length_guideline; | ||||
| 	int line_length_guideline_col; | ||||
| 	bool draw_breakpoint_gutter; | ||||
| 	int breakpoint_gutter_width; | ||||
| 
 | ||||
|  | @ -485,6 +487,9 @@ public: | |||
| 	void set_show_line_numbers(bool p_show); | ||||
| 	bool is_show_line_numbers_enabled() const; | ||||
| 
 | ||||
| 	void set_show_line_length_guideline(bool p_show); | ||||
| 	void set_line_length_guideline_column(int p_column); | ||||
| 
 | ||||
| 	void set_draw_breakpoint_gutter(bool p_draw); | ||||
| 	bool is_drawing_breakpoint_gutter() const; | ||||
| 
 | ||||
|  |  | |||
|  | @ -549,6 +549,10 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { | |||
| 	set("text_editor/show_line_numbers", true); | ||||
| 	set("text_editor/show_breakpoint_gutter", true); | ||||
| 
 | ||||
| 	set("text_editor/show_line_length_guideline", false); | ||||
| 	set("text_editor/line_length_guideline_column", 80); | ||||
| 	hints["text_editor/line_length_guideline_column"]=PropertyInfo(Variant::INT,"text_editor/line_length_guideline_column",PROPERTY_HINT_RANGE,"20, 160, 10"); | ||||
| 
 | ||||
| 	set("text_editor/trim_trailing_whitespace_on_save", false); | ||||
| 	set("text_editor/idle_parse_delay",2); | ||||
| 	set("text_editor/create_signal_callbacks",true); | ||||
|  |  | |||
|  | @ -254,6 +254,8 @@ void ScriptTextEditor::update_settings() { | |||
| 	code_editor->get_text_edit()->set_tab_size(EditorSettings::get_singleton()->get("text_editor/tab_size")); | ||||
| 	code_editor->get_text_edit()->set_draw_tabs(EditorSettings::get_singleton()->get("text_editor/draw_tabs")); | ||||
| 	code_editor->get_text_edit()->set_show_line_numbers(EditorSettings::get_singleton()->get("text_editor/show_line_numbers")); | ||||
| 	code_editor->get_text_edit()->set_show_line_length_guideline(EditorSettings::get_singleton()->get("text_editor/show_line_length_guideline")); | ||||
| 	code_editor->get_text_edit()->set_line_length_guideline_column(EditorSettings::get_singleton()->get("text_editor/line_length_guideline_column")); | ||||
| 	code_editor->get_text_edit()->set_syntax_coloring(EditorSettings::get_singleton()->get("text_editor/syntax_highlighting")); | ||||
| 	code_editor->get_text_edit()->set_highlight_all_occurrences(EditorSettings::get_singleton()->get("text_editor/highlight_all_occurrences")); | ||||
| 	code_editor->get_text_edit()->cursor_set_blink_enabled(EditorSettings::get_singleton()->get("text_editor/caret_blink")); | ||||
|  | @ -1281,6 +1283,8 @@ ScriptTextEditor::ScriptTextEditor() { | |||
| 	code_editor->get_text_edit()->set_tab_size(EditorSettings::get_singleton()->get("text_editor/tab_size")); | ||||
| 	code_editor->get_text_edit()->set_draw_tabs(EditorSettings::get_singleton()->get("text_editor/draw_tabs")); | ||||
| 	code_editor->get_text_edit()->set_show_line_numbers(EditorSettings::get_singleton()->get("text_editor/show_line_numbers")); | ||||
| 	code_editor->get_text_edit()->set_show_line_length_guideline(EditorSettings::get_singleton()->get("text_editor/show_line_length_guideline")); | ||||
| 	code_editor->get_text_edit()->set_line_length_guideline_column(EditorSettings::get_singleton()->get("text_editor/line_length_guideline_column")); | ||||
| 	code_editor->get_text_edit()->set_syntax_coloring(EditorSettings::get_singleton()->get("text_editor/syntax_highlighting")); | ||||
| 	code_editor->get_text_edit()->set_highlight_all_occurrences(EditorSettings::get_singleton()->get("text_editor/highlight_all_occurrences")); | ||||
| 	code_editor->get_text_edit()->cursor_set_blink_enabled(EditorSettings::get_singleton()->get("text_editor/caret_blink")); | ||||
|  |  | |||
|  | @ -377,6 +377,8 @@ void ShaderEditor::_editor_settings_changed() { | |||
| 		vertex_editor->get_text_edit()->set_tab_size(EditorSettings::get_singleton()->get("text_editor/tab_size")); | ||||
| 		vertex_editor->get_text_edit()->set_draw_tabs(EditorSettings::get_singleton()->get("text_editor/draw_tabs")); | ||||
| 		vertex_editor->get_text_edit()->set_show_line_numbers(EditorSettings::get_singleton()->get("text_editor/show_line_numbers")); | ||||
| 		vertex_editor->get_text_edit()->set_show_line_length_guideline(EditorSettings::get_singleton()->get("text_editor/show_line_length_guideline")); | ||||
| 		vertex_editor->get_text_edit()->set_line_length_guideline_column(EditorSettings::get_singleton()->get("text_editor/line_length_guideline_column")); | ||||
| 		vertex_editor->get_text_edit()->set_syntax_coloring(EditorSettings::get_singleton()->get("text_editor/syntax_highlighting")); | ||||
| 		vertex_editor->get_text_edit()->set_highlight_all_occurrences(EditorSettings::get_singleton()->get("text_editor/highlight_all_occurrences")); | ||||
| 		vertex_editor->get_text_edit()->cursor_set_blink_enabled(EditorSettings::get_singleton()->get("text_editor/caret_blink")); | ||||
|  | @ -389,6 +391,8 @@ void ShaderEditor::_editor_settings_changed() { | |||
| 		fragment_editor->get_text_edit()->set_tab_size(EditorSettings::get_singleton()->get("text_editor/tab_size")); | ||||
| 		fragment_editor->get_text_edit()->set_draw_tabs(EditorSettings::get_singleton()->get("text_editor/draw_tabs")); | ||||
| 		fragment_editor->get_text_edit()->set_show_line_numbers(EditorSettings::get_singleton()->get("text_editor/show_line_numbers")); | ||||
| 		fragment_editor->get_text_edit()->set_show_line_length_guideline(EditorSettings::get_singleton()->get("text_editor/show_line_length_guideline")); | ||||
| 		fragment_editor->get_text_edit()->set_line_length_guideline_column(EditorSettings::get_singleton()->get("text_editor/line_length_guideline_column")); | ||||
| 		fragment_editor->get_text_edit()->set_syntax_coloring(EditorSettings::get_singleton()->get("text_editor/syntax_highlighting")); | ||||
| 		fragment_editor->get_text_edit()->set_highlight_all_occurrences(EditorSettings::get_singleton()->get("text_editor/highlight_all_occurrences")); | ||||
| 		fragment_editor->get_text_edit()->cursor_set_blink_enabled(EditorSettings::get_singleton()->get("text_editor/caret_blink")); | ||||
|  | @ -401,6 +405,8 @@ void ShaderEditor::_editor_settings_changed() { | |||
| 		light_editor->get_text_edit()->set_tab_size(EditorSettings::get_singleton()->get("text_editor/tab_size")); | ||||
| 		light_editor->get_text_edit()->set_draw_tabs(EditorSettings::get_singleton()->get("text_editor/draw_tabs")); | ||||
| 		light_editor->get_text_edit()->set_show_line_numbers(EditorSettings::get_singleton()->get("text_editor/show_line_numbers")); | ||||
| 		light_editor->get_text_edit()->set_show_line_length_guideline(EditorSettings::get_singleton()->get("text_editor/show_line_length_guideline")); | ||||
| 		light_editor->get_text_edit()->set_line_length_guideline_column(EditorSettings::get_singleton()->get("text_editor/line_length_guideline_column")); | ||||
| 		light_editor->get_text_edit()->set_syntax_coloring(EditorSettings::get_singleton()->get("text_editor/syntax_highlighting")); | ||||
| 		light_editor->get_text_edit()->set_highlight_all_occurrences(EditorSettings::get_singleton()->get("text_editor/highlight_all_occurrences")); | ||||
| 		light_editor->get_text_edit()->cursor_set_blink_enabled(EditorSettings::get_singleton()->get("text_editor/caret_blink")); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Pedro J. Estébanez
						Pedro J. Estébanez