Laurenz
1b53e27f27
Some minor improvements ♻
2021-01-13 21:33:22 +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
539735e668
Basic let bindings 🎞
2021-01-13 11:54:50 +01:00
Laurenz
d2ba1b705e
Group and block expressions, unary plus 🧩
2021-01-12 18:55:12 +01:00
Laurenz
105cda0e69
Braced content -> Bracketed templates ✏
2021-01-10 21:38:58 +01:00
Laurenz
3c7d249ae4
Rename token modes ✏
2021-01-10 20:48:32 +01:00
Laurenz
515905d78d
Add angle value 📐
2021-01-10 18:22:06 +01:00
Laurenz
9eac62c31a
Add lots of new tokens 🍪
2021-01-10 17:52:37 +01:00
Laurenz
3b2a28ca8e
Add angle data type 📐
2021-01-09 21:35:36 +01:00
Laurenz
8275b186ba
Remove star-slash token ❌
2021-01-07 16:13:18 +01:00
Laurenz
59d811aeba
Inline literal enum into expression enum 🔀
2021-01-06 21:06:48 +01:00
Laurenz
7b4d4d6002
Pretty printing 🦋
...
- Syntax tree and value pretty printing
- Better value evaluation (top-level strings and content are evaluated plainly, everything else is pretty printed)
2021-01-06 01:32:59 +01:00
Laurenz
2e77b1c836
Better value representations, type function 🌐
2021-01-04 21:29:15 +01:00
Laurenz
77c06ebc24
None literal 🕳
2021-01-04 17:23:52 +01:00
Laurenz
32af3095f8
Fix performance regression ⚡
2021-01-03 00:41:12 +01:00
Laurenz
aae67bd572
Move and rename many things 🚛
2021-01-03 00:12:09 +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
8cad78481c
A few small improvements ♻
2021-01-01 17:54:31 +01:00
Laurenz
2b6ccd8248
Better parser testing ✅
2021-01-01 16:43:58 +01:00
Laurenz
4069f0744d
Parsing improvements 🧽
...
- Simplified scanner code
- Peek eagerly
- Skip whitespace and comments automatically in header mode
- Parse simple block expressions
- Move literal definitions into expression module
- Raw resolving tests
2020-12-31 17:48:56 +01:00
Laurenz
ba3d43f7b2
Refresh function call and dictionary syntax
...
- No colon between function name and arguments, just whitespace
- "Named" arguments (previously "keyword" arguments) use colon instead of equals sign
2020-12-27 20:45:20 +01:00
Laurenz
750d220bb0
Add color enum 🎨
2020-12-27 19:23:26 +01:00
Laurenz
c44ebf876f
Add error cases for [font] 🧯
2020-12-21 00:47:47 +01:00
Laurenz
e59de77f96
Allow only a few predefined font classes in [font] 🚧
2020-12-21 00:40:09 +01:00
Laurenz
2b660968aa
Restructure value conversions 🧱
2020-12-21 00:36:22 +01:00
Laurenz
6f111f9410
Test [font] 🧣
2020-12-17 15:43:30 +01:00
Laurenz
b02ba84264
Test [rgb] 🎨
2020-12-17 12:17:34 +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
2336aeb4c3
Tweak parser error messages 🔮
2020-12-16 16:24:06 +01:00
Laurenz
6bbedeaa2c
Better tokenization testing 🌋
...
- Better tokenization test coverage.
- Suffix testing: Each test case is tested with many different suffixes to ensure correct token ends.
- Improves expression parsing (fixes #3 ).
2020-12-16 15:42:02 +01:00
Laurenz
0cfce1de7e
Switch to miniz_oxide 🔼
2020-12-11 12:37:20 +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
98f77e4d80
Fix headings that are separated by only one newline 🚧
...
Previously the following lead to only one line with both heading and body:
```
# Heading
Body
```
2020-11-27 23:13:59 +01:00
Laurenz
475ca7a62e
Basic environment and resource loader 🏞
2020-11-27 22:35:42 +01:00
Laurenz
bc997b7c33
Export images in PDF 🖼
2020-11-27 20:01:54 +01:00
Laurenz
e30d896c7b
Switch to tiny-skia 🎨
2020-11-25 18:46:47 +01:00
Laurenz
11e44516fa
Merge some modules 🥞
2020-11-25 16:56:29 +01:00
Laurenz
761931405c
Use newly stabilized intra doc links ↩
2020-11-24 16:12:41 +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
2e6e6244cc
Switch to pdf-writer ⬆️
2020-11-19 23:46:51 +01:00
Laurenz
3a7bfd6bed
Remove unused function `Spanned::value` 🗑
2020-11-16 11:08:36 +01:00
Laurenz
7ec7c49144
Don't panic 🌶
2020-11-05 13:07:13 +01:00
Laurenz
e26b431bee
Produce output file in current directory instead of source directory 📂
2020-11-05 12:30:46 +01:00
Laurenz
ee38c6aa9a
Allow configuration of directions in page and box ↗
2020-10-19 13:05:54 +02:00
Laurenz
91e5120693
BoxAlign and Flow aliases ✏
2020-10-13 13:51:58 +02:00
Laurenz
8680fcd490
Rename geometric eval and apply to resolve ✏
2020-10-13 13:24:33 +02:00
Laurenz
1736bfc194
Rename typstc -> typst ✏
2020-10-13 11:47:29 +02:00
Laurenz
f29207d999
Strongly typed groups 👔
2020-10-12 22:06:28 +02:00
Laurenz
dd4a4545a6
Move main back into src/ 📨
2020-10-12 21:26:58 +02:00
Laurenz
1a70cb6a33
Naming and grammar ✔
2020-10-12 18:01:22 +02:00
Laurenz
5243878d81
Less vecs in layouting ⚡
2020-10-12 17:29:01 +02:00
Laurenz
38157b0e0c
Synchronous layout 🪀
2020-10-12 17:10:01 +02:00
Laurenz
e94627721d
Adapt to fontdock 🔼
2020-10-12 16:59:21 +02:00
Laurenz
a2a68106c0
Evaluation benchmark 🔋
2020-10-11 23:18:00 +02:00
Laurenz
1b3eb42003
Refactor paragraph layout 📰
2020-10-11 22:41:21 +02:00
Laurenz
607f4395f9
Refactor stack layout again 🧣
2020-10-11 22:38:34 +02:00
Laurenz
d3bc4ec073
Refactor layouting base 🪁
2020-10-11 22:38:30 +02:00
Laurenz
f04ad0ffa5
Rename LayoutItem to Layouted ✏
2020-10-11 13:08:27 +02:00
Laurenz
c216a4fc26
Flatten ast module back into syntax module 🌪
2020-10-10 22:41:56 +02:00
Laurenz
51bf3268dd
Refactor text state 🆎
2020-10-10 22:35:24 +02:00
Laurenz
92c01da360
Switch back to custom geometry types, unified with layout primitives 🏞
2020-10-10 22:19:36 +02:00
Laurenz
42500d5ed8
Refactor stack ♻
2020-10-10 12:40:11 +02:00
Laurenz
13230db68c
Fix some clippy warnings ✔
2020-10-07 19:28:34 +02:00
Laurenz
d2e220245d
Move deco, pass and feedback into diagnostics module ↩
2020-10-07 18:24:47 +02:00
Laurenz
537545e7f8
Evaluation and node-based layouting 🚀
2020-10-07 17:07:44 +02:00
Laurenz
ca1256c924
Remove obsolete extra variable in stack layouter ❌
2020-10-06 20:40:37 +02:00
Laurenz
7dd78af459
Rename ast/tree -> ast/node ✏
2020-10-06 20:27:17 +02:00
Laurenz
4252f959f7
Typesafe conversions in stack & line layouters 🍮
2020-10-06 18:27:00 +02:00
Laurenz
985fe28166
Fix bug in line layouter ✔
2020-10-06 14:44:58 +02:00
Laurenz
ef410f6877
Move multi-dir support in stack layouter 🍁
2020-10-06 14:20:28 +02:00
Laurenz
c6a6870978
Rename secondary/primary to main/cross ✏
2020-10-06 13:13:18 +02:00
Laurenz
5a7a32a9ba
Streamline generic layouting primitives 🛫
2020-10-05 16:44:35 +02:00
Laurenz
93eaafb236
Tidy up align function 🧺
2020-10-05 16:06:25 +02:00
Laurenz
fa3e2920c0
Remove @ syntax in diagnostics macros 🗑
2020-10-05 15:45:45 +02:00
Laurenz
2df8b964d0
Simplify shaping 🌱
2020-10-05 15:35:55 +02:00
Laurenz
d1c07260c0
Move align out of BoxLayout 🍫
2020-10-05 13:39:33 +02:00
Laurenz
335fa2d118
Small improvements 🍪
2020-10-04 23:31:35 +02:00
Laurenz
605ab104c5
Better argument parsing 🥙
2020-10-04 22:36:20 +02:00
Laurenz
ef8aa763fa
Shorten some names ↔
2020-10-04 20:22:11 +02:00
Laurenz
a41d7ab47d
Expression evaluation with Eval trait 🧮
2020-10-04 20:07:01 +02:00
Laurenz
c1dd872b34
Remove unncessary wrappers and typedefs 🛑
2020-10-04 19:57:39 +02:00
Laurenz
105f70867d
Add none value 🧫
2020-10-04 19:26:27 +02:00
Laurenz
f4460f8abd
Style nits 🎈
2020-10-04 19:21:35 +02:00
Laurenz
0f7c70fd93
Separate state and constraints 🧶
2020-10-04 19:06:20 +02:00
Laurenz
6672f8f7df
Remove Typesetter in favor of typeset function 🎯
2020-10-04 18:18:55 +02:00
Laurenz
262a8fa36a
Refactor and move shaping out of the layout module ⛳
2020-10-04 18:01:56 +02:00
Laurenz
54e0da59e3
Small documentation fixes 🧾
2020-10-03 18:15:09 +02:00
Laurenz
91d14d2a22
Evaluate expressions 🧮
2020-10-03 17:56:56 +02:00
Laurenz
95bae5725c
Int, Float, Relative and Linear values 🍉
2020-10-03 15:07:57 +02:00
Laurenz
0fc25d732d
Port to kurbo 🎋
2020-10-03 13:23:59 +02:00
Laurenz
8dbc5b60cc
Update font docs 📖
2020-10-03 11:32:24 +02:00
Laurenz
75e6dbfbe6
Rename bold/italic to strong/emph ✏
2020-10-03 11:18:25 +02:00
Laurenz
730715c064
Rename text layouting to shaping ✏
2020-10-03 11:09:32 +02:00
Laurenz
dc8d5d2f1e
Small improvements 🧺
2020-10-02 20:22:08 +02:00
Laurenz
904bc392ab
Remove spans from token iterator 🧽
2020-10-02 19:17:47 +02:00
Laurenz
343982c56f
Optimize parser by remembering peeked token ⚡
2020-10-02 16:52:01 +02:00
Laurenz
3533268b1f
Refactor parser 🏞
2020-10-02 15:43:29 +02:00
Laurenz
f8770d2b2a
Generalize layouting primitives 🛤
2020-10-01 15:35:09 +02:00
Laurenz
e676ab53dd
Rename compute to eval ✏
2020-10-01 15:13:04 +02:00
Laurenz
7c12f0c07f
Flatten compute module
2020-10-01 15:10:35 +02:00
Laurenz
7fcad452b8
Reorganize ast types 🏕
2020-10-01 15:03:37 +02:00
Laurenz
aafd3c95ca
Rename table to dict ✏
2020-10-01 13:15:10 +02:00
Laurenz
885bfec5d7
Make syntax not depend on parse 📩
...
This would make it possible to split them into two separate crates.
2020-10-01 11:32:48 +02:00
Laurenz
16f0bd430e
Rename CharParser to Scanner ✏
2020-10-01 11:08:53 +02:00
Laurenz
c0998b4802
Simplify tokenizer a bit 🔄
2020-10-01 11:03:42 +02:00
Laurenz
4b9bc66028
Implement low-level char parser 🥜
2020-10-01 01:38:18 +02:00
Laurenz
01405902ba
Restructure parser files 🍔
2020-09-30 19:13:55 +02:00
Laurenz
0ddab1c00d
Flatten unescape_string a bit 🥞
2020-09-30 19:07:45 +02:00
Laurenz
4077a7c11e
Refactor raw blocks 💱
2020-09-30 18:59:33 +02:00
Laurenz
7cc279f7ae
Replace line/column with byte positions 🔢
2020-09-30 17:25:09 +02:00
Laurenz
3c3730425f
SpanWith trait ↔
2020-09-30 14:38:46 +02:00
Laurenz
7143e10afc
Streamline font handling a bit 📜
2020-09-30 13:18:42 +02:00
Laurenz
3e791e3337
Move decoration into mod.rs 🔙
2020-09-30 12:49:30 +02:00
Laurenz
bc1b4216a8
Reorganize syntax types into two modules 📦
2020-09-30 12:45:33 +02:00
Laurenz
dcf1d09d39
Fix for updated fontdock ✔
2020-09-27 14:26:50 +02:00
Laurenz
7f8f225cb3
Split up parser into multiple files 🧱
...
Splits up into:
- escaping: resolving of escape sequences
- parser: the parsing code
- tests: all integrated parsing tests
Also moves Ident from the root syntax module into the tree module.
2020-09-03 19:16:19 +02:00
Laurenz
7f575dc098
Rename `skip_white` to `skip_ws` ✒
2020-09-02 16:54:22 +02:00
Laurenz
b2f3730013
Deduplicate and flexibilize code token & node building 🧺
2020-09-01 14:57:25 +02:00
Laurenz
56acc9982c
Formatting 🌿
2020-09-01 13:13:54 +02:00
Martin Haug
d986bc4b0a
Add section headings 👨🦲
...
Co-authored-by: Laurenz Mädje <laurmaedje@gmail.com>
2020-09-01 13:10:48 +02:00
Martin Haug
1942a25793
Move Nbsp logic to tokenizer 🚛
2020-08-31 14:47:52 +02:00
Martin Haug
08433ab79f
Capability to escape the tilde symbol 💨
2020-08-31 12:20:45 +02:00
Martin Haug
d0e252d116
Add non-breaking space 🔒
2020-08-31 12:11:34 +02:00
Laurenz
181f756a9e
Format everything with rustfmt! 💚
2020-08-30 22:18:55 +02:00
Laurenz
0d44cf5321
Some alignment ⏭
2020-08-30 22:15:36 +02:00
Laurenz
18c515cde5
Make some code easier for rustfmt 🍦
2020-08-30 22:09:33 +02:00
Laurenz
fe51ad2e7c
Fix different-fonts-in-text bug ✔
2020-08-30 15:32:52 +02:00
Laurenz
9861a9583e
Slight simplifications 🍃
2020-08-30 15:16:55 +02:00
Martin Haug
c043692c96
Also provide escapes for strings 🗒
2020-08-30 13:39:21 +02:00
Martin Haug
7041e0938d
Added Unicode Escaping for body text 👙
2020-08-30 13:21:07 +02:00
Martin Haug
d68367f32a
Newlines are complicated, y'all 😱
...
Co-authored-by: laurmaedje@outlook.de <laurmaedje@outlook.de>
2020-08-29 17:20:04 +02:00
Martin Haug
1eb584e256
Fixing the build by removing P macro usage 🚑
...
Kids, merge with caution!
2020-08-29 14:10:56 +02:00
Martin
5e1fd35926
Merge branch 'master' into code-blocks
2020-08-29 13:58:30 +02:00
Martin Haug
c2b6f2dc35
Added code blocks 🚟
2020-08-29 13:53:59 +02:00
Laurenz
236750c35f
Remove par nodes in favor of parbreaks 🔄
...
This basically reverts the earlier change from parbreaks to par nodes because:
- It is simpler and less nested
- It works way better with functions that layout their body inline like `font`, which where buggy before, previously
The original reasons for changing to par nodes were:
- the envisioned design of the layouter at that time (based on dynamic nodes etc.), which is not relevant anymore
- possibly existing benefits with regards to incremental compilation, which are unsure and outweighed by the immediate benefits of the parbreak-representation
2020-08-29 12:02:07 +02:00
Laurenz
6febc03273
Make align not behave box-like and smarter 📦
...
Doesn't layout contents into a box anymore, instead layouting inline in the parent context. Also makes axis inferring for center alignents smarter (just because I had fun doing it). It's unsure whether we want to keep it because it might be confusing.
2020-08-29 11:32:32 +02:00
Laurenz
8a45ec2875
Fix default values for rgb-clamping 🩹
2020-08-27 21:56:53 +02:00
Laurenz
2a92428ff6
Do as Dolores says ⚡
2020-08-27 21:47:26 +02:00
Laurenz
37835e4d8e
Better error reporting for nameless function 💡
2020-08-27 21:34:48 +02:00
Martin Haug
c099b8b9b4
Fixing the regression 🩹
2020-08-27 20:56:44 +02:00
Martin Haug
3abb9ec319
Code review-tastic changes 🦪
2020-08-27 20:42:09 +02:00
Martin Haug
3de20f8d38
Add Multi-Invokation 👨👩👧👧
2020-08-27 17:50:57 +02:00
Laurenz
141d69cb60
Remove some obsolete stuff ❌
2020-08-19 21:12:34 +02:00