Commit Graph

877 Commits

Author SHA1 Message Date
Laurenz 25b5bd1175 Fully untyped model 2023-03-07 15:17:13 +01:00
Laurenz 6ab7760822 Split up `model` module 2023-03-01 16:33:28 +01:00
Laurenz 7597b99789 New default style 2023-02-25 20:04:30 +01:00
Laurenz 09077d6382 Fix more bad font names 2023-02-24 15:08:00 +01:00
Laurenz 448844d66c Allow multiple authors 2023-02-24 14:09:38 +01:00
Laurenz affb353453 Merge main back 2023-02-23 14:38:45 +01:00
Laurenz 6e65ebf236 Panic function 2023-02-19 21:08:01 +01:00
Laurenz c1637054a4 Fix semicolon parsing 2023-02-17 16:41:21 +01:00
Laurenz 028632a3a1 Fix error handling after hashtag 2023-02-17 16:32:48 +01:00
Laurenz dd5f07eb91 Add `clusters` and `codepoints` methods 2023-02-17 10:53:47 +01:00
Laurenz 585f656487 Check char boundaries in string methods 2023-02-17 10:20:52 +01:00
Laurenz 56b6a2a908 Impl `Eq` for syntax tree types 2023-02-17 10:01:40 +01:00
Laurenz 67b4540397 Dissolve utility category 2023-02-16 14:43:38 +01:00
Laurenz 942fa6636d Fix raw block highlighting 2023-02-15 09:52:08 +01:00
Laurenz b9c0fd87d3 Fix grid sizing 2023-02-14 12:34:16 +01:00
Laurenz cc9b52ddd4 Better table lines 2023-02-14 12:08:05 +01:00
Laurenz 17e9805b34 Let `eval` take code instead of markup 2023-02-13 17:45:08 +01:00
Laurenz 28b5c55cd5 Configurable markers for nested lists 2023-02-13 17:15:20 +01:00
Laurenz 05c8c6045c Configurable numbering for nested enums 2023-02-13 16:54:05 +01:00
Laurenz 8f68bc7a8e Dissolve basics folder 2023-02-13 16:50:57 +01:00
Laurenz b1b4e52af9 Block sizing 2023-02-13 16:04:25 +01:00
Laurenz 72b60dfde7 Fill and stroke properties for containers 2023-02-13 12:18:34 +01:00
Laurenz fd90736fb6 Support fractional width for `box` 2023-02-12 22:04:27 +01:00
Laurenz d99359dede Add `baseline` argument to `box` 2023-02-12 21:14:21 +01:00
Laurenz d689d706ea Vertically center non-math content in math by default 2023-02-12 21:14:12 +01:00
Laurenz 7b2cdb9d95 Require colon in show rule 2023-02-12 20:25:24 +01:00
Laurenz 3ffa7393f0 Make all nodes block-level 2023-02-12 19:57:28 +01:00
Laurenz ebbee6274c Fix square base 2023-02-12 16:38:18 +01:00
Laurenz 6260878245 Let line have an extent 2023-02-12 15:01:40 +01:00
Laurenz 2b26e08128 Fix set document bug 2023-02-12 13:23:48 +01:00
Laurenz 8cbc2ac483 Fix place base 2023-02-12 13:23:40 +01:00
Laurenz 01a62a690b Make grid RTL aware 2023-02-12 12:57:40 +01:00
Laurenz 8951b1923a Skip grid region if one cell is empty 2023-02-12 12:57:35 +01:00
Laurenz e873468ea7 Change grid base for auto columns 2023-02-12 11:38:42 +01:00
Laurenz 03cbdea4b4 Fix "not in" precedence 2023-02-12 10:17:35 +01:00
Laurenz ebe919220d Fix flow bugs 2023-02-11 13:30:55 +01:00
Laurenz 7d28e6499e Set Typst versions to `0.0.0` 2023-02-06 11:53:49 +01:00
Laurenz 2e87dcdbe0 More fonts 2023-02-06 11:48:16 +01:00
Laurenz ec05ed7e06 Move assets 2023-01-31 15:05:42 +01:00
Laurenz 9a99beec94 Fix `array.pop()` 2023-02-05 17:47:33 +01:00
Laurenz 93138e2d4b Fix font switch in math 2023-02-03 17:47:05 +01:00
Laurenz 9e918d06ad Fix function call highlighting 2023-02-03 17:46:53 +01:00
Laurenz 15bc932ec1 Rename infinity symbol 2023-02-02 22:34:53 +01:00
Laurenz 2bb0135d2a Fix inconsistency between text and idents in math 2023-02-02 22:33:12 +01:00
Laurenz 255044e04e Ignore accent when positioning superscript 2023-02-02 21:21:04 +01:00
Laurenz 3f85d005bb Fix root index placement again 2023-02-02 19:50:14 +01:00
Laurenz 10675cd6d5 Merge text and math symbols 2023-02-02 19:50:06 +01:00
Laurenz e9ff2d6463 More robust automatic math spacing 2023-02-02 16:47:10 +01:00
Laurenz e6400861ab Matrix baseline alignment 2023-02-02 14:40:34 +01:00
Laurenz bb12624e8e Fix heading and list markers 2023-02-02 14:27:31 +01:00
Laurenz 5f5c659279 Math tests 2023-02-02 14:13:56 +01:00
Laurenz afa344f33d Fix raw show rule 2023-02-01 13:32:05 +01:00
Laurenz c2bd114914 Symbol improvements 2023-01-31 13:00:20 +01:00
Laurenz 69985e59bc Make lowercase greek italic 2023-01-31 02:05:53 +01:00
Laurenz 0ef1b02ee0 Add calc constants 2023-01-30 21:29:03 +01:00
Martin Haug 0287b98ef3 Add calc module 2023-01-30 21:04:34 +01:00
Laurenz 1ea0a93325 User-defined symbols 2023-01-30 19:45:10 +01:00
Laurenz d9d2c021d6 Fix inline math bounding box 2023-01-29 20:44:33 +01:00
Laurenz 0911c709a8 Fix tests 2023-01-29 18:00:28 +01:00
Laurenz 406de22ee5 Remove method call syntax kind 2023-01-28 18:32:58 +01:00
Laurenz 4809e685a2 More capable math calls 2023-01-28 15:36:32 +01:00
Laurenz 28c554ec21 Rework math attachments and accents 2023-01-28 12:14:03 +01:00
Laurenz 2e039cb052 Fix math spacing bugs 2023-01-27 15:32:05 +01:00
Laurenz 43ef60c09c Tracing-based expression tooltips 2023-01-27 12:05:12 +01:00
Laurenz 1de53730bc Symbol values and modules 2023-01-27 12:04:36 +01:00
Laurenz a8fd64f928 Hashtags everywhere! 2023-01-27 11:54:30 +01:00
Laurenz 4653ffebb4 Math module 2023-01-23 15:23:52 +01:00
Laurenz 2b8426b1b3 Interpret methods on modules as functions in modules 2023-01-23 13:26:10 +01:00
Laurenz 87a89e77e5 Some fixes 2023-01-22 13:48:49 +01:00
Laurenz 6f7e8dd497 Add Fira Math font 2023-01-22 13:16:25 +01:00
Laurenz eabbbf7eae Name handling for New Computer Modern Math 2023-01-22 13:16:03 +01:00
Laurenz dd331f007c Rewrite parser 2023-01-20 14:05:35 +01:00
Laurenz 40561e57fb Remove most fields from `SyntaxKind` enum 2023-01-15 12:40:27 +01:00
Laurenz ab03f32240 Reorganize syntax module 2023-01-14 12:34:17 +01:00
Laurenz 29b31c4a5a New import syntax 2023-01-03 12:32:17 +01:00
Laurenz 7c683db367 Merge `MarkupNode` and `MathNode` into `Expr` 2022-12-31 09:52:14 +01:00
Laurenz a6d90c1bf1 Numbering functions 2022-12-30 20:00:50 +01:00
Laurenz f70cea508c Remove index syntax in favor of accessor methods 2022-12-30 16:45:41 +01:00
Laurenz fe1f440069 Clamp shape radii 2022-12-30 10:07:46 +01:00
Laurenz 94cf7005e9 Forbid division by zero 2022-12-30 10:01:37 +01:00
Laurenz 68c6160a14 Recursion with max depth 2022-12-30 09:48:30 +01:00
Martin Haug bc535f7b71 `read` function 2022-12-29 11:49:01 +01:00
Laurenz 8527517258 Rename `desc` to `terms` 2022-12-22 18:25:29 +01:00
Laurenz 4c92ab4ace Rename the `create` category to `construct` 2022-12-21 23:51:15 +01:00
Laurenz 038f9b015e Document `line` function 2022-12-21 16:32:14 +01:00
Laurenz 31f904a2c4 Split up and document shapes 2022-12-21 16:19:46 +01:00
Laurenz ba294e2670 Split up list type into three separate types and document them 2022-12-21 12:50:33 +01:00
Laurenz ee732468c7 Document text category 2022-12-21 00:26:20 +01:00
Laurenz 38a0404050 Document underline, strikethrough, and overline 2022-12-20 18:20:19 +01:00
Laurenz f5f7df7247 Documentation 2022-12-20 16:11:37 +01:00
Laurenz b4b022940b Syntax and example sections 2022-12-19 01:16:35 +01:00
Laurenz 35b16e545b Document parameters in comment 2022-12-17 16:24:29 +01:00
Laurenz b6202b646a Reflection for castables 2022-12-15 23:11:20 +01:00
Laurenz 9ba4d2c134 New macro setup 2022-12-14 10:09:44 +01:00
Laurenz 4c73456fc1 Move highlighting into new IDE module 2022-12-14 10:02:19 +01:00
Laurenz ad66fbdfa2 Detect infinite loops 2022-12-14 09:56:24 +01:00
Laurenz c38d55614a A few math fixes 2022-12-09 21:22:23 +01:00
Laurenz cd089b6194 Align set rule 2022-12-09 10:21:11 +01:00
Laurenz 11c7ceb29e Extend math library 2022-12-07 14:01:20 +01:00
Laurenz 5a0053c729 Vectors and cases 2022-12-07 11:30:17 +01:00
Laurenz b2572f9d48 Math shorthands 2022-12-06 15:37:17 +01:00
Laurenz 3ecb0c754b More math syntax 2022-12-06 12:37:08 +01:00
Laurenz c2e458a133 Symbol notation 2022-12-05 12:25:37 +01:00
Laurenz f57ce86431 Heading numbering and outline 2022-12-02 15:53:01 +01:00
Laurenz 56923ee472 Multi-part numbering patterns 2022-12-02 15:47:25 +01:00
Laurenz 9bc90c371f Introspection 2022-12-02 15:45:18 +01:00
Laurenz 5110a41de1 Introduce virtual typesetter 2022-12-02 13:21:36 +01:00
Laurenz bdf06c9c61 Fix auto column shrinking behaviour 2022-11-30 14:49:55 +01:00
Laurenz 579dac3c91 Strong delta 2022-11-29 14:57:05 +01:00
Laurenz 0efe669278 Reorganize library and tests 2022-11-29 14:18:13 +01:00
Laurenz 836692e73c Widow and orphan prevention 2022-11-28 17:57:16 +01:00
Laurenz 989d170dc7 Fragments 2022-11-28 12:40:16 +01:00
Laurenz 6bafc63910 Document metadata 2022-11-26 23:52:01 +01:00
Laurenz 0579fd4409 Reorganize library base 2022-11-26 17:13:31 +01:00
Laurenz 36490f7f7b Make text and space nodes unselectable 2022-11-26 15:09:03 +01:00
Laurenz 7af46fc025 Dynamic labels 2022-11-26 13:41:27 +01:00
Laurenz 3cdd8bfa40 Extract numbering pattern from list node 2022-11-26 12:51:15 +01:00
Laurenz 96f72eee6c Separate typesetting and compilation 2022-11-24 17:51:07 +01:00
Laurenz 5ae81971f2 Introduce `Library` 2022-11-23 16:07:54 +01:00
Laurenz b2a3d3f235 More general evaluation interface 2022-11-23 12:00:06 +01:00
Laurenz 2ce727fc95 Make inner node and node data private 2022-11-22 14:40:56 +01:00
Laurenz dd9c323941 Show with set 2022-11-21 17:12:16 +01:00
Laurenz c28d2130dd Don't display functions 2022-11-21 17:11:40 +01:00
Laurenz 1d7e082d1d Labels 2022-11-21 16:12:24 +01:00
Laurenz ddada45097 Tracepoints for show rules 2022-11-20 23:32:30 +01:00
Laurenz 72361106bc Add flag for model printing 2022-11-20 21:39:19 +01:00
Laurenz 321121c6c3 Move font folder 2022-11-20 18:14:13 +01:00
Laurenz 8eeb4ad8f6 Rename `margins` to `margin` 2022-11-19 23:33:33 +01:00
Laurenz 1937d746ab Show everything! 2022-11-19 22:40:42 +01:00
Laurenz 9b8c1dc19f Pass text node to text show rule instead of string 2022-11-18 14:31:51 +01:00
Laurenz bf59c08a0a New interaction model 2022-11-12 23:46:26 +01:00
Laurenz 010cc2effc New block spacing model 2022-11-09 18:20:02 +01:00
Laurenz a7a4cae294 Less style properties 2022-11-08 11:45:59 +01:00
Laurenz 0a41844cc4 Selectors 2022-11-07 14:43:13 +01:00
Laurenz efd1853d06 Show it!
- New show rule syntax
- Set if syntax
- Removed wrap syntax
2022-11-07 12:46:05 +01:00
Laurenz eb951c008b Style changes 2022-11-04 11:38:09 +01:00
Laurenz 33928a00dc Tidy up library 2022-11-03 16:50:26 +01:00
Laurenz 46921a8c28 Separate test crate
This removes the not-really-cyclic dependency that confuses rust-analyzer. See also: https://github.com/rust-lang/rust-analyzer/issues/2414
2022-11-03 16:13:35 +01:00
Laurenz 37a7afddfa Split crates 2022-11-03 13:35:39 +01:00
Laurenz f547c97072 Reduce usage of `finalize` 2022-10-31 15:47:49 +01:00
Laurenz 636bdb9e43 Rename `RoleMap` to `LangItems` 2022-10-31 09:11:56 +01:00
Laurenz 95e9134a3c Refactor `geom` module 2022-10-28 16:43:38 +02:00
Laurenz c0e972b91a Reduce dependencies from compiler on library 2022-10-18 00:04:12 +02:00
Laurenz e218226655 Merge some modules 2022-10-17 20:04:22 +02:00
Laurenz fd8160f374 Remove `SpanPos` in favor of `ErrorPos` 2022-10-05 13:15:02 +02:00
Laurenz ec884ec1d8 Refactor syntax module 2022-10-05 12:49:39 +02:00
Laurenz 5a8534a395 Parse basic math syntax 2022-10-04 13:45:16 +02:00
Laurenz 7ef6cb31df Bump ttf-parser 2022-09-30 11:23:09 +02:00
Laurenz abafb39041 Fix bad list interaction
Fixes #87
2022-09-26 16:25:40 +02:00
Laurenz 704f2fbaf1 Description lists, link syntax, and new enum syntax 2022-09-26 16:12:57 +02:00
Laurenz 2661f1a506 Round to nearest `u8` instead of flooring 2022-09-25 21:46:54 +02:00
Martin Haug b14274d1e4 Methods to modify colors 2022-09-25 20:04:33 +02:00
Laurenz f6adc45638 XML reading 2022-09-25 18:20:39 +02:00
Laurenz fffb55f79a JSON reading 2022-09-25 17:37:16 +02:00
Laurenz ddd3b6a82b Tracked memoization 2022-09-21 20:25:57 +02:00
Laurenz 3760748fdd Refactor error handling 2022-09-20 19:49:47 +02:00
Laurenz 757a701c1a A New World 2022-09-20 16:37:15 +02:00
Laurenz e29f55bb29 Remove font store 2022-09-19 17:44:40 +02:00
Laurenz 30be75c668 Renaming
`Face` -> `Font`
`FaceId` -> `FontId`
`SourceFile` -> `Source`
2022-09-19 11:36:59 +02:00
Laurenz 4ec3bcee48 Remove pins and memoization 2022-09-19 11:16:05 +02:00
Laurenz e5f958b921 Handle line comments nested in block comments
Fixes #76
2022-09-19 11:05:25 +02:00
Laurenz b98004330b Handle non-breaking spaces during justification 2022-09-19 10:28:06 +02:00
Laurenz 0d12f2ab23 [WIP] Label and reference syntax 2022-09-07 11:07:17 +02:00
Laurenz 9362c279de CSV reading 2022-07-27 00:09:15 +02:00
Laurenz fc574b3945 New `Str` type with methods 2022-07-26 23:27:44 +02:00
Laurenz 1e9a5eda48 Rework array methods 2022-07-26 23:24:30 +02:00
Laurenz 0dacb2d151 Fix error messages on Windows 2022-06-14 18:18:28 +02:00
Laurenz 20b990d297 Anti-aliased image rendering 2022-06-14 17:20:31 +02:00
Laurenz 7a6c2cce77 Make radius configuration unconfusing 2022-06-14 17:17:54 +02:00
Laurenz 6832ca2a26 Ensure expressions can continue after a multiline block 2022-06-14 14:05:46 +02:00
Laurenz c81e2a5f56 Many fixes 2022-06-14 13:53:02 +02:00
Laurenz 2fe549c1ec Fix inline math formula frame size 2022-06-13 14:07:48 +02:00
Laurenz 7660978ee5 Move `Arc` into `Frame` 2022-06-12 20:51:31 +02:00
Laurenz 6e3b1a2c80 Make all fields of `Frame` private 2022-06-12 17:26:18 +02:00
Laurenz ed6550fdb0 Bump dependencies 2022-06-10 23:54:16 +02:00
Laurenz 94b375ce55 Incremental renumbering 2022-06-01 13:49:02 +02:00
Laurenz 0a9172cb15 Enforce and make use of span ordering 2022-05-31 13:19:09 +02:00
Laurenz 9bbebd69dd Numbered spans 2022-05-31 12:37:05 +02:00
Laurenz 08a6188123 Remove green/red distinction 2022-05-31 10:40:30 +02:00
Martin Haug 755d468198 Fix inline nodes and decorations
Also Code Review 👯‍♂️
2022-06-01 11:43:03 +02:00
Martin Haug 4e3036afcb Sub- and superscripts
Fixes to PDF export I guess
Also improved rendition for non-Latin scripts
2022-05-31 22:56:08 +02:00
Laurenz ccb4753e24 Find optionally takes function instead of value 2022-05-30 10:33:51 +02:00
Laurenz 90be79dc86 Page background and foreground 2022-05-28 00:26:24 +02:00
Laurenz 1a7ce3da02 Luma color 2022-05-27 16:09:43 +02:00
Laurenz d4e59d4be1 Make justified break work for last line 2022-05-27 15:54:54 +02:00
Laurenz 736289b064 Ensure me is always contained in all 2022-05-27 14:20:05 +02:00
Laurenz ae68a15a46 Print function for debugging 2022-05-27 14:19:58 +02:00
Laurenz 806d9f0d9a Pure functions! 2022-05-26 17:14:44 +02:00
Laurenz 22214a1e0a Test groups 2022-05-27 14:23:05 +02:00
Laurenz 66d8f4569a Locate me! 2022-05-26 11:59:53 +02:00
Martin Haug 99cb655832 Intra-document links 2022-05-27 12:56:20 +02:00
Laurenz c010cbc17d Move route from context to VM 2022-05-25 13:59:06 +02:00
Laurenz 3309ff9fe5 Slim down context 2022-05-25 11:16:03 +02:00
Laurenz 018860da9c Parse math fonts only once 2022-05-24 19:30:09 +02:00
Laurenz 08554380f8 Fix generated strong and emphasized text 2022-05-19 13:11:00 +02:00
Laurenz 5a7c901f21 Switch to New Computer Modern Math 2022-05-19 12:59:39 +02:00
Laurenz 3965e10281 Hack in ReX for now 2022-05-18 19:09:57 +02:00
Laurenz 242b01549a Safe `eval` function 2022-05-16 20:22:48 +02:00
Laurenz a741bd6b83 Absolute paths 2022-05-16 17:56:36 +02:00
Laurenz 6536e9e069 Table fill closure 2022-05-16 16:04:40 +02:00