@@ -1511,6 +1511,26 @@ bool CodeEdit::is_line_numbers_zero_padded() const {
15111511	return  line_number_padding == " 0" 
15121512}
15131513
1514+ void  CodeEdit::set_line_numbers_min_digits (int  p_count) {
1515+ 	if  (line_numbers_min_digits == p_count) {
1516+ 		return ;
1517+ 	}
1518+ 	line_numbers_min_digits = p_count;
1519+ 
1520+ 	int  digits = MAX (line_numbers_min_digits, std::log10 (get_line_count ()) + 1 );
1521+ 	if  (digits == line_number_digits) {
1522+ 		return ;
1523+ 	}
1524+ 	line_number_digits = digits;
1525+ 	_clear_line_number_text_cache ();
1526+ 	_update_line_number_gutter_width ();
1527+ 	queue_redraw ();
1528+ }
1529+ 
1530+ int  CodeEdit::get_line_numbers_min_digits () const  {
1531+ 	return  line_numbers_min_digits;
1532+ }
1533+ 
15141534void  CodeEdit::_line_number_draw_callback (int  p_line, int  p_gutter, const  Rect2 &p_region) {
15151535	if  (!Rect2 (Vector2 (0 , 0 ), get_size ()).intersects (p_region)) {
15161536		return ;
@@ -2800,6 +2820,8 @@ void CodeEdit::_bind_methods() {
28002820	ClassDB::bind_method (D_METHOD (" is_draw_line_numbers_enabled" 
28012821	ClassDB::bind_method (D_METHOD (" set_line_numbers_zero_padded" " enable" 
28022822	ClassDB::bind_method (D_METHOD (" is_line_numbers_zero_padded" 
2823+ 	ClassDB::bind_method (D_METHOD (" set_line_numbers_min_digits" " count" 
2824+ 	ClassDB::bind_method (D_METHOD (" get_line_numbers_min_digits" 
28032825
28042826	/*  Fold Gutter */ 
28052827	ClassDB::bind_method (D_METHOD (" set_draw_fold_gutter" " enable" 
@@ -2944,6 +2966,7 @@ void CodeEdit::_bind_methods() {
29442966
29452967	ADD_PROPERTY (PropertyInfo (Variant::BOOL, " gutters_draw_line_numbers" " set_draw_line_numbers" " is_draw_line_numbers_enabled" 
29462968	ADD_PROPERTY (PropertyInfo (Variant::BOOL, " gutters_zero_pad_line_numbers" " set_line_numbers_zero_padded" " is_line_numbers_zero_padded" 
2969+ 	ADD_PROPERTY (PropertyInfo (Variant::INT, " gutters_line_numbers_min_digits" " 1,5,1" " set_line_numbers_min_digits" " get_line_numbers_min_digits" 
29472970
29482971	ADD_PROPERTY (PropertyInfo (Variant::BOOL, " gutters_draw_fold_gutter" " set_draw_fold_gutter" " is_drawing_fold_gutter" 
29492972
@@ -3823,7 +3846,7 @@ void CodeEdit::_text_changed() {
38233846	}
38243847
38253848	int  lc = get_line_count ();
3826- 	int  new_line_number_digits = std::log10 (lc) + 1 ;
3849+ 	int  new_line_number_digits = MAX (line_numbers_min_digits,  std::log10 (lc) + 1 ) ;
38273850	if  (line_number_digits != new_line_number_digits) {
38283851		_clear_line_number_text_cache ();
38293852	}
0 commit comments