on master help sign in
Add register statusline element (#7222)
commit00b152facd8cc9d671f1781a3b931bcc9830efce authorspectre256 <72505298+spectre256@users.noreply.github.com> dateThu 8 Jun 2023, 15:34 (3 years ago) parent993c68a
3 files changed+21−1
book/src/configuration.md+1 helix-term/src/ui/statusline.rs+10 helix-view/src/editor.rs+10−1
book/src/configuration.md+1
@@ -117,6 +117,7 @@ The following statusline elements can be configured:
117117| `separator` | The string defined in `editor.statusline.separator` (defaults to `"│"`) |
118118| `spacer` | Inserts a space between elements (multiple/contiguous spacers may be specified) |
119119| `version-control` | The current branch name or detached commit hash of the opened workspace |
120+| `register` | The current selected register |
120121
121122### `[editor.lsp]` Section
122123
helix-term/src/ui/statusline.rs+10
@@ -160,6 +160,7 @@ where
160160 helix_view::editor::StatusLineElement::Separator => render_separator,
161161 helix_view::editor::StatusLineElement::Spacer => render_spacer,
162162 helix_view::editor::StatusLineElement::VersionControl => render_version_control,
163+ helix_view::editor::StatusLineElement::Register => render_register,
163164 }
164165}
165166
@@ -489,3 +490,12 @@ where
489490
490491 write(context, head, None);
491492}
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 {
403403 E::FileModificationIndicator,
404404 ],
405405 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+ ],
407413 separator: String::from("│"),
408414 mode: ModeConfig::default(),
409415 }
@@ -484,6 +490,9 @@ pub enum StatusLineElement {
484490
485491 /// Current version control information
486492 VersionControl,
493+
494+ /// Indicator for selected register
495+ Register,
487496}
488497
489498// Cursor shape is read and used on every rendered frame and so needs