From 490a81a653dc8f8174ad024a96359d6b973c6d88 Mon Sep 17 00:00:00 2001 From: Martin Nordholts Date: Sun, 4 Jul 2021 17:58:56 +0200 Subject: [PATCH] SyntaxSetBuilder: Allow to list added syntaxes via a syntaxes() method This is analogous to the existing public `SyntaxSet::syntaxes()` method. --- src/parsing/syntax_set.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/parsing/syntax_set.rs b/src/parsing/syntax_set.rs index fa906be7..0083a4a8 100644 --- a/src/parsing/syntax_set.rs +++ b/src/parsing/syntax_set.rs @@ -407,6 +407,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 @@ -830,6 +835,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 = {