aboutsummaryrefslogtreecommitdiff
path: root/helix-term
diff options
context:
space:
mode:
authorBlaž Hrastnik2021-03-18 05:48:42 +0000
committerBlaž Hrastnik2021-03-18 05:53:29 +0000
commit8ba1e15d296fd3350332d8fa372c4c7703024a67 (patch)
tree31e7efbb2ab5a78f5521c0577f0471df77529e98 /helix-term
parent2b64f49f2c5da800ceae43359c91b9708e953d18 (diff)
Expose doc.syntax() via accessor.
Diffstat (limited to 'helix-term')
-rw-r--r--helix-term/src/commands.rs18
-rw-r--r--helix-term/src/ui/editor.rs2
-rw-r--r--helix-term/src/ui/prompt.rs8
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)>,
}