diff options
Diffstat (limited to 'support/texlab/crates/parser/src/latex/tests.rs')
-rw-r--r-- | support/texlab/crates/parser/src/latex/tests.rs | 251 |
1 files changed, 153 insertions, 98 deletions
diff --git a/support/texlab/crates/parser/src/latex/tests.rs b/support/texlab/crates/parser/src/latex/tests.rs index 9c086c43fd..2c9dc9335f 100644 --- a/support/texlab/crates/parser/src/latex/tests.rs +++ b/support/texlab/crates/parser/src/latex/tests.rs @@ -560,21 +560,21 @@ fn test_command_definition_no_argc() { check( r#"\newcommand{\foo}{foo}"#, expect![[r#" - ROOT@0..22 - PREAMBLE@0..22 - COMMAND_DEFINITION@0..22 - COMMAND_NAME@0..11 "\\newcommand" - CURLY_GROUP_COMMAND@11..17 - L_CURLY@11..12 "{" - COMMAND_NAME@12..16 "\\foo" - R_CURLY@16..17 "}" - CURLY_GROUP@17..22 - L_CURLY@17..18 "{" - TEXT@18..21 - WORD@18..21 "foo" - R_CURLY@21..22 "}" + ROOT@0..22 + PREAMBLE@0..22 + NEW_COMMAND_DEFINITION@0..22 + COMMAND_NAME@0..11 "\\newcommand" + CURLY_GROUP_COMMAND@11..17 + L_CURLY@11..12 "{" + COMMAND_NAME@12..16 "\\foo" + R_CURLY@16..17 "}" + CURLY_GROUP@17..22 + L_CURLY@17..18 "{" + TEXT@18..21 + WORD@18..21 "foo" + R_CURLY@21..22 "}" - "#]], + "#]], ); } @@ -583,16 +583,16 @@ fn test_command_definition_no_impl() { check( r#"\newcommand{\foo}"#, expect![[r#" - ROOT@0..17 - PREAMBLE@0..17 - COMMAND_DEFINITION@0..17 - COMMAND_NAME@0..11 "\\newcommand" - CURLY_GROUP_COMMAND@11..17 - L_CURLY@11..12 "{" - COMMAND_NAME@12..16 "\\foo" - R_CURLY@16..17 "}" + ROOT@0..17 + PREAMBLE@0..17 + NEW_COMMAND_DEFINITION@0..17 + COMMAND_NAME@0..11 "\\newcommand" + CURLY_GROUP_COMMAND@11..17 + L_CURLY@11..12 "{" + COMMAND_NAME@12..16 "\\foo" + R_CURLY@16..17 "}" - "#]], + "#]], ); } @@ -601,15 +601,15 @@ fn test_command_definition_no_impl_error() { check( r#"\newcommand{\foo"#, expect![[r#" - ROOT@0..16 - PREAMBLE@0..16 - COMMAND_DEFINITION@0..16 - COMMAND_NAME@0..11 "\\newcommand" - CURLY_GROUP_COMMAND@11..16 - L_CURLY@11..12 "{" - COMMAND_NAME@12..16 "\\foo" + ROOT@0..16 + PREAMBLE@0..16 + NEW_COMMAND_DEFINITION@0..16 + COMMAND_NAME@0..11 "\\newcommand" + CURLY_GROUP_COMMAND@11..16 + L_CURLY@11..12 "{" + COMMAND_NAME@12..16 "\\foo" - "#]], + "#]], ); } @@ -618,31 +618,31 @@ fn test_command_definition_optional() { check( r#"\newcommand{\foo}[1][def]{#1}"#, expect![[r##" - ROOT@0..29 - PREAMBLE@0..29 - COMMAND_DEFINITION@0..29 - COMMAND_NAME@0..11 "\\newcommand" - CURLY_GROUP_COMMAND@11..17 - L_CURLY@11..12 "{" - COMMAND_NAME@12..16 "\\foo" - R_CURLY@16..17 "}" - BRACK_GROUP_WORD@17..20 - L_BRACK@17..18 "[" - KEY@18..19 - WORD@18..19 "1" - R_BRACK@19..20 "]" - BRACK_GROUP@20..25 - L_BRACK@20..21 "[" - TEXT@21..24 - WORD@21..24 "def" - R_BRACK@24..25 "]" - CURLY_GROUP@25..29 - L_CURLY@25..26 "{" - TEXT@26..28 - WORD@26..28 "#1" - R_CURLY@28..29 "}" + ROOT@0..29 + PREAMBLE@0..29 + NEW_COMMAND_DEFINITION@0..29 + COMMAND_NAME@0..11 "\\newcommand" + CURLY_GROUP_COMMAND@11..17 + L_CURLY@11..12 "{" + COMMAND_NAME@12..16 "\\foo" + R_CURLY@16..17 "}" + BRACK_GROUP_WORD@17..20 + L_BRACK@17..18 "[" + KEY@18..19 + WORD@18..19 "1" + R_BRACK@19..20 "]" + BRACK_GROUP@20..25 + L_BRACK@20..21 "[" + TEXT@21..24 + WORD@21..24 "def" + R_BRACK@24..25 "]" + CURLY_GROUP@25..29 + L_CURLY@25..26 "{" + TEXT@26..28 + WORD@26..28 "#1" + R_CURLY@28..29 "}" - "##]], + "##]], ); } @@ -651,27 +651,27 @@ fn test_command_definition_simple() { check( r#"\newcommand[1]{\id}{#1}"#, expect![[r##" - ROOT@0..23 - PREAMBLE@0..23 - COMMAND_DEFINITION@0..19 - COMMAND_NAME@0..11 "\\newcommand" - BRACK_GROUP_WORD@11..14 - L_BRACK@11..12 "[" - KEY@12..13 - WORD@12..13 "1" - R_BRACK@13..14 "]" - CURLY_GROUP@14..19 - L_CURLY@14..15 "{" - GENERIC_COMMAND@15..18 - COMMAND_NAME@15..18 "\\id" - R_CURLY@18..19 "}" - CURLY_GROUP@19..23 - L_CURLY@19..20 "{" - TEXT@20..22 - WORD@20..22 "#1" - R_CURLY@22..23 "}" + ROOT@0..23 + PREAMBLE@0..23 + NEW_COMMAND_DEFINITION@0..19 + COMMAND_NAME@0..11 "\\newcommand" + BRACK_GROUP_WORD@11..14 + L_BRACK@11..12 "[" + KEY@12..13 + WORD@12..13 "1" + R_BRACK@13..14 "]" + CURLY_GROUP@14..19 + L_CURLY@14..15 "{" + GENERIC_COMMAND@15..18 + COMMAND_NAME@15..18 "\\id" + R_CURLY@18..19 "}" + CURLY_GROUP@19..23 + L_CURLY@19..20 "{" + TEXT@20..22 + WORD@20..22 "#1" + R_CURLY@22..23 "}" - "##]], + "##]], ); } @@ -682,7 +682,7 @@ fn test_command_definition_with_begin() { expect![[r#" ROOT@0..80 PREAMBLE@0..80 - COMMAND_DEFINITION@0..80 + NEW_COMMAND_DEFINITION@0..80 COMMAND_NAME@0..11 "\\newcommand" CURLY_GROUP_COMMAND@11..35 L_CURLY@11..12 "{" @@ -2446,11 +2446,11 @@ fn test_issue_745() { GENERIC_COMMAND@50..64 COMMAND_NAME@50..63 "\\ExplSyntaxOn" LINE_BREAK@63..64 "\n" - GENERIC_COMMAND@64..223 + ENVIRONMENT_DEFINITION@64..200 COMMAND_NAME@64..87 "\\NewDocumentEnvironment" - CURLY_GROUP@87..96 + CURLY_GROUP_WORD@87..96 L_CURLY@87..88 "{" - TEXT@88..95 + KEY@88..95 WORD@88..95 "exptblr" R_CURLY@95..96 "}" CURLY_GROUP@96..107 @@ -2515,21 +2515,21 @@ fn test_issue_745() { R_CURLY@194..195 "}" LINE_BREAK@195..196 "\n" WHITESPACE@196..200 " " - CURLY_GROUP@200..223 - L_CURLY@200..201 "{" - LINE_BREAK@201..202 "\n" - WHITESPACE@202..206 " " - GENERIC_COMMAND@206..221 - COMMAND_NAME@206..210 "\\end" - CURLY_GROUP@210..221 - L_CURLY@210..211 "{" - TEXT@211..215 - WORD@211..215 "tblr" - R_CURLY@215..216 "}" - LINE_BREAK@216..217 "\n" - WHITESPACE@217..221 " " - R_CURLY@221..222 "}" - LINE_BREAK@222..223 "\n" + CURLY_GROUP@200..223 + L_CURLY@200..201 "{" + LINE_BREAK@201..202 "\n" + WHITESPACE@202..206 " " + GENERIC_COMMAND@206..221 + COMMAND_NAME@206..210 "\\end" + CURLY_GROUP@210..221 + L_CURLY@210..211 "{" + TEXT@211..215 + WORD@211..215 "tblr" + R_CURLY@215..216 "}" + LINE_BREAK@216..217 "\n" + WHITESPACE@217..221 " " + R_CURLY@221..222 "}" + LINE_BREAK@222..223 "\n" GENERIC_COMMAND@223..239 COMMAND_NAME@223..237 "\\ExplSyntaxOff" LINE_BREAK@237..239 "\n\n" @@ -2681,7 +2681,7 @@ fn test_issue_857() { expect![[r#" ROOT@0..55 PREAMBLE@0..55 - COMMAND_DEFINITION@0..11 + NEW_COMMAND_DEFINITION@0..11 COMMAND_NAME@0..11 "\\newcommand" GENERIC_COMMAND@11..17 COMMAND_NAME@11..14 "\\รถ" @@ -2689,7 +2689,7 @@ fn test_issue_857() { L_CURLY@14..15 "{" R_CURLY@15..16 "}" LINE_BREAK@16..17 "\n" - COMMAND_DEFINITION@17..38 + NEW_COMMAND_DEFINITION@17..38 COMMAND_NAME@17..28 "\\newcommand" CURLY_GROUP_COMMAND@28..35 L_CURLY@28..29 "{" @@ -2699,7 +2699,7 @@ fn test_issue_857() { L_CURLY@35..36 "{" R_CURLY@36..37 "}" LINE_BREAK@37..38 "\n" - COMMAND_DEFINITION@38..49 + NEW_COMMAND_DEFINITION@38..49 COMMAND_NAME@38..49 "\\newcommand" GENERIC_COMMAND@49..55 COMMAND_NAME@49..53 "\\123" @@ -3536,7 +3536,7 @@ fn test_theorem_definition_thmtools() { TEXT@32..35 WORD@32..35 "bar" R_BRACK@35..36 "]" - CURLY_GROUP_WORD@36..41 + CURLY_GROUP_WORD_LIST@36..41 L_CURLY@36..37 "{" KEY@37..40 WORD@37..40 "baz" @@ -3547,6 +3547,61 @@ fn test_theorem_definition_thmtools() { } #[test] +fn test_theorem_definition_thmtools_multiple() { + check( + r#"\declaretheorem[sibling=table, style=thmbox]{definition, theorem, lemma, corollary, proposition}"#, + expect![[r#" + ROOT@0..96 + PREAMBLE@0..96 + THEOREM_DEFINITION_THMTOOLS@0..96 + COMMAND_NAME@0..15 "\\declaretheorem" + BRACK_GROUP_KEY_VALUE@15..44 + L_BRACK@15..16 "[" + KEY_VALUE_BODY@16..43 + KEY_VALUE_PAIR@16..29 + KEY@16..23 + WORD@16..23 "sibling" + EQUALITY_SIGN@23..24 "=" + VALUE@24..29 + TEXT@24..29 + WORD@24..29 "table" + COMMA@29..30 "," + WHITESPACE@30..31 " " + KEY_VALUE_PAIR@31..43 + KEY@31..36 + WORD@31..36 "style" + EQUALITY_SIGN@36..37 "=" + VALUE@37..43 + TEXT@37..43 + WORD@37..43 "thmbox" + R_BRACK@43..44 "]" + CURLY_GROUP_WORD_LIST@44..96 + L_CURLY@44..45 "{" + KEY@45..55 + WORD@45..55 "definition" + COMMA@55..56 "," + WHITESPACE@56..57 " " + KEY@57..64 + WORD@57..64 "theorem" + COMMA@64..65 "," + WHITESPACE@65..66 " " + KEY@66..71 + WORD@66..71 "lemma" + COMMA@71..72 "," + WHITESPACE@72..73 " " + KEY@73..82 + WORD@73..82 "corollary" + COMMA@82..83 "," + WHITESPACE@83..84 " " + KEY@84..95 + WORD@84..95 "proposition" + R_CURLY@95..96 "}" + + "#]], + ); +} + +#[test] fn test_command_subscript() { check( r#"\foo_bar \foo_\bar"#, |