Laurenz
f174134aa2
Style chains
2021-12-30 12:12:19 +01:00
Laurenz
f5dcb84e36
Make clippy a bit happier
2021-12-30 12:00:12 +01:00
Laurenz
bd304b99e5
Tidying
2021-12-28 13:41:26 +01:00
Martin
7efdcdf247
Apply simple suggestions from code review
...
Co-Authored-By: Laurenz <laurmaedje@gmail.com>
2021-12-27 12:33:53 +01:00
Martin Haug
b22ce6f8b8
Introduce equal-width columns
2021-12-26 15:59:24 +01:00
Laurenz
438255519e
Review One: A Set Rules Story
2021-12-22 19:19:32 +01:00
Laurenz
11565a40b3
Set Rules Episode IX: The Rise of Testing
2021-12-21 00:20:24 +01:00
Laurenz
958f74f777
Set Rules Episode VIII: The First Macro
2021-12-16 14:43:02 +01:00
Laurenz
2a3d0f4b39
Set Rules Episode VII: The Set Awakens
2021-12-15 20:27:41 +01:00
Laurenz
244ad386ec
Set Rules Episode VI: Return of the Refactor
2021-12-15 12:49:20 +01:00
Laurenz
57f5c0a1b1
Set Rules Episode V: The Tests Strike Back
2021-12-15 11:12:38 +01:00
Laurenz
ae38be9097
Set Rules Episode IV: A New Fold
2021-12-15 11:11:57 +01:00
Laurenz
fe21c4d399
Set Rules Episode III: Revenge of the packer
2021-12-09 13:42:52 +01:00
Laurenz
40b87d4066
Set Rules Episode II: Attack of the properties
2021-12-07 16:36:39 +01:00
Laurenz
26bdc1f0f6
Set Rules Episode I: The Phantom Style
2021-12-05 12:54:03 +01:00
Laurenz
cae60ea0cc
Go back to wrapping inline nodes
2021-11-29 13:12:50 +01:00
Laurenz
50bd863471
More independent placed node
2021-11-26 23:51:18 +01:00
Laurenz
3a15922d2f
X/Y abstractions
2021-11-26 16:32:06 +01:00
Laurenz
393d74f9bb
Layout improvements
2021-11-25 20:51:16 +01:00
Laurenz
4f9e5819bb
2d alignments with plus operator
2021-11-23 12:45:20 +01:00
Laurenz
ed50661378
Castable optional and smart values
2021-11-29 16:47:35 +01:00
Laurenz
cef46e6c40
Strokes
2021-11-20 15:51:07 +01:00
Laurenz
5a59bb4821
Page fill
2021-11-18 12:50:28 +01:00
Laurenz
b2e6a29789
Refactoring
2021-11-18 00:58:32 +01:00
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
8a38899c98
Tidying
2021-11-14 15:06:34 +01:00
Laurenz
38c5c36241
Final touches
2021-11-08 13:06:11 +01:00
Laurenz
75fffc1f9b
Fine-grained capturing
2021-11-08 11:52:09 +01:00
Laurenz
95866d5fc9
Tidy up AST
2021-11-08 01:37:49 +01:00
Martin Haug
cf2e527a02
Code Review: No Patrick, question marks are not an instrument
2021-11-05 13:46:41 +01:00
Laurenz
65fac0e57c
Refactoring
...
Co-Authored-By: Martin <mhaug@live.de>
2021-11-05 13:46:41 +01:00
Martin Haug
c569e14c07
Improve error handling
2021-11-05 13:44:49 +01:00
Martin Haug
1c0ac793d2
Slim `NodeKind` memory footprint
2021-11-05 13:44:49 +01:00
Martin Haug
84d35efee3
Less owning, more iterating
2021-11-05 13:44:49 +01:00
Martin Haug
4875633acf
Change parser
2021-11-05 13:44:49 +01:00
Laurenz
ea6ee3f667
Fix page breaks in lists and enums
2021-11-02 10:42:32 +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
3968181622
Replace `..` syntax with `range` function
2021-10-25 13:38:32 +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
d4cc8c775d
Move paint and colors into `geom`
2021-10-10 20:26:58 +02:00
Laurenz
f4ed775df0
Make `none` spreadable
2021-10-10 12:16:28 +02:00
Laurenz
c0f5cd011f
Slim down and organize paper sizes
...
Co-Authored-By: Martin <mhaug@live.de>
2021-10-07 14:11:56 +02:00
Laurenz
ae05dc0876
Always use first positional argument in `expect()`
...
This changes `#h(100)` from "missing argument: spacing" to "expected linear, found integer".
2021-10-05 19:45:38 +02:00
Laurenz
5e06941c63
Iterate over grapheme clusters instead of chars
2021-10-05 17:57:30 +02:00
Laurenz
2818ceee44
New default fonts
2021-09-30 22:50:14 +02:00
Laurenz
e10b3d838a
Fix panic due to bad alignments in stack function
2021-09-27 13:45:18 +02:00
Laurenz
ea921aca5d
Blocks directly in template also scope
2021-09-15 13:12:07 +02:00
Laurenz
5de791d9e6
Rename `SyntaxTree` to `Markup`
...
Also `SyntaxNode` -> `MarkupNode`.
2021-09-15 13:05:01 +02:00
Laurenz
87e776fceb
Add `BoolExt` trait with `flip` method
2021-09-14 12:27:21 +02:00
Laurenz
f592662aa0
Rename `Arguments` to `Args`
2021-09-10 12:27:33 +02:00
Laurenz
7f48e8fe66
Make user-facing "debug" representation use Debug instead of Display
2021-08-31 16:25:12 +02:00
Laurenz
3481d8cc81
More utility functions
...
- join("a", "b", "c", sep: ", ")
- int("12")
- float("31.4e-1")
- str(10)
- sorted((3, 2, 1))
2021-08-31 12:59:53 +02:00
Laurenz
e4e79990da
Allow body for font function once again
2021-08-29 15:09:54 +02:00
Laurenz
17ea0d4ba9
Make font fallback disableable
2021-08-27 14:08:31 +02:00
Laurenz
7eeafbd464
Font family things
...
- Better default font family order
- Remove weird leading dots from font family names
- Public API for retrieving all found font families
2021-08-27 14:08:31 +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
cb0aab3cfa
Change how functions are called
2021-08-16 18:14:58 +02:00
Laurenz
ba6b91e2ee
Editable source files
2021-08-16 14:40:02 +02:00
Laurenz
7e6e7e928c
Adjust macros to new version
2021-08-14 23:53:57 +02:00
Laurenz
6ae6d86b9c
Separate type for string values
2021-08-14 15:55:39 +02:00
Laurenz
f6814b7732
Optimize memory sizes
2021-08-13 18:17:24 +02:00
Laurenz
6a3385e4e7
Argument collection and spreading
2021-08-13 16:55:45 +02:00
Laurenz
144f208821
Add file information to spans
2021-08-13 14:33:58 +02:00
Laurenz
d002cdf451
Named arguments for user defined functions
2021-08-12 16:07:42 +02:00
Laurenz
ccb4be4da4
Make range-end exclusive
2021-08-12 14:54:52 +02:00
Laurenz
eaa3cbaa9c
Array and dictionary indexing
2021-08-12 13:56:23 +02:00
Laurenz
8207c31aec
Minor refactorings
...
- Reorder parser methods and use `Pos` everywhere
- Remove tab special handling for columns and adapt heading/list/enum indent handling
- Don't panic when a file has an empty path
2021-08-10 11:28:12 +02:00
Laurenz
3932bb2cb9
New source loading architecture
2021-08-09 11:26:41 +02:00
Laurenz
3c92bad9a7
Pretty-printed diagnostics with traceback
2021-08-01 00:00:36 +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
adb71ee040
Move and refactor
2021-07-25 01:03:38 +02:00
Laurenz
927f1154fa
More efficient function representation
2021-07-21 16:55:32 +02:00
Laurenz
929f4d64fe
Switch Loader from Option to io::Result
2021-07-21 12:27:40 +02:00
Laurenz
b0e5212973
Fs builder methods + tidy up
2021-07-21 11:28:33 +02:00
Laurenz
9488b1b850
Main context struct
2021-07-21 11:28:29 +02:00
Laurenz
8000783f95
FileId instead of Path + FileHash
2021-07-20 18:35:05 +02:00
Laurenz
9fe9b95b7f
Simpler casting
2021-07-11 13:20:53 +02:00
Laurenz
891e0c5fa6
Remove warnings from parsing and casting
2021-07-10 23:14:46 +02:00
Laurenz
982ce85976
Move comparisons into standard traits
2021-07-10 23:10:35 +02:00