Commit Graph

642 Commits

Author SHA1 Message Date
Laurenz
4e5f85aa4a Pad function 🔲 2021-03-10 17:42:47 +01:00
Laurenz
b0446cbdd1 Move around library types 🚚 2021-03-10 17:22:44 +01:00
Laurenz
bbb9ed07ff Better line spacing calculations ↕
- Only add line spacing between lines. Previously, line spacing was added below
  every line, making `#box[word]` higher than just `word`.
- Compute box height of text as `ascender - descender` so that the full word is
  contained in the box.
2021-03-10 10:20:01 +01:00
Laurenz
34f839c717 Improve tests 🔨 2021-03-03 22:48:54 +01:00
Laurenz
193734f453 Callee expressions 🍅 2021-03-03 22:33:00 +01:00
Laurenz
1cfc3c72b5 Show name of user-defined functions in representation 🦋 2021-03-03 18:15:33 +01:00
Laurenz
c94a18833f Closures and function definitions 🚀
Supports:
- Closure syntax: `(x, y) => z`
- Shorthand for a single argument: `x => y`
- Function syntax: `let f(x) = y`
- Capturing of variables from the environment
- Error messages for too few / many passed arguments

Does not support:
- Named arguments
- Variadic arguments with `..`
2021-03-03 17:53:40 +01:00
Laurenz
d5d187a8c2 Replace default fonts 🆕 2021-03-02 17:31:41 +01:00
Laurenz
45abcf6b2b Remove dependencies on itoa and ryu ⬇️ 2021-03-02 15:45:01 +01:00
Laurenz
f084165eab While loops 🔁 2021-02-24 21:29:32 +01:00
Laurenz
de37a056ed Split pushed text at newlines ✂ 2021-02-21 11:43:25 +01:00
Laurenz
4d42c79b16 Fix spacing after raw blocks ⬇️ 2021-02-21 11:43:08 +01:00
Laurenz
05727bfc3a Reorganize tests 🔀 2021-02-20 23:34:33 +01:00
Laurenz
cc5f14193c Flip test directory structure 🔃
Move full/lang/library to the top-level as that's more ergonomic to use.
2021-01-16 15:39:25 +01:00
Laurenz
51efb0f4d6 Port remaining parser tests 🚚 2021-01-16 15:08:03 +01:00
Laurenz
0f0416054f Move value tests + smarter number formatting 🔢 2021-01-15 15:43:59 +01:00
Laurenz
469d78d610 Move let-binding tests to integration 🚚 2021-01-14 17:41:13 +01:00
Laurenz
73b25bdad0 Move bracket function tests to integration 🚚 2021-01-14 17:30:22 +01:00
Laurenz
cfcb36b159 Move test files into category subfolders 🚚 2021-01-14 16:47:29 +01:00
Laurenz
272a4c2289 Unbounded pages 🌌 2021-01-13 23:19:44 +01:00
Laurenz
c36a136e6f Simpler diagnostic localization in tests ♻ 2021-01-13 17:22:33 +01:00
Laurenz
2aa4c5bfc6 Move array and dictionary tests to integration 🚚 2021-01-13 17:03:10 +01:00
Laurenz
6efa6c7891 Move basic markup tests to integration 🚚 2021-01-13 16:50:43 +01:00
Laurenz
1cd687b681 Move escaping tests to integration and extend them 🚚 2021-01-13 16:37:18 +01:00
Laurenz
274e008e2c Move heading tests to integration 🚚 2021-01-13 16:09:08 +01:00
Laurenz
1d01b93f67 Move comment tests to integration 🚚 2021-01-13 15:44:41 +01:00
Laurenz
60154474ba Enable multiple tests per file 🧱 2021-01-13 14:07:38 +01:00
Laurenz
1c40dc42e7 Dynamic values, Types, Arrays, and Dictionaries 🚀
- Identifiers are now evaluated as variables instead of being plain values
- Constants like `left` or `bold` are stored as dynamic values containing the respective rust types
- We now distinguish between arrays and dictionaries to make things more intuitive (at the cost of a bit more complex parsing)
- Spans were removed from collections (arrays, dictionaries), function arguments still have spans for the top-level values to enable good diagnostics
2021-01-02 19:37:10 +01:00
Laurenz
750d220bb0 Add color enum 🎨 2020-12-27 19:23:26 +01:00
Laurenz
6f111f9410 Test [font] 🧣 2020-12-17 15:43:30 +01:00
Laurenz
7e91c8dc87 Add func-prefix to library function tests ✏ 2020-12-17 13:31:34 +01:00
Laurenz
0f6c67219e Test [h] and [v] 🐈 2020-12-17 13:22:17 +01:00
Laurenz
b02ba84264 Test [rgb] 🎨 2020-12-17 12:17:34 +01:00
Laurenz
0adbfe894a Test [pagebreak] 🗞 2020-12-17 11:31:07 +01:00
Laurenz
81e80ecfba Test [page] function 📕
- Make page break behaviour more consistent
- Allow skipping reference image testing for single tests with `// compare-ref: false` (useful for tests which only check error messages)
2020-12-17 00:20:27 +01:00
Laurenz
1cbd5f3051 Refine test infrastructure
- Tests diagnostics
- More and better separated image tests
2020-12-10 22:45:45 +01:00
Laurenz
fdc1b378a3 Compress images in PDFs ⚙ 2020-11-30 22:07:08 +01:00
Laurenz
21857064db Export alpha channel into PDF 🧊 2020-11-28 00:04:40 +01:00
Laurenz
982e7671a6 Embed each image only once into the PDF 🥔 2020-11-27 23:17:25 +01:00
Laurenz
e30d896c7b Switch to tiny-skia 🎨 2020-11-25 18:46:47 +01:00
Laurenz
f105663037 Basic image support 🖼
- [image] function
- Image rendering in tests
- Supports JPEG and PNG
- No PDF export so far
2020-11-20 16:36:22 +01:00
Laurenz
22697f0c0c Simple regression testing with file-based comparisons 2020-10-13 12:34:11 +02:00