Commit Graph
70 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
Leonard 2d1234c3d1 Include README and Dioxus logo in package docs (#1536)
* Include README in docs.rs and add Dioxus logo

* Update README.md
2023-10-10 10:52:48 -05:00
Evan Almloff f818d27fa6 only collect the rsx and render macros when formatting 2023-09-02 07:09:02 -05:00
Evan Almloff beb56b93a0 more clippy fixes 2023-07-20 09:06:12 -07:00
Evan Almloff 330950140c fix clippy 2023-07-19 18:16:32 -07:00
Evan Almloff b6ea722d94 fix some edge cases around multiline attributes 2023-07-19 16:59:20 -07:00
Evan Almloff 212022d0c2 more clippy fixes 2023-07-19 13:54:10 -07:00
Evan Almloff 6639011a3e fix autofmt 2023-07-19 13:43:04 -07:00
ealmloff c9d00908ec Update component.rs 2023-07-19 15:00:10 -05:00
Evan Almloff 3d8d8a1b6f half-build-times 2023-07-19 10:19:23 -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 4e4e101eee fix: dont choke on emojji n exprs 2023-01-17 16:24:29 -08:00
Jonathan Kelley 61b8a25ad8 make clippy happy 2023-01-17 10:51:23 -08:00
Jonathan Kelley b81eca0433 fix: short expr lists should not eat the final exprs 2023-01-16 17:25:55 -08:00
Jonathan Kelley b6e4db1f2f fix: immediate exprs 2023-01-16 16:36:50 -08:00
Jonathan Kelley aa0f6812fa fix ci around autofmt 2023-01-14 00:42:43 -08:00
Jonathan Kelley 270de7a0d2 fmt 2023-01-13 18:03:16 -08:00
Jonathan Kelley 3945928c59 fix: adjust padding on autofmt 2023-01-13 17:16:06 -08:00
Jonathan Kelley 0b110075ef chore: remvoe todos hiding in autofmt 2023-01-13 17:05:45 -08:00
Jonathan Kelley 9f9bcd747a chore: fewer clones in autoformat infrastructure 2023-01-13 16:58:53 -08:00
Jonathan Kelley ea032eeb8e clean up macro crate a little bit 2023-01-13 16:52:37 -08:00
Jonathan Kelley ac6035cb2a feat: parse entire file instead of hunting for verbtain 2023-01-13 16:46:34 -08:00
Jonathan Kelley bf559a6d06 fix clippy 2023-01-13 10:59:03 -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 983789e4c5 handle weird trailing whitespace in autofmt 2023-01-12 16:55:13 -08:00
Jonathan Kelley cc8b910cf3 fix emoji support in autofmt 2023-01-12 16:29:31 -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 5c63ae4b5d chore: dont panic 2022-12-29 01:02:07 -05:00
Jonathan Kelley bc3cf6501c feat: complete html to rsx rosetta 2022-12-28 16:22:20 -05:00
Jonathan Kelley 14bc007c15 wip: refactor out translation into its own crate 2022-12-28 11:51:41 -05: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
David Craven 99dafdb8ee Build failure on master. (#627)
* Build failure on master.

* Fix ci failure.

* Fix test.

* Ignore broken tests.

* Fix doctests.
2022-11-22 09:56:15 -08:00
Jon Kelley fb2f3e68ff fix: random commit (#586) 2022-10-08 23:07:20 -07:00
Jonathan Kelley 03bc63dacc wip: wire up bodynodes in more places 2022-10-05 01:13:14 -07: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 67dc6e6017 feat: implement type magic to allow strings, format args, and other types directly in rsx (#550)
* feat: implement type magic

* chore: undo example

* fix: let tests pass

* chore: add generic to allow any nesting of iterators

* Chore: remove comments

* chore: update rsx usage

* chore: use cleaner version of generic IntoVnode

* chore: don't derive default for lfietimed thing

* chore: remove latent comment

* fix: accept a third parameter
2022-09-12 22:49:04 -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 3d47cb48fa fix: autofmt on single line rsx calls 2022-07-07 02:06:50 -04:00
Jonathan Kelley 76581e7400 fix: disappearing manual props 2022-07-05 18:03:04 -04:00