Make minimum width for line numbers in gutter configurable (#31959)
Closes #7334 # Changes This PR makes the minimum width allocated for line numbers in the side gutter configurable in units of character width via the `"line_number_base_width"` attribute in `gutter` settings. Set the previously hard coded value of `4` as default. Together with other settings (`"folds"`, `"breakpoints"`,...) this gives the user control over the gutter width. If the number of lines exceedes the base width, the number of digits in the largest line number is chosen instead. This is consistent with previous behaviour. Screenshot for reference: <img width="1104" alt="Screenshot 2025-06-03 at 12 15 29" src="https://github.com/user-attachments/assets/77c869ad-164b-4b74-8e39-8be43d740ad4" /> P.S.: This is my first time contributing to zed (yay!🎉). Let me know if i'm missing something. Release Notes: - Make minimum line number width in gutter configurable
This commit is contained in:
@@ -6,10 +6,10 @@ use crate::{
|
||||
Editor, EditorMode, EditorSettings, EditorSnapshot, EditorStyle, FILE_HEADER_HEIGHT,
|
||||
FocusedBlock, GutterDimensions, HalfPageDown, HalfPageUp, HandleInput, HoveredCursor,
|
||||
InlayHintRefreshReason, InlineCompletion, JumpData, LineDown, LineHighlight, LineUp,
|
||||
MAX_LINE_LEN, MIN_LINE_NUMBER_DIGITS, MINIMAP_FONT_SIZE, MULTI_BUFFER_EXCERPT_HEADER_HEIGHT,
|
||||
OpenExcerpts, PageDown, PageUp, PhantomBreakpointIndicator, Point, RowExt, RowRangeExt,
|
||||
SelectPhase, SelectedTextHighlight, Selection, SelectionDragState, SoftWrap,
|
||||
StickyHeaderExcerpt, ToPoint, ToggleFold,
|
||||
MAX_LINE_LEN, MINIMAP_FONT_SIZE, MULTI_BUFFER_EXCERPT_HEADER_HEIGHT, OpenExcerpts, PageDown,
|
||||
PageUp, PhantomBreakpointIndicator, Point, RowExt, RowRangeExt, SelectPhase,
|
||||
SelectedTextHighlight, Selection, SelectionDragState, SoftWrap, StickyHeaderExcerpt, ToPoint,
|
||||
ToggleFold,
|
||||
code_context_menus::{CodeActionsMenu, MENU_ASIDE_MAX_WIDTH, MENU_ASIDE_MIN_WIDTH, MENU_GAP},
|
||||
display_map::{
|
||||
Block, BlockContext, BlockStyle, DisplaySnapshot, EditorMargins, FoldId, HighlightedChunk,
|
||||
@@ -2826,7 +2826,8 @@ impl EditorElement {
|
||||
let available_width = gutter_dimensions.left_padding - git_gutter_width;
|
||||
|
||||
let editor = self.editor.clone();
|
||||
let is_wide = max_line_number_length >= MIN_LINE_NUMBER_DIGITS
|
||||
let is_wide = max_line_number_length
|
||||
>= EditorSettings::get_global(cx).gutter.min_line_number_digits as u32
|
||||
&& row_info
|
||||
.buffer_row
|
||||
.is_some_and(|row| (row + 1).ilog10() + 1 == max_line_number_length)
|
||||
|
||||
Reference in New Issue
Block a user