33 Commits

Author SHA1 Message Date
Laurenz
095fa52be5 Placed node 2021-11-17 23:09:23 +01:00
Laurenz
89f2e71852 Align node 2021-11-17 17:09:19 +01:00
Laurenz
79638d4bbd Don't wrap already layoutable nodes into flows/pars unnecessarily 2021-11-16 12:47:14 +01:00
Laurenz
0e0f340502 Revert page and inline levels 2021-11-16 10:41:30 +01:00
Laurenz
210c4d9373 Move lang functionality into par 2021-11-16 00:37:33 +01:00
Laurenz
972c940e07 Introduce FlowNode 2021-11-16 00:12:43 +01:00
Laurenz
63c274e7f6 Make clippy happier and remove Str 2021-11-15 17:06:43 +01:00
Laurenz
5b344b663a Reorganize modules
Instead of separating functionality into layout and library, everything lives in the library now. This way, related things live side by side and there are no duplicate file names in the two directories.
2021-10-31 15:52:35 +01:00
Laurenz
5c534fb428 Simplify node construction 2021-10-26 17:14:11 +02:00
Laurenz
fb0cd3df6e Fr in stack and par 2021-10-26 14:56:10 +02:00
Laurenz
b42ecbd6a6 Simplify decorations 2021-10-23 20:24:35 +02:00
Laurenz
5becb32ba4 Introduce page / block / inline levels 2021-10-23 20:23:47 +02:00
Laurenz
6690bc2354 Revise block node contract
Frames produced by block nodes are now always treated as exactly one per
given region and a frame must not be larger than its respective region.
Any overflow must be handled internally. This means that stack and grid
don't need to search for fitting regions anymore, since the child has
already does that for them. This commit further moves stack spacing into
a new `SpacingNode`.
2021-10-23 20:22:47 +02:00
Laurenz
5f4dde0a6b Remove inline alignment from stack
The current inline alignment is very broken and leads to lots of subtle weirdness. Getting rid of it simplifies the stack's interface a lot. At a later point either:
- inline alignment will be added back in a better way, or
- all nodes will be able to expand or align themselves, meaning that the stack's children take care of their alignment
2021-10-23 20:22:47 +02:00
Laurenz
9ac125dea8 Rename State to Style and move it into its own module 2021-10-10 21:04:10 +02:00
Laurenz
7f48e8fe66 Make user-facing "debug" representation use Debug instead of Display 2021-08-31 16:25:12 +02:00
Laurenz
e4e79990da Allow body for font function once again 2021-08-29 15:09:54 +02:00
Laurenz
148a06c070 Switch from state to decorations for underline/strikethrough/overline 2021-08-24 00:41:15 +02:00
Martin
d546453880
Links! (#43)
Co-authored-by: Laurenz <laurmaedje@gmail.com>
2021-08-23 23:56:33 +02:00
Laurenz
c0377de653 Shorter/clearer field name for geometry types
Size { width, height } => Size { w, h }
Spec { horizontal, vertical } => Spec { x, y }
Gen { cross, main } => Gen { inline, block }
2021-08-21 19:08:47 +02:00
Laurenz
0dd4ae0a7a Prune derives 2021-08-21 17:30:21 +02:00
Laurenz
a6f260ca39 Refactor layouting a bit
Notably:
- Handle aspect ratio in fixed node
- Inline constraint inflation into pad node
2021-08-19 15:52:15 +02:00
Laurenz
594809e35b Library functions behave more imperatively
- Templates scope state changes
- State-modifying function operate in place instead of returning a template
- Internal template representation contains actual owned nodes instead of a pointer to a syntax tree + an expression map
- No more wide calls
2021-08-17 22:20:37 +02:00
Laurenz
9462fb17b3 Convert single-field structs to tuple structs 2021-08-16 19:15:03 +02:00
Laurenz
6ae6d86b9c Separate type for string values 2021-08-14 15:55:39 +02:00
Laurenz
eaa3cbaa9c Array and dictionary indexing 2021-08-12 13:56:23 +02:00
Laurenz
1ee1d078e2 Fatal errors
- Makes errors fatal, so that a phase is only reached when all previous phases were error-free
- Parsing still recovers and can produce multiple errors
- Evaluation fails fast and can thus produce only a single error (except for parse errors due to an import)
- The single error that could occur during execution is removed for now
- Removes Value::Error variant
2021-07-30 18:49:19 +02:00
Laurenz
42a27b48df Change derive order 2021-07-29 22:27:10 +02:00
Laurenz
853361338b Better addition and iteration for array, dict and template 2021-07-29 12:01:06 +02:00
Laurenz
312dcd070c Move EcoString and OptionExt into util 2021-07-29 11:35:49 +02:00
Laurenz
6a4823461f Reference-count complex values
Rename some nodes types
2021-07-10 23:10:17 +02:00
Laurenz
ac24075469 Moves captures visitor into separate file 🚚 2021-01-30 10:24:51 +01:00
Laurenz
2036663ed2 Capture variables in templates 🔍 2021-01-27 15:05:18 +01:00