diff options
author | Blaž Hrastnik | 2021-03-18 05:48:42 +0000 |
---|---|---|
committer | Blaž Hrastnik | 2021-03-18 05:53:29 +0000 |
commit | 8ba1e15d296fd3350332d8fa372c4c7703024a67 (patch) | |
tree | 31e7efbb2ab5a78f5521c0577f0471df77529e98 /helix-term | |
parent | 2b64f49f2c5da800ceae43359c91b9708e953d18 (diff) |
Expose doc.syntax() via accessor.
Diffstat (limited to 'helix-term')
-rw-r--r-- | helix-term/src/commands.rs | 18 | ||||
-rw-r--r-- | helix-term/src/ui/editor.rs | 2 | ||||
-rw-r--r-- | helix-term/src/ui/prompt.rs | 8 |
3 files changed, 10 insertions, 18 deletions
diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs index 9179a5ce..5b742e43 100644 --- a/helix-term/src/commands.rs +++ b/helix-term/src/commands.rs @@ -770,12 +770,8 @@ pub fn open_below(cx: &mut Context) { let changes: Vec<Change> = positions .map(|index| { // TODO: share logic with insert_newline for indentation - let indent_level = helix_core::indent::suggested_indent_for_pos( - doc.syntax.as_ref(), - text, - index, - true, - ); + let indent_level = + helix_core::indent::suggested_indent_for_pos(doc.syntax(), text, index, true); let indent = " ".repeat(TAB_WIDTH).repeat(indent_level); let mut text = String::with_capacity(1 + indent.len()); text.push('\n'); @@ -970,12 +966,8 @@ pub mod insert { let doc = cx.doc(); let text = doc.text().slice(..); let transaction = Transaction::change_by_selection(doc.text(), doc.selection(), |range| { - let indent_level = helix_core::indent::suggested_indent_for_pos( - doc.syntax.as_ref(), - text, - range.head, - true, - ); + let indent_level = + helix_core::indent::suggested_indent_for_pos(doc.syntax(), text, range.head, true); let indent = " ".repeat(TAB_WIDTH).repeat(indent_level); let mut text = String::with_capacity(1 + indent.len()); text.push('\n'); @@ -1434,7 +1426,7 @@ pub fn toggle_comments(cx: &mut Context) { pub fn expand_selection(cx: &mut Context) { let doc = cx.doc(); - if let Some(syntax) = &doc.syntax { + if let Some(syntax) = doc.syntax() { let text = doc.text().slice(..); let selection = object::expand_selection(syntax, text, doc.selection()); doc.set_selection(selection); diff --git a/helix-term/src/ui/editor.rs b/helix-term/src/ui/editor.rs index 8ba6d901..5e8ef05e 100644 --- a/helix-term/src/ui/editor.rs +++ b/helix-term/src/ui/editor.rs @@ -90,7 +90,7 @@ impl EditorView { // TODO: range doesn't actually restrict source, just highlight range // TODO: cache highlight results // TODO: only recalculate when state.doc is actually modified - let highlights: Vec<_> = match &view.doc.syntax { + let highlights: Vec<_> = match view.doc.syntax() { Some(syntax) => { syntax .highlight_iter(text.slice(..), Some(range), None, |_| None) diff --git a/helix-term/src/ui/prompt.rs b/helix-term/src/ui/prompt.rs index 700bc8a0..19885c02 100644 --- a/helix-term/src/ui/prompt.rs +++ b/helix-term/src/ui/prompt.rs @@ -7,11 +7,11 @@ use std::borrow::Cow; use std::string::String; pub struct Prompt { - pub prompt: String, + prompt: String, pub line: String, - pub cursor: usize, - pub completion: Vec<Cow<'static, str>>, - pub completion_selection_index: Option<usize>, + cursor: usize, + completion: Vec<Cow<'static, str>>, + completion_selection_index: Option<usize>, completion_fn: Box<dyn FnMut(&str) -> Vec<Cow<'static, str>>>, callback_fn: Box<dyn FnMut(&mut Editor, &str, PromptEvent)>, } |