summaryrefslogtreecommitdiff
path: root/helix-term/src/ui
diff options
context:
space:
mode:
authorBlaž Hrastnik2021-08-19 03:52:07 +0000
committerBlaž Hrastnik2021-08-19 03:52:07 +0000
commit9776553ad057c12ccee8c0d54d419b159977f34e (patch)
tree05823129fb443d368cc7d9a09b81f4180545df0d /helix-term/src/ui
parent115754c5ee5e105ca5b1943abe9b2a1b2299c2bc (diff)
Refactor view.first_line/first_col into view.offset (Position)
Diffstat (limited to 'helix-term/src/ui')
-rw-r--r--helix-term/src/ui/completion.rs2
-rw-r--r--helix-term/src/ui/editor.rs15
2 files changed, 8 insertions, 9 deletions
diff --git a/helix-term/src/ui/completion.rs b/helix-term/src/ui/completion.rs
index 4e01ce1c..985d4e48 100644
--- a/helix-term/src/ui/completion.rs
+++ b/helix-term/src/ui/completion.rs
@@ -261,7 +261,7 @@ impl Component for Completion {
.primary()
.cursor(doc.text().slice(..));
let cursor_pos = (helix_core::coords_at_pos(doc.text().slice(..), cursor_pos).row
- - view.first_line) as u16;
+ - view.offset.row) as u16;
let mut doc = match &option.documentation {
Some(lsp::Documentation::String(contents))
diff --git a/helix-term/src/ui/editor.rs b/helix-term/src/ui/editor.rs
index 5e1e8f50..98462e26 100644
--- a/helix-term/src/ui/editor.rs
+++ b/helix-term/src/ui/editor.rs
@@ -80,10 +80,9 @@ impl EditorView {
view.area.width - GUTTER_OFFSET,
view.area.height.saturating_sub(1),
); // - 1 for statusline
- let offset = Position::new(view.first_line, view.first_col);
let height = view.area.height.saturating_sub(1); // - 1 for statusline
- let highlights = Self::doc_syntax_highlights(doc, offset, height, theme, loader);
+ let highlights = Self::doc_syntax_highlights(doc, view.offset, height, theme, loader);
let highlights = syntax::merge(highlights, Self::doc_diagnostics_highlights(doc, theme));
let highlights: Box<dyn Iterator<Item = HighlightEvent>> = if is_focused {
Box::new(syntax::merge(
@@ -94,7 +93,7 @@ impl EditorView {
Box::new(highlights)
};
- Self::render_text_highlights(doc, offset, area, surface, theme, highlights);
+ Self::render_text_highlights(doc, view.offset, area, surface, theme, highlights);
Self::render_gutter(doc, view, area, surface, theme, config);
if is_focused {
@@ -382,7 +381,7 @@ impl EditorView {
let selection = doc.selection(view.id);
let last_line = view.last_line(doc);
let screen = {
- let start = text.line_to_char(view.first_line);
+ let start = text.line_to_char(view.offset.row);
let end = text.line_to_char(last_line + 1) + 1; // +1 for cursor at end of text.
Range::new(start, end)
};
@@ -408,7 +407,7 @@ impl EditorView {
);
if let Some(head) = head {
// Highlight line number for selected lines.
- let line_number = view.first_line + head.row;
+ let line_number = view.offset.row + head.row;
let line_number_text = if line_number == last_line && !draw_last {
" ~".into()
} else {
@@ -435,8 +434,8 @@ impl EditorView {
if let Some(pos) = pos {
// ensure col is on screen
- if (pos.col as u16) < viewport.width + view.first_col as u16
- && pos.col >= view.first_col
+ if (pos.col as u16) < viewport.width + view.offset.col as u16
+ && pos.col >= view.offset.col
{
let style = theme.try_get("ui.cursor.match").unwrap_or_else(|| {
Style::default()
@@ -479,7 +478,7 @@ impl EditorView {
let current_line = doc
.text()
.char_to_line(doc.selection(view.id).primary().anchor);
- for (i, line) in (view.first_line..(last_line + 1)).enumerate() {
+ for (i, line) in (view.offset.row..(last_line + 1)).enumerate() {
use helix_core::diagnostic::Severity;
if let Some(diagnostic) = doc.diagnostics().iter().find(|d| d.line == line) {
surface.set_stringn(