Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'helix-core/src/syntax.rs')
-rw-r--r--helix-core/src/syntax.rs13
1 files changed, 8 insertions, 5 deletions
diff --git a/helix-core/src/syntax.rs b/helix-core/src/syntax.rs
index bbea9bbe..8fda2935 100644
--- a/helix-core/src/syntax.rs
+++ b/helix-core/src/syntax.rs
@@ -21,7 +21,7 @@ use std::{
borrow::Cow,
cell::RefCell,
collections::{HashMap, HashSet, VecDeque},
- fmt::{self, Display},
+ fmt::{self, Display, Write},
hash::{Hash, Hasher},
mem::replace,
path::{Path, PathBuf},
@@ -729,8 +729,11 @@ pub fn read_query(language: &str, filename: &str) -> String {
.replace_all(&query, |captures: &regex::Captures| {
captures[1]
.split(',')
- .map(|language| format!("\n{}\n", read_query(language, filename)))
- .collect::<String>()
+ .fold(String::new(), |mut output, language| {
+ // `write!` to a String cannot fail.
+ write!(output, "\n{}\n", read_query(language, filename)).unwrap();
+ output
+ })
})
.to_string()
}
@@ -1245,7 +1248,7 @@ impl Syntax {
PARSER.with(|ts_parser| {
let ts_parser = &mut ts_parser.borrow_mut();
ts_parser.parser.set_timeout_micros(1000 * 500); // half a second is pretty generours
- let mut cursor = ts_parser.cursors.pop().unwrap_or_else(QueryCursor::new);
+ let mut cursor = ts_parser.cursors.pop().unwrap_or_default();
// TODO: might need to set cursor range
cursor.set_byte_range(0..usize::MAX);
cursor.set_match_limit(TREE_SITTER_MATCH_LIMIT);
@@ -1419,7 +1422,7 @@ impl Syntax {
// Reuse a cursor from the pool if available.
let mut cursor = PARSER.with(|ts_parser| {
let highlighter = &mut ts_parser.borrow_mut();
- highlighter.cursors.pop().unwrap_or_else(QueryCursor::new)
+ highlighter.cursors.pop().unwrap_or_default()
});
// The `captures` iterator borrows the `Tree` and the `QueryCursor`, which