Commit graph

62 commits

Author SHA1 Message Date
Jonathan Kelley
f0d814fede
Extract some simple cleanups from 2779 (#2966)
* Chore: remove random old test fixture from CLI

* nuke oidc

* remove weird useless desktop example

* remove lua globals vscode setting for cli

* remove cli testcase

* hoist deps in core-macro

* we dont need prettyplease

* add hoisted dependencies

* hoist more despt

* rename rsx_rosetta to dioxus_rsx_rosetta

* drop cache thrashing when listening for features

* drop flag from mobile dep

* drop cli-config warning

* hoist more deps

* clippy...

* we dont use the tools module...

* bump lock
2024-09-16 16:04:20 -07:00
Jonathan Kelley
88af3e7eff
Hotreloading of for/if/body, formatted strings, literals, component props, nested rsx, light CLI rewrite, cli TUI (#2258)
Hotreload the contents of for loops, if chains, component bodies, props, attributes, and any literals discovered in rsx!
Add a TUI renderer to the CLI.
Improve the CLI build system to be async and parallel.
Refactor RSX to allow partial expansion of expressions.
Merge autofmt implementations for consistency.
Merge the representation of elements and components under the hood.
Add a diagnostics system for rsx for improved error messages.
Drop interprocess and move to websockets for communication between the CLI and the server.
Assign IDs to nodes and attributes in a stable way to be used in non compiler contexts.
Add hotreloading to any body of component/for loop/if chain/etc.

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
Co-authored-by: Liam Mitchell <liamkarlmitchell@gmail.com>
2024-07-17 19:11:18 -07:00
Evan Almloff
b6dc2a2230
Deduplicate reactive scope updates/Reset subscriptions on reruns/fix use memo double update (#2506)
* deduplicate effect updates

* only subscribe to signals read in the current run of reactive scopes

* subscribe to memo reads after recomputing the value
2024-06-18 18:49:25 -07:00
airblast
0eb16f27d4
chore: Remove unused dependency (#2466)
Removes the constcat dependeny from core-macro.
2024-05-31 07:06:55 -05:00
Evan Almloff
b3cd4fac10
set up example scaping for docs.rs (#2450) 2024-05-28 13:05:55 -07:00
Jonathan Kelley
ad7a350d2e
fix hotreloading issues in the CLI 2024-03-12 13:39:42 -07:00
Jonathan Kelley
2ae3241cc0
Merge branch 'master' into jk/breaking-merged 2024-01-11 16:04:36 -08:00
Evan Almloff
5d842bad2b add the visit feature to syn in core-macro 2024-01-06 08:59:57 -06:00
Evan Almloff
4013341b6c hello world example working 2024-01-05 18:01:05 -06:00
Evan Almloff
77d53df532 Merge branch 'master' into pr/atty303/1349 2023-10-31 13:39:20 -05:00
Leonard
cea9563e25
Improve prop docs (#1565)
* Do the stuff

* More sanitizing + fix warnings and format
2023-10-23 08:41:26 -05:00
Evan Almloff
7b51bb8060 WIP: add extends to the props macro 2023-09-26 19:23:00 -05: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
Jonathan Kelley
39e89c1fac
Bump crate versions, fix any publish errors 2023-07-31 18:49:54 -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
3d8d8a1b6f half-build-times 2023-07-19 10:19:23 -07:00
Marc Espín
32d4472bfd
fix: Remove duplicated doc links and improved some descriptions (#1167) 2023-07-08 11:04:27 -05:00
Torstein Grindvik
a3169ac17b Change missing trailing comma span to point to span where comma is missing from
Signed-off-by: Torstein Grindvik <torstein.grindvik@nordicsemi.no>
2023-07-02 15:19:03 +02:00
Evan Almloff
5f873511c5 use workspace dependancies 2023-06-19 14:29:11 -05:00
Jonathan Kelley
ab0023129d bump rsx 2023-02-22 12:22:45 -08:00
Evan Almloff
52d5c8d4e7 update READMEs and tags for the 0.3 release 2023-01-10 10:16:11 -06:00
Jonathan Kelley
7f01f61138 feat: publish 0.3 versions of many crates 2023-01-04 14:31:07 -05:00
Jonathan Kelley
b254d9e761 chore: remove cross-crate doc comments 2022-12-09 15:03:56 -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
YuKun Liu
0af69f83f2 Rename hot_reload to hot-reload 2022-06-26 14:23:19 +08:00
Evan Almloff
3b2ac82e8d fix spelling of interpreter 2022-05-31 12:18:22 -05:00
Evan Almloff
06390b9be5 allow rsx to be used outside of a proc_macro context 2022-05-28 12:10:32 -05:00
Evan Almloff
f9713b2fe9 Merge remote-tracking branch 'origin/master' into jk/rsx-refactor 2022-05-27 17:56:50 -05:00
Evan Almloff
c7c84da8ab WIP hot reload 2022-05-25 08:58:59 -05:00
Jonathan Kelley
3febd42588 Release dioxus-core v0.2.1, dioxus-core-macro v0.2.1, dioxus-html v0.2.1, dioxus-interpreter-js v0.2.1, dioxus-desktop v0.2.3, dioxus-hooks v0.2.1, dioxus-liveview v0.1.0, dioxus-native-core v0.2.0, dioxus-native-core-macro v0.2.0, dioxus-router v0.2.3, dioxus-ssr v0.2.1, dioxus-tui v0.2.2, dioxus-web v0.2.1, fermi v0.2.1, dioxus v0.2.4 2022-05-02 23:57:20 -04:00
Jonathan Kelley
794f43ffee concept: move rsx out to its own crate 2022-04-24 02:35:52 -04:00
Jonathan Kelley
e7505188d6 release: make a new 0.2.0 release of Dioxus 2022-03-09 14:24:05 -05:00
Jonathan Kelley
45231651dd fix: quick patch 2022-02-22 16:34:06 -05:00
Jonathan Kelley
b93487282d feat: move files around 2022-02-18 20:54:30 -05:00
Jonathan Kelley
b2472e3cfe Merge branch 'master' into jk/partialexpansion 2022-02-18 15:31:49 -05:00
Jonathan Kelley
3873cd1a60 fix: remove unused depds 2022-02-16 14:40:45 -05:00
Jonathan Kelley
ca7ce46cdb Merge branch 'master' into jk/partialexpansion 2022-02-13 12:36:02 -05:00
Jonathan Kelley
1b2a0053ef Release dioxus-core-macro v0.1.7 2022-01-29 10:35:54 -05:00
Jonathan Kelley
abfac0d59b wip: move macro lib out of proc macro crate 2022-01-17 16:37:44 -05:00
Jonathan Kelley
40d1f85d0c Release dioxus-core v0.1.7, dioxus-core-macro v0.1.6, dioxus-html v0.1.4, dioxus-desktop v0.1.5, dioxus-hooks v0.1.6, dioxus-mobile v0.0.3, dioxus-router v0.1.0, dioxus-ssr v0.1.2, dioxus-web v0.0.4, dioxus v0.1.7 2022-01-08 02:25:03 -05:00
Jonathan Kelley
4ea5c990d7 publish: new versions of everything 2022-01-03 19:44:04 -05:00
Jonathan Kelley
f9b9bb9c0c publish: update core, core-macro, and html 2022-01-03 02:13:14 -05:00
Jonathan Kelley
4c85bcfdc8 awesome: arbitrary expressions excepted without braces 2021-12-30 03:14:47 -05:00
Jonathan Kelley
639f9f5322 publish: bump macro crate 2021-12-29 13:31:52 -05:00
Jonathan Kelley
cda759c659 examples: upgrade to new version of dioxus core.
also add the inline_props macro
2021-12-25 17:18:05 -05:00
Jonathan Kelley
868f6739d2 fix: keyword length 2021-12-15 16:06:13 -05:00
Jonathan Kelley
a33f7701fc fix: tags 2021-12-15 16:05:18 -05:00
Jonathan Kelley
e4c06ce8e8 docs: update cargo tomls 2021-12-15 16:04:27 -05:00
Jonathan Kelley
6587224deb polish: remove warnings on core macero 2021-09-24 20:51:48 -04:00