diff --git a/src/parsing/syntax_set.rs b/src/parsing/syntax_set.rs index ef0085bd..78e5028a 100644 --- a/src/parsing/syntax_set.rs +++ b/src/parsing/syntax_set.rs @@ -431,6 +431,11 @@ impl SyntaxSetBuilder { self.syntaxes.push(syntax); } + /// The list of syntaxes added so far. + pub fn syntaxes(&self) -> &[SyntaxDefinition] { + &self.syntaxes[..] + } + /// A rarely useful method that loads in a syntax with no highlighting rules for plain text /// /// Exists mainly for adding the plain text syntax to syntax set dumps, because for some reason @@ -854,6 +859,18 @@ mod tests { assert_ops_contain(&ops, &expected); } + #[test] + fn can_list_added_syntaxes() { + let mut builder = SyntaxSetBuilder::new(); + builder.add(syntax_a()); + builder.add(syntax_b()); + let syntaxes = builder.syntaxes(); + + assert_eq!(syntaxes.len(), 2); + assert_eq!(syntaxes[0].name, "A"); + assert_eq!(syntaxes[1].name, "B"); + } + #[test] fn can_add_more_syntaxes_with_builder() { let syntax_set_original = {