Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--book/src/editor.md2
-rw-r--r--helix-term/src/ui/statusline.rs9
2 files changed, 8 insertions, 3 deletions
diff --git a/book/src/editor.md b/book/src/editor.md
index b7979205..c2a7af76 100644
--- a/book/src/editor.md
+++ b/book/src/editor.md
@@ -138,7 +138,7 @@ The following statusline elements can be configured:
| `file-type` | The type of the opened file |
| `diagnostics` | The number of warnings and/or errors |
| `workspace-diagnostics` | The number of warnings and/or errors on workspace |
-| `selections` | The number of active selections |
+| `selections` | The primary selection index out of the number of active selections |
| `primary-selection-length` | The number of characters currently in primary selection |
| `position` | The cursor position |
| `position-percentage` | The cursor position as a percentage of the total number of lines |
diff --git a/helix-term/src/ui/statusline.rs b/helix-term/src/ui/statusline.rs
index 4d4b9f2f..df23123c 100644
--- a/helix-term/src/ui/statusline.rs
+++ b/helix-term/src/ui/statusline.rs
@@ -332,10 +332,15 @@ fn render_selections<'a, F>(context: &mut RenderContext<'a>, write: F)
where
F: Fn(&mut RenderContext<'a>, Span<'a>) + Copy,
{
- let count = context.doc.selection(context.view.id).len();
+ let selection = context.doc.selection(context.view.id);
+ let count = selection.len();
write(
context,
- format!(" {} sel{} ", count, if count == 1 { "" } else { "s" }).into(),
+ if count == 1 {
+ " 1 sel ".into()
+ } else {
+ format!(" {}/{count} sels ", selection.primary_index() + 1).into()
+ },
);
}