summaryrefslogtreecommitdiff
path: root/support/texlab/crates/parser/src/latex/tests.rs
diff options
context:
space:
mode:
Diffstat (limited to 'support/texlab/crates/parser/src/latex/tests.rs')
-rw-r--r--support/texlab/crates/parser/src/latex/tests.rs251
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"#,