on master help sign in
Add register statusline element (#7222)
00b152fspectre256
book/src/configuration.md+1
@@ -117,6 +117,7 @@ The following statusline elements can be configured:
117| `separator` | The string defined in `editor.statusline.separator` (defaults to `"│"`) |
117| `separator` | The string defined in `editor.statusline.separator` (defaults to `"│"`) |
118| `spacer` | Inserts a space between elements (multiple/contiguous spacers may be specified) |
118| `spacer` | Inserts a space between elements (multiple/contiguous spacers may be specified) |
119| `version-control` | The current branch name or detached commit hash of the opened workspace |
119| `version-control` | The current branch name or detached commit hash of the opened workspace |
120+| `register` | The current selected register |
120
121
121### `[editor.lsp]` Section
122### `[editor.lsp]` Section
122
123
helix-term/src/ui/statusline.rs+10
@@ -160,6 +160,7 @@ where
160 helix_view::editor::StatusLineElement::Separator => render_separator,
160 helix_view::editor::StatusLineElement::Separator => render_separator,
161 helix_view::editor::StatusLineElement::Spacer => render_spacer,
161 helix_view::editor::StatusLineElement::Spacer => render_spacer,
162 helix_view::editor::StatusLineElement::VersionControl => render_version_control,
162 helix_view::editor::StatusLineElement::VersionControl => render_version_control,
163+ helix_view::editor::StatusLineElement::Register => render_register,
163 }
164 }
164}
165}
165
166
@@ -489,3 +490,12 @@ where
489
490
490 write(context, head, None);
491 write(context, head, None);
491}
492}
493+
494+fn render_register<F>(context: &mut RenderContext, write: F)
495+where
496+ F: Fn(&mut RenderContext, String, Option<Style>) + Copy,
497+{
498+ if let Some(reg) = context.editor.selected_register {
499+ write(context, format!(" reg={} ", reg), None)
500+ }
501+}
helix-view/src/editor.rs+10−1
@@ -403,7 +403,13 @@ impl Default for StatusLineConfig {
403 E::FileModificationIndicator,
403 E::FileModificationIndicator,
404 ],
404 ],
405 center: vec![],
405 center: vec![],
406− right: vec![E::Diagnostics, E::Selections, E::Position, E::FileEncoding],
406+ right: vec![
407+ E::Diagnostics,
408+ E::Selections,
409+ E::Register,
410+ E::Position,
411+ E::FileEncoding,
412+ ],
407 separator: String::from("│"),
413 separator: String::from("│"),
408 mode: ModeConfig::default(),
414 mode: ModeConfig::default(),
409 }
415 }
@@ -484,6 +490,9 @@ pub enum StatusLineElement {
484
490
485 /// Current version control information
491 /// Current version control information
486 VersionControl,
492 VersionControl,
493+
494+ /// Indicator for selected register
495+ Register,
487}
496}
488
497
489// Cursor shape is read and used on every rendered frame and so needs
498// Cursor shape is read and used on every rendered frame and so needs