Commit Graph
39 Commits
Author SHA1 Message Date
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 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