Commit graph

154 commits

Author SHA1 Message Date
Evan Almloff
7033276c34 Merge branch 'master' into pr/atty303/1349 2023-09-20 16:19:23 -05: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
marc2332
7f8c963cd9
fix: Update doc links from v3 to v4 2023-09-16 19:03:27 +02:00
Leonard
c866ae602b
Add system for creating component attributes + new #[component] attribute (#1448)
* Add `#[component]` attribute + system for creating component attributes + other stuff

* Delete inlineprops.rs

* Update inline_props.rs

* Cargo fmt

* Fix clippy warnings and paths in props/mods.rs

* Include where clause in `#[inline_props]` output

* Allow Clippy type complexity in `LinkProps`

* Allow the type complexity lint for the entire link.rs file

* Remove snake_case -> PascalCase converter, but rather enforce PascalCase

Also:
- Put the second function inside the main one instead of besides it.
- Simplify

* Simplify type check lints so they don't return false positives

They will not always work, but they won't return any false positives, like for aliases. This is likely going to be replaced by a more polished Clippy-backed linting system.

* Fix #583

* Cargo fmt

* Add docs for `deserialize()` and remove useless comment

* Add `#[component]` to prelude

* Merge branch 'master' of https://github.com/tigerros/dioxus

* #[inline_props] is no more. Except in the docs folder, but that's going to be removed

* Remove docs folder

* Remove docs from workspace

* Resolve `DeserializerOutput` conversation
2023-09-15 09:13:36 -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
f818d27fa6 only collect the rsx and render macros when formatting 2023-09-02 07:09:02 -05:00
Koji AGAWA
d573f5dfd5 feat: props spread 2023-08-13 16:45:17 +09:00
Jonathan Kelley
39e89c1fac
Bump crate versions, fix any publish errors 2023-07-31 18:49:54 -07:00
Brian Donovan
8f8627af18
attempt to hoist prettier-please dependencies 2023-07-23 16:06:55 -07:00
Jonathan Kelley
f0289068a2
Merge pull request #1219 from Demonthos/improve-build-times
Halve Build Times
2023-07-20 10:50:15 -07:00
Andrea Frigido
dccad58f1d Update license field following SPDX 2.1 license expression standard 2023-07-20 18:00:07 +01: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
05a1ea403f use published prettier-please 2023-07-19 10:33:23 -07:00
Evan Almloff
0f3606ea53 use git prettyplease temporarily 2023-07-19 10:21:37 -07:00
Evan Almloff
3d8d8a1b6f half-build-times 2023-07-19 10:19:23 -07:00
ealmloff
39ec5f498c
Merge branch 'master' into router-typesafe 2023-07-10 19:16:39 -05:00
Jonathan Kelley
37f9f38187
Merge pull request #1170 from DioxusLabs/jk/move-vscode-extension
Extract the vscode extension into its own module with wasm
2023-07-08 20:43:34 -07:00
Jonathan Kelley
f9267fb71f dont add wasm bindgen to cargo 2023-07-08 19:28:47 -07:00
Jonathan Kelley
8d27bb6236 don't add wasmbindgen 2023-07-08 19:28:39 -07:00
Jonathan Kelley
e96fd1ce57 Add a little bit of docs and change activation event 2023-07-08 19:27:25 -07:00
Marc Espín
32d4472bfd
fix: Remove duplicated doc links and improved some descriptions (#1167) 2023-07-08 11:04:27 -05:00
Evan Almloff
8f67d0aafd make creating rsx nodes from macros possible 2023-06-29 12:52:27 -07:00
Evan Almloff
7b1f0c9412 Merge branch 'master' into router-typesafe 2023-06-28 08:56:07 -07:00
Evan Almloff
5f873511c5 use workspace dependancies 2023-06-19 14:29:11 -05: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
Jonathan Kelley
d658f50141 publish autofmt 2023-03-24 09:34:40 -07:00
Jonathan Kelley
f664ce8fe0 Merge branch 'master' of github.com:DioxusLabs/dioxus 2023-02-22 13:06:41 -08:00
Jonathan Kelley
ab0023129d bump rsx 2023-02-22 12:22:45 -08:00
Evan Almloff
a51f67c2ec add version to docs links in readmes 2023-02-18 18:38:30 -06:00
Jon Kelley
4f0f2484fd
Merge pull request #774 from Demonthos/update-doc-links
Update guide doc links
2023-02-17 11:53:15 -08: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
Evan Almloff
3f3db39c28 update doc links 2023-01-15 15:18:12 -06: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
Jon Kelley
e5b39bb61f
Merge pull request #744 from Demonthos/update-readmes
Update READMEs and tags for the 0.3 release
2023-01-10 18:21:55 -08:00
Jonathan Kelley
1940855e39 feat: implement comments in zero children nodes 2023-01-10 17:47:58 -08:00
Evan Almloff
52d5c8d4e7 update READMEs and tags for the 0.3 release 2023-01-10 10:16:11 -06:00
Jonathan Kelley
74421d47fd fix comments being eaten in autofmt 2023-01-07 14:09:32 -08:00
Jonathan Kelley
7f01f61138 feat: publish 0.3 versions of many crates 2023-01-04 14:31:07 -05:00
Jonathan Kelley
4fdbce9a70 chore: clean up readmes 2022-12-29 16:17:03 -05: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
4e330bc1ec chore: fix rsx printer 2022-12-19 16:20:02 -08: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
251aafa5fd fix: fmting 2022-07-05 18:42:00 -04:00
Jonathan Kelley
575f92d2d4 chore: update readme and tests for autofmt 2022-07-05 18:23:30 -04:00
Jonathan Kelley
76581e7400 fix: disappearing manual props 2022-07-05 18:03:04 -04:00
Jonathan Kelley
19e6e43358 fix: only apply comments if relevant 2022-07-05 17:59:33 -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
2884d72b08 chore: make clippy happy 2022-07-02 23:45:32 -04:00
Jonathan Kelley
28a0c67275 polish: clean up the examples and move autofmt sample into dedicated file 2022-06-30 15:19:58 -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