diff --git a/helix-core/src/state.rs b/helix-core/src/state.rs index ffe88c3f6..aa3770919 100644 --- a/helix-core/src/state.rs +++ b/helix-core/src/state.rs @@ -358,7 +358,7 @@ fn skip_over_next(slice: &RopeSlice, pos: &mut usize, fun: F) { let mut chars = slice.chars_at(*pos); - while let Some(ch) = chars.next() { + for ch in chars { if !fun(ch) { break; } @@ -372,7 +372,6 @@ fn skip_over_prev(slice: &RopeSlice, pos: &mut usize, fun: F) { // need to +1 so that prev() includes current char let mut chars = slice.chars_at(*pos + 1); - let mut chars = slice.chars_at(*pos + 1); while let Some(ch) = chars.prev() { if !fun(ch) { diff --git a/helix-core/src/syntax.rs b/helix-core/src/syntax.rs index 3d85ff256..638ec8eea 100644 --- a/helix-core/src/syntax.rs +++ b/helix-core/src/syntax.rs @@ -37,11 +37,11 @@ pub fn highlight_config( let highlights_query = std::fs::read_to_string(self.path.join("queries/highlights.scm")) - .unwrap_or(String::new()); + .unwrap_or_default(); let injections_query = std::fs::read_to_string(self.path.join("queries/injections.scm")) - .unwrap_or(String::new()); + .unwrap_or_default(); let locals_query = ""; @@ -66,7 +66,7 @@ pub fn highlight_config( use once_cell::sync::Lazy; -pub(crate) static LOADER: Lazy = Lazy::new(|| Loader::init()); +pub(crate) static LOADER: Lazy = Lazy::new(Loader::init); pub struct Loader { // highlight_names ? @@ -159,7 +159,7 @@ pub fn new( // let grammar = get_language(&language); let parser = Parser::new(); - let root_layer = LanguageLayer::new(); + let root_layer = LanguageLayer { tree: None }; // track markers of injections // track scope_descriptor: a Vec of scopes for item in tree @@ -317,9 +317,9 @@ pub struct LanguageLayer { use crate::Tendril; impl LanguageLayer { - pub fn new() -> Self { - Self { tree: None } - } + // pub fn new() -> Self { + // Self { tree: None } + // } fn tree(&self) -> &Tree { // TODO: no unwrap diff --git a/helix-term/src/editor.rs b/helix-term/src/editor.rs index 131c285ea..a3d6a04ed 100644 --- a/helix-term/src/editor.rs +++ b/helix-term/src/editor.rs @@ -209,12 +209,11 @@ fn render(&mut self) { } } - let mut line = 0; let style: Style = view.theme.get("ui.linenr").into(); - for i in view.first_line..(last_line as u16) { + for (i, line) in (view.first_line..(last_line as u16)).enumerate() { self.surface - .set_stringn(0, line, format!("{:>5}", i + 1), 5, style); // lavender - line += 1; + .set_stringn(0, line, format!("{:>5}", i + 1), 5, style); + // lavender } // let lines = state diff --git a/helix-view/src/commands.rs b/helix-view/src/commands.rs index d611e4f66..bdfa57ec3 100644 --- a/helix-view/src/commands.rs +++ b/helix-view/src/commands.rs @@ -42,7 +42,7 @@ pub fn move_line_down(view: &mut View, count: usize) { .move_selection(Direction::Forward, Granularity::Line, count); } -pub fn move_line_end(view: &mut View, count: usize) { +pub fn move_line_end(view: &mut View, _count: usize) { // TODO: use a transaction let lines = selection_lines(&view.state); @@ -64,7 +64,7 @@ pub fn move_line_end(view: &mut View, count: usize) { transaction.apply(&mut view.state); } -pub fn move_line_start(view: &mut View, count: usize) { +pub fn move_line_start(view: &mut View, _count: usize) { let lines = selection_lines(&view.state); let positions = lines @@ -208,24 +208,24 @@ fn selection_lines(state: &State) -> Vec { .map(|range| state.doc.char_to_line(range.head)) .collect::>(); - lines.sort(); + lines.sort_unstable(); // sorting by usize so _unstable is preferred lines.dedup(); lines } // I inserts at the start of each line with a selection -pub fn prepend_to_line(view: &mut View, _count: usize) { +pub fn prepend_to_line(view: &mut View, count: usize) { view.state.mode = Mode::Insert; - move_line_start(view, _count); + move_line_start(view, count); } // A inserts at the end of each line with a selection -pub fn append_to_line(view: &mut View, _count: usize) { +pub fn append_to_line(view: &mut View, count: usize) { view.state.mode = Mode::Insert; - move_line_end(view, _count); + move_line_end(view, count); } // o inserts a new line after each line with a selection diff --git a/helix-view/src/theme.rs b/helix-view/src/theme.rs index d61457d73..4cc399ed4 100644 --- a/helix-view/src/theme.rs +++ b/helix-view/src/theme.rs @@ -173,6 +173,7 @@ pub fn get(&self, scope: &str) -> Style { .unwrap_or_else(|| Style::default().fg(Color::Rgb(0, 0, 255))) } + #[inline] pub fn scopes(&self) -> &[String] { &self.scopes } diff --git a/helix-view/src/view.rs b/helix-view/src/view.rs index 0900b0ca1..d96752d04 100644 --- a/helix-view/src/view.rs +++ b/helix-view/src/view.rs @@ -13,11 +13,11 @@ pub struct View { } impl View { - pub fn open(path: PathBuf, size: (u16, u16)) -> Result { + pub fn open(path: PathBuf, size: (u16, u16)) -> Result { let theme = Theme::default(); let state = State::load(path, theme.scopes())?; - let view = View { + let view = Self { state, first_line: 0, size, // TODO: pass in from term