aboutsummaryrefslogtreecommitdiff
path: root/helix-core/src/syntax.rs
diff options
context:
space:
mode:
authorNathan Vegdahl2021-07-01 19:24:22 +0000
committerNathan Vegdahl2021-07-02 02:06:52 +0000
commitb571f28641787ae4c5750e91899afdccc6d89ed6 (patch)
treea35b5fc93715965d1407c87c2cd592ade579bee2 /helix-core/src/syntax.rs
parent0b2d51cf5a840b6e34d360b34c116bb981b5058e (diff)
Remove #[allow(unused)] from helix-core, and fix unused imports.
Still a bunch more warnings to fix in core, but it's a start.
Diffstat (limited to 'helix-core/src/syntax.rs')
-rw-r--r--helix-core/src/syntax.rs274
1 files changed, 140 insertions, 134 deletions
diff --git a/helix-core/src/syntax.rs b/helix-core/src/syntax.rs
index c556a347..1772b5af 100644
--- a/helix-core/src/syntax.rs
+++ b/helix-core/src/syntax.rs
@@ -1,4 +1,10 @@
-use crate::{chars::char_is_line_ending, regex::Regex, Change, Rope, RopeSlice, Transaction};
+use crate::{
+ chars::char_is_line_ending,
+ regex::Regex,
+ transaction::{ChangeSet, Operation},
+ Rope, RopeSlice, Tendril,
+};
+
pub use helix_syntax::{get_language, get_language_name, Lang};
use arc_swap::ArcSwap;
@@ -8,7 +14,7 @@ use std::{
cell::RefCell,
collections::{HashMap, HashSet},
fmt,
- path::{Path, PathBuf},
+ path::Path,
sync::Arc,
};
@@ -473,12 +479,6 @@ pub struct LanguageLayer {
pub(crate) tree: Option<Tree>,
}
-use crate::{
- coords_at_pos,
- transaction::{ChangeSet, Operation},
- Tendril,
-};
-
impl LanguageLayer {
// pub fn new() -> Self {
// Self { tree: None }
@@ -1776,135 +1776,141 @@ impl<I: Iterator<Item = HighlightEvent>> Iterator for Merge<I> {
}
}
-#[test]
-fn test_parser() {
- let highlight_names: Vec<String> = [
- "attribute",
- "constant",
- "function.builtin",
- "function",
- "keyword",
- "operator",
- "property",
- "punctuation",
- "punctuation.bracket",
- "punctuation.delimiter",
- "string",
- "string.special",
- "tag",
- "type",
- "type.builtin",
- "variable",
- "variable.builtin",
- "variable.parameter",
- ]
- .iter()
- .cloned()
- .map(String::from)
- .collect();
-
- let language = get_language(Lang::Rust);
- let mut config = HighlightConfiguration::new(
- language,
- &std::fs::read_to_string(
- "../helix-syntax/languages/tree-sitter-rust/queries/highlights.scm",
- )
- .unwrap(),
- &std::fs::read_to_string(
- "../helix-syntax/languages/tree-sitter-rust/queries/injections.scm",
- )
- .unwrap(),
- "", // locals.scm
- )
- .unwrap();
- config.configure(&highlight_names);
-
- let source = Rope::from_str(
- "
- struct Stuff {}
- fn main() {}
- ",
- );
- let syntax = Syntax::new(&source, Arc::new(config));
- let tree = syntax.tree();
- let root = tree.root_node();
- assert_eq!(root.kind(), "source_file");
-
- assert_eq!(
- root.to_sexp(),
- concat!(
- "(source_file ",
- "(struct_item name: (type_identifier) body: (field_declaration_list)) ",
- "(function_item name: (identifier) parameters: (parameters) body: (block)))"
+#[cfg(test)]
+mod test {
+ use super::*;
+ use crate::{Rope, Transaction};
+
+ #[test]
+ fn test_parser() {
+ let highlight_names: Vec<String> = [
+ "attribute",
+ "constant",
+ "function.builtin",
+ "function",
+ "keyword",
+ "operator",
+ "property",
+ "punctuation",
+ "punctuation.bracket",
+ "punctuation.delimiter",
+ "string",
+ "string.special",
+ "tag",
+ "type",
+ "type.builtin",
+ "variable",
+ "variable.builtin",
+ "variable.parameter",
+ ]
+ .iter()
+ .cloned()
+ .map(String::from)
+ .collect();
+
+ let language = get_language(Lang::Rust);
+ let mut config = HighlightConfiguration::new(
+ language,
+ &std::fs::read_to_string(
+ "../helix-syntax/languages/tree-sitter-rust/queries/highlights.scm",
+ )
+ .unwrap(),
+ &std::fs::read_to_string(
+ "../helix-syntax/languages/tree-sitter-rust/queries/injections.scm",
+ )
+ .unwrap(),
+ "", // locals.scm
)
- );
+ .unwrap();
+ config.configure(&highlight_names);
+
+ let source = Rope::from_str(
+ "
+ struct Stuff {}
+ fn main() {}
+ ",
+ );
+ let syntax = Syntax::new(&source, Arc::new(config));
+ let tree = syntax.tree();
+ let root = tree.root_node();
+ assert_eq!(root.kind(), "source_file");
+
+ assert_eq!(
+ root.to_sexp(),
+ concat!(
+ "(source_file ",
+ "(struct_item name: (type_identifier) body: (field_declaration_list)) ",
+ "(function_item name: (identifier) parameters: (parameters) body: (block)))"
+ )
+ );
- let struct_node = root.child(0).unwrap();
- assert_eq!(struct_node.kind(), "struct_item");
-}
+ let struct_node = root.child(0).unwrap();
+ assert_eq!(struct_node.kind(), "struct_item");
+ }
-#[test]
-fn test_input_edits() {
- use crate::State;
- use tree_sitter::InputEdit;
-
- let mut state = State::new("hello world!\ntest 123".into());
- let transaction = Transaction::change(
- &state.doc,
- vec![(6, 11, Some("test".into())), (12, 17, None)].into_iter(),
- );
- let edits = LanguageLayer::generate_edits(state.doc.slice(..), transaction.changes());
- // transaction.apply(&mut state);
-
- assert_eq!(
- edits,
- &[
- InputEdit {
- start_byte: 6,
- old_end_byte: 11,
- new_end_byte: 10,
- start_position: Point { row: 0, column: 6 },
- old_end_position: Point { row: 0, column: 11 },
- new_end_position: Point { row: 0, column: 10 }
- },
- InputEdit {
- start_byte: 12,
- old_end_byte: 17,
- new_end_byte: 12,
- start_position: Point { row: 0, column: 12 },
- old_end_position: Point { row: 1, column: 4 },
- new_end_position: Point { row: 0, column: 12 }
- }
- ]
- );
-
- // Testing with the official example from tree-sitter
- let mut state = State::new("fn test() {}".into());
- let transaction =
- Transaction::change(&state.doc, vec![(8, 8, Some("a: u32".into()))].into_iter());
- let edits = LanguageLayer::generate_edits(state.doc.slice(..), transaction.changes());
- transaction.apply(&mut state.doc);
-
- assert_eq!(state.doc, "fn test(a: u32) {}");
- assert_eq!(
- edits,
- &[InputEdit {
- start_byte: 8,
- old_end_byte: 8,
- new_end_byte: 14,
- start_position: Point { row: 0, column: 8 },
- old_end_position: Point { row: 0, column: 8 },
- new_end_position: Point { row: 0, column: 14 }
- }]
- );
-}
+ #[test]
+ fn test_input_edits() {
+ use crate::State;
+ use tree_sitter::InputEdit;
+
+ let mut state = State::new("hello world!\ntest 123".into());
+ let transaction = Transaction::change(
+ &state.doc,
+ vec![(6, 11, Some("test".into())), (12, 17, None)].into_iter(),
+ );
+ let edits = LanguageLayer::generate_edits(state.doc.slice(..), transaction.changes());
+ // transaction.apply(&mut state);
+
+ assert_eq!(
+ edits,
+ &[
+ InputEdit {
+ start_byte: 6,
+ old_end_byte: 11,
+ new_end_byte: 10,
+ start_position: Point { row: 0, column: 6 },
+ old_end_position: Point { row: 0, column: 11 },
+ new_end_position: Point { row: 0, column: 10 }
+ },
+ InputEdit {
+ start_byte: 12,
+ old_end_byte: 17,
+ new_end_byte: 12,
+ start_position: Point { row: 0, column: 12 },
+ old_end_position: Point { row: 1, column: 4 },
+ new_end_position: Point { row: 0, column: 12 }
+ }
+ ]
+ );
+
+ // Testing with the official example from tree-sitter
+ let mut state = State::new("fn test() {}".into());
+ let transaction =
+ Transaction::change(&state.doc, vec![(8, 8, Some("a: u32".into()))].into_iter());
+ let edits = LanguageLayer::generate_edits(state.doc.slice(..), transaction.changes());
+ transaction.apply(&mut state.doc);
+
+ assert_eq!(state.doc, "fn test(a: u32) {}");
+ assert_eq!(
+ edits,
+ &[InputEdit {
+ start_byte: 8,
+ old_end_byte: 8,
+ new_end_byte: 14,
+ start_position: Point { row: 0, column: 8 },
+ old_end_position: Point { row: 0, column: 8 },
+ new_end_position: Point { row: 0, column: 14 }
+ }]
+ );
+ }
-#[test]
-fn test_load_runtime_file() {
- // Test to make sure we can load some data from the runtime directory.
- let contents = load_runtime_file("rust", "indents.toml").unwrap();
- assert!(!contents.is_empty());
+ #[test]
+ fn test_load_runtime_file() {
+ // Test to make sure we can load some data from the runtime directory.
+ let contents = load_runtime_file("rust", "indents.toml").unwrap();
+ assert!(!contents.is_empty());
- let results = load_runtime_file("rust", "does-not-exist");
- assert!(results.is_err());
+ let results = load_runtime_file("rust", "does-not-exist");
+ assert!(results.is_err());
+ }
}