From 51d972ec247e9e79eba1302d25b581446a7c961a Mon Sep 17 00:00:00 2001 From: Laurenz Date: Mon, 27 Mar 2023 13:14:21 +0200 Subject: [PATCH] Fix matrix delimiters Fixes #200. --- src/syntax/parser.rs | 9 ++++++++- tests/ref/math/matrix.png | Bin 7376 -> 9945 bytes tests/typ/math/matrix.typ | 26 +++++++++++++++++++++++++- 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/syntax/parser.rs b/src/syntax/parser.rs index 0431768e..0e211e69 100644 --- a/src/syntax/parser.rs +++ b/src/syntax/parser.rs @@ -428,6 +428,7 @@ fn math_args(p: &mut Parser) { p.convert(SyntaxKind::Colon); named = Some(arg); arg = p.marker(); + array = p.marker(); } match p.current_text() { @@ -448,7 +449,10 @@ fn math_args(p: &mut Parser) { p.convert(SyntaxKind::Comma); arg = p.marker(); namable = true; - named = None; + if named.is_some() { + array = p.marker(); + named = None; + } continue; } _ => {} @@ -465,6 +469,9 @@ fn math_args(p: &mut Parser) { if arg != p.marker() { maybe_wrap_in_math(p, arg, named); + if named.is_some() { + array = p.marker(); + } } if has_arrays && array != p.marker() { diff --git a/tests/ref/math/matrix.png b/tests/ref/math/matrix.png index d97d6ec1339f50f039a483c0b9c6322802402d8a..59e3a7b0912502b8ef9d7cc4718bbbaca68dee00 100644 GIT binary patch literal 9945 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 B)M)?! diff --git a/tests/typ/math/matrix.typ b/tests/typ/math/matrix.typ index e10b77d7..a828e4b4 100644 --- a/tests/typ/math/matrix.typ +++ b/tests/typ/math/matrix.typ @@ -29,6 +29,30 @@ $ mat( ) $ --- -// Test alternative delimiter. +// Test alternative delimiter with set rule. #set math.mat(delim: "[") $ mat(1, 2; 3, 4) $ + +--- +// Test alternative math delimiter directly in call. +#set align(center) +#grid( + columns: 3, + gutter: 10pt, + + $ mat(1, 2, delim: "[") $, + $ mat(1, 2; delim: "[") $, + $ mat(delim: "[", 1, 2) $, + + $ mat(1; 2; delim: "[") $, + $ mat(1; delim: "[", 2) $, + $ mat(delim: "[", 1; 2) $, + + $ mat(1, 2; delim: "[", 3, 4) $, + $ mat(delim: "[", 1, 2; 3, 4) $, + $ mat(1, 2; 3, 4; delim: "[") $, +) + +--- +// Error: 13-14 expected array, found content +$ mat(1, 2; 3, 4, delim: "[") $,