Skip to content

Commit

Permalink
feat: pertty header
Browse files Browse the repository at this point in the history
  • Loading branch information
ofzo committed Jul 29, 2024
1 parent a1e20a3 commit 2134b8a
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 15 deletions.
7 changes: 4 additions & 3 deletions book/src/themes.md
Original file line number Diff line number Diff line change
Expand Up @@ -293,12 +293,13 @@ These scopes are used for theming the editor interface:
| `ui.statusline.select` | Statusline mode during select mode ([only if `editor.color-modes` is enabled][editor-section]) |
| `ui.statusline.separator` | Separator character in statusline |
| `ui.bufferline` | Style for the buffer line |
| `ui.bufferline.active` | Style for the active buffer in buffer line |
| `ui.bufferline.active` | Style for the active buffer in buffer line |
| `ui.bufferline.background` | Style for bufferline background |
| `ui.popup` | Documentation popups (e.g. Space + k) |
| `ui.popup.info` | Prompt for multiple key options |
| `ui.picker.header` | Column names in pickers with multiple columns |
| `ui.picker.header.active` | The column name in pickers with multiple columns where the cursor is entering into. |
| `ui.picker.header` | Header row names in pickers with multiple columns |
| `ui.picker.header.column` | Column names in pickers with multiple columns |
| `ui.picker.header.column.active` | The column name in pickers with multiple columns where the cursor is entering into. |
| `ui.window` | Borderlines separating splits |
| `ui.help` | Description box for commands |
| `ui.text` | Default text style, command prompts, popup text, etc. |
Expand Down
28 changes: 16 additions & 12 deletions helix-term/src/ui/picker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -799,21 +799,25 @@ impl<T: 'static + Send + Sync, D: 'static + Send + Sync> Picker<T, D> {
if self.columns.len() > 1 {
let active_column = self.query.active_column(self.prompt.position());
let header_style = cx.editor.theme.get("ui.picker.header");
let header_column_style = cx.editor.theme.get("ui.picker.header.column");

table = table.header(Row::new(self.columns.iter().map(|column| {
if column.hidden {
Cell::default()
} else {
let style = if active_column.is_some_and(|name| Arc::ptr_eq(name, &column.name))
{
cx.editor.theme.get("ui.picker.header.active")
table = table.header(
Row::new(self.columns.iter().map(|column| {
if column.hidden {
Cell::default()
} else {
header_style
};
let style =
if active_column.is_some_and(|name| Arc::ptr_eq(name, &column.name)) {
cx.editor.theme.get("ui.picker.header.column.active")
} else {
header_column_style
};

Cell::from(Span::styled(Cow::from(&*column.name), style))
}
})));
Cell::from(Span::styled(Cow::from(&*column.name), style))
}
}))
.style(header_style),
);
}

use tui::widgets::TableState;
Expand Down

0 comments on commit 2134b8a

Please sign in to comment.