Skip to content

Commit

Permalink
feat(statusline): add option to show total line numbers in file (heli…
Browse files Browse the repository at this point in the history
…x-editor#3960)

* feat(statusline): add option to show total line numbers in file

* feat(line numbers): add config to doc book
  • Loading branch information
0xfourzerofour authored and pathwave committed Nov 4, 2022
1 parent dccc161 commit 4860304
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 0 deletions.
1 change: 1 addition & 0 deletions book/src/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ The following statusline elements can be configured:
| `file-name` | The path/name of the opened file |
| `file-encoding` | The encoding of the opened file if it differs from UTF-8 |
| `file-line-ending` | The file line endings (CRLF or LF) |
| `total-line-numbers` | The total line numbers of the opened file |
| `file-type` | The type of the opened file |
| `diagnostics` | The number of warnings and/or errors |
| `selections` | The number of active selections |
Expand Down
10 changes: 10 additions & 0 deletions helix-term/src/ui/statusline.rs
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ where
helix_view::editor::StatusLineElement::Selections => render_selections,
helix_view::editor::StatusLineElement::Position => render_position,
helix_view::editor::StatusLineElement::PositionPercentage => render_position_percentage,
helix_view::editor::StatusLineElement::TotalLineNumbers => render_total_line_numbers,
helix_view::editor::StatusLineElement::Separator => render_separator,
helix_view::editor::StatusLineElement::Spacer => render_spacer,
}
Expand Down Expand Up @@ -276,6 +277,15 @@ where
);
}

fn render_total_line_numbers<F>(context: &mut RenderContext, write: F)
where
F: Fn(&mut RenderContext, String, Option<Style>) + Copy,
{
let total_line_numbers = context.doc.text().len_lines();

write(context, format!(" {} ", total_line_numbers), None);
}

fn render_position_percentage<F>(context: &mut RenderContext, write: F)
where
F: Fn(&mut RenderContext, String, Option<Style>) + Copy,
Expand Down
3 changes: 3 additions & 0 deletions helix-view/src/editor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,9 @@ pub enum StatusLineElement {
/// The cursor position as a percent of the total file
PositionPercentage,

/// The total line numbers of the current file
TotalLineNumbers,

/// A single space
Spacer,
}
Expand Down

0 comments on commit 4860304

Please sign in to comment.