Add `ui.gutter.selected` option for themes (#3303)

* add `ui.gutter.selected`

* add `ui.gutter`, `ui.gutter.selected` to docs
pull/4085/head
ChrHorn 2 years ago committed by GitHub
parent 6939dd3adb
commit 589d17c758
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -219,6 +219,8 @@ These scopes are used for theming the editor interface.
| `ui.cursor.select` | | | `ui.cursor.select` | |
| `ui.cursor.match` | Matching bracket etc. | | `ui.cursor.match` | Matching bracket etc. |
| `ui.cursor.primary` | Cursor with primary selection | | `ui.cursor.primary` | Cursor with primary selection |
| `ui.gutter` | Gutter |
| `ui.gutter.selected` | Gutter for the line the cursor is on |
| `ui.linenr` | Line numbers | | `ui.linenr` | Line numbers |
| `ui.linenr.selected` | Line number for the line the cursor is on | | `ui.linenr.selected` | Line number for the line the cursor is on |
| `ui.statusline` | Statusline | | `ui.statusline` | Statusline |

@ -696,6 +696,7 @@ impl EditorView {
let mut offset = 0; let mut offset = 0;
let gutter_style = theme.get("ui.gutter"); let gutter_style = theme.get("ui.gutter");
let gutter_selected_style = theme.get("ui.gutter.selected");
// avoid lots of small allocations by reusing a text buffer for each line // avoid lots of small allocations by reusing a text buffer for each line
let mut text = String::with_capacity(8); let mut text = String::with_capacity(8);
@ -708,6 +709,12 @@ impl EditorView {
let x = viewport.x + offset; let x = viewport.x + offset;
let y = viewport.y + i as u16; let y = viewport.y + i as u16;
let gutter_style = if selected {
gutter_selected_style
} else {
gutter_style
};
if let Some(style) = gutter(line, selected, &mut text) { if let Some(style) = gutter(line, selected, &mut text) {
surface.set_stringn(x, y, &text, *width, gutter_style.patch(style)); surface.set_stringn(x, y, &text, *width, gutter_style.patch(style));
} else { } else {

Loading…
Cancel
Save