Commit Graph
44 Commits
Author SHA1 Message Date
Jonathan Kelley 8df7a7685e Merge branch 'master' into many_optional_attributes 2024-01-04 10:18:57 -08:00
Alex Parrill 52fb080193 Use indentation settings in dx fmt and vscode extension
Adds the ability to specify an indent string to public autofmt methods - either
a sequence of spaces or a tab character.

Get the indentation style and size from rustfmt for dx fmt, or from the editor
settings for the vscode extension.

Closes #1595
2023-11-01 17:24:18 -04:00
Evan Almloff ab2b9fb34e fix autoformatting 2023-09-19 09:39:53 -05:00
Evan Almloff d297e2baa2 Add optional attributes 2023-09-18 19:50:02 -05:00
Evan Almloff 1a17ca988c fix double quotes in autoformatting 2023-09-14 16:19:21 -05:00
Evan Almloff 8c47dfaf78 clean up attribute parsing 2023-09-14 14:08:39 -05:00
Evan Almloff b6ea722d94 fix some edge cases around multiline attributes 2023-07-19 16:59:20 -07:00
Evan Almloff 8f67d0aafd make creating rsx nodes from macros possible 2023-06-29 12:52:27 -07:00
Evan Almloff d9e0b9a918 fix autoformatting raw strings 2023-06-02 12:03:56 -05:00
Evan Almloff 7be8ec3467 Fix html to rsx conversions 2023-04-24 16:07:50 -05:00
Evan Almloff b6c7d44a27 fix clippy 2023-01-27 20:35:46 -06:00
Jonathan Kelley b81eca0433 fix: short expr lists should not eat the final exprs 2023-01-16 17:25:55 -08:00
Jonathan Kelley aa0f6812fa fix ci around autofmt 2023-01-14 00:42:43 -08:00
Jonathan Kelley ac6035cb2a feat: parse entire file instead of hunting for verbtain 2023-01-13 16:46:34 -08:00
Jonathan Kelley 6cd87796f2 feat: allow ifchains and for loops 2023-01-13 10:51:12 -08:00
Jonathan Kelley 8ec5cbcc20 fix ci 2023-01-12 22:54:50 -08:00
Jonathan Kelley 293ef9c690 fix: only flow exprs with indent in mind 2023-01-12 17:02:41 -08:00
Jonathan Kelley 1940855e39 feat: implement comments in zero children nodes 2023-01-10 17:47:58 -08:00
Jonathan Kelley 74421d47fd fix comments being eaten in autofmt 2023-01-07 14:09:32 -08:00
Jonathan Kelley c240aebfa1 chore: start instead of flart 2022-12-26 09:58:41 -05:00
Jonathan Kelley 182f11d0f3 chore: update with master 2022-12-19 16:17:59 -08:00
Jonathan Kelley 09b38574db Merge branch 'master' into jk/autofmt-fixues 2022-12-19 12:19:51 -08:00
Demonthos 047ed1e553 Subtree memorization / reactive templates (#488)
This commit adds subtree memoization to Dioxus.

Subtree memoization is basically a compile-time step that drastically 
reduces the amount of work the diffing engine needs to do at runtime by
extracting non-changing nodes out into a static "template." Templates 
are then understood by the various renderers in the ecosystem as a 
faster way of rendering the same items. 

For example, in the web, templates are simply a set of DOM Nodes created 
once and then cloned later. This is the same pattern frameworks like Lithtml
and SolidJS use to achieve near-perfect performance. 

Subtree memoization adds an additional level of complexity to Dioxus. The RSX
macro needs to be much smarter to identify changing/nonchanging nodes and
generate a mapping between the Template and its runtime counterparts.

This commit represents a working starter point for this work, adding support 
for templates for the web, desktop, liveview, ssr, and native-core renderers.
In the future we will try to shrink code generation, generally improve 
performance, and simplify our implementation.
2022-09-30 12:03:06 -07:00
Jonathan Kelley 181a51a63b wip: add whitespace parsing to rsx 2022-09-30 10:51:53 -07:00
Jonathan Kelley 5313fc0cc6 fix: trailing commas with key 2022-09-28 17:06:11 -07:00
Jonathan Kelley a37458b9fa chore: fixes to autoformat to prevent double rendering of expr line 2022-09-28 16:47:10 -07:00
Jon Kelley d9546d9504 Renderers are now packages, not features. (#387)
* feat: use synchronous router design

* feat: function to get router out of dom

* chore: restructure workspace to use renderers as packages, not features
2022-07-09 15:15:20 -04:00
Jonathan Kelley fa9ebe17cc feat: fix autoformatting around one liners 2022-07-05 17:49:16 -04:00
Jonathan Kelley 64d669e934 chore: add todo list to autofmt crate 2022-07-05 13:31:26 -04:00
Jonathan Kelley 2634755620 fix: handle comments around attributes better 2022-07-05 02:06:54 -04:00
Jonathan Kelley 4471ccba49 fix: even better comment handling 2022-07-05 01:53:08 -04:00
Jonathan Kelley 47f3cc2529 fix: correct comment handling for first line 2022-07-05 00:30:09 -04:00
Jonathan Kelley 150d824561 feat: more advanced comment handling 2022-07-05 00:22:06 -04:00
Jon Kelley 3a30b36f68 fix: some edge cases around autoformatting (#485)
* wip: remove comment support from autofmt

* fix: some edge cases around autoformatting

* fix: revert readme

* fix: failing test
2022-07-04 21:11:03 -04:00
Jonathan Kelley 0aec375371 wip: clean up formatting package 2022-06-28 17:33:11 -04:00
Jonathan Kelley bd936d3af2 feat: more cleanup 2022-06-28 17:29:10 -04:00
Jonathan Kelley fa756ba245 feat: manual props 2022-06-28 17:16:26 -04:00
Jonathan Kelley 5bab835843 fix: allow keys 2022-06-28 15:35:46 -04:00
Jonathan Kelley 1e4af430a8 wip: eliminate warnings 2022-06-28 15:15:09 -04:00
Jonathan Kelley a825cdcf58 feat: simple support for comments 2022-06-28 15:01:51 -04:00
Jonathan Kelley d70b436157 wip: more cleanup, more tests 2022-06-27 16:24:36 -04:00
Jonathan Kelley a2a194ca40 wip: use stateful buffer 2022-06-27 13:36:41 -04:00
Jonathan Kelley 79b475798d wip: make element printer more comprehensive 2022-06-25 02:22:26 -04:00
Jonathan Kelley 398cbc6534 wip: rely on git version of prettyplease, refactor autofmt 2022-06-25 00:55:52 -04:00