Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
0c9ac66
Migrate Specta to Tsify to auto-generate messages.ts, working except …
Keavon Mar 6, 2026
fd930d9
Adopt the generated FillColor/Color/GradientStops
Keavon Mar 6, 2026
092485d
Fix widget typing
Keavon Mar 6, 2026
a9f1cb7
Separate WidgetGroup enum variants into wrapper structs
Keavon Mar 6, 2026
dad51d2
Small rename
Keavon Mar 6, 2026
51bb7e5
Simplify widgets further
Keavon Mar 6, 2026
e7cc94d
Clean up message type references
Keavon Mar 7, 2026
3cfa4ce
Switch type imports to the auto-generated file
Keavon Mar 7, 2026
70376fe
Remove lowercase serde rename
Keavon Mar 7, 2026
ec78397
Fix FillChoice deserialization
Keavon Mar 7, 2026
d8a986f
Fix small regression from #3837
Keavon Mar 7, 2026
ab3806e
Improve type safety
Keavon Mar 7, 2026
3619170
Make WidgetSpan type-safe
Keavon Mar 7, 2026
299ed5c
More cleanup and type safety
Keavon Mar 7, 2026
5ba1a11
More type safety
Keavon Mar 7, 2026
61311a6
More type safety
Keavon Mar 7, 2026
0ef2d3b
Get the rest to type-check without errors; improve widget builder mac…
Keavon Mar 7, 2026
385e4dc
Cargo fmt
Keavon Mar 7, 2026
4647c5f
Fix imports
Keavon Mar 7, 2026
10ef0e1
Update outdated readme info
Keavon Mar 7, 2026
b5b357c
Fix lint command rename references
Keavon Mar 7, 2026
55df87c
Fix typos
Keavon Mar 7, 2026
bb88d9f
One more typos fix
Keavon Mar 7, 2026
a967c49
Remove unnecessary dep: prefix from the edited Cargo.toml files
Keavon Mar 7, 2026
d0af724
Remove excess parts from Cargo.toml
Keavon Mar 7, 2026
f4bc9a3
Fix compiling on desktop
Keavon Mar 7, 2026
e0c7c9d
Revert "Remove excess parts from Cargo.toml"
Keavon Mar 7, 2026
c07adb4
Update dev docs with simpler, more accurate instructions
Keavon Mar 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ jobs:
NODE_ENV: production
run: |
cd frontend
npm run lint
npm run check
# Run the Rust tests on the self-hosted native runner
test:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/website.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ jobs:
run: |
cd website
npm ci
npm run lint
npm run check
zola --config config.toml build --minify

- name: 📤 Publish to Cloudflare Pages
Expand Down
15 changes: 1 addition & 14 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,25 +39,12 @@
"rust-analyzer.check.command": "clippy",
"rust-analyzer.cargo.allTargets": false,
"rust-analyzer.procMacro.ignored": {
"serde_derive": ["Serialize", "Deserialize"],
"specta_macros": ["Type"] // Disabled because of: https://github.com/specta-rs/specta/issues/387
"serde_derive": ["Serialize", "Deserialize"]
},
// ESLint config
"eslint.format.enable": true,
"eslint.workingDirectories": ["./frontend", "./website"],
"eslint.validate": ["javascript", "typescript", "svelte"],
// Svelte config
"svelte.plugin.svelte.compilerWarnings": {
"css-unused-selector": "ignore", // NOTICE: Keep this list in sync with the list in `frontend/vite.config.ts`
"vite-plugin-svelte-css-no-scopable-elements": "ignore", // NOTICE: Keep this list in sync with the list in `frontend/vite.config.ts`
"a11y-no-static-element-interactions": "ignore", // NOTICE: Keep this list in sync with the list in `frontend/vite.config.ts`
"a11y-no-noninteractive-element-interactions": "ignore", // NOTICE: Keep this list in sync with the list in `frontend/vite.config.ts`
"a11y-click-events-have-key-events": "ignore", // NOTICE: Keep this list in sync with the list in `frontend/vite.config.ts`
"a11y_consider_explicit_label": "ignore", // NOTICE: Keep this list in sync with the list in `frontend/vite.config.ts`
"a11y_click_events_have_key_events": "ignore", // NOTICE: Keep this list in sync with the list in `frontend/vite.config.ts`
"a11y_no_noninteractive_element_interactions": "ignore", // NOTICE: Keep this list in sync with the list in `frontend/vite.config.ts`
"a11y_no_static_element_interactions": "ignore" // NOTICE: Keep this list in sync with the list in `frontend/vite.config.ts`
},
// Git Graph config
"git-graph.repository.fetchAndPrune": true,
"git-graph.repository.showRemoteHeads": false,
Expand Down
106 changes: 67 additions & 39 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 2 additions & 6 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ rustc-hash = "2.0"
bytemuck = { version = "1.13", features = ["derive", "min_const_generics"] }
serde = { version = "1.0", features = ["derive", "rc"] }
serde_json = "1.0"
serde_bytes = "0.11"
serde-wasm-bindgen = "0.6"
reqwest = { version = "0.13", features = ["blocking", "json"] }
futures = "0.3"
Expand Down Expand Up @@ -176,11 +177,7 @@ fern = { version = "0.7", features = ["colored"] }
num_enum = { version = "0.7", default-features = false }
num-derive = "0.4"
num-traits = { version = "0.2", default-features = false, features = ["libm"] }
specta = { version = "2.0.0-rc.22", features = [
"glam",
"derive",
# "typescript",
] }
tsify = { version = "0.5", default-features = false, features = ["js"] }
syn = { version = "2.0", default-features = false, features = [
"full",
"derive",
Expand Down Expand Up @@ -230,7 +227,6 @@ graphite-proc-macros = { opt-level = 1 }
image = { opt-level = 2 }
rustc-hash = { opt-level = 3 }
serde_derive = { opt-level = 1 }
specta-macros = { opt-level = 1 }
syn = { opt-level = 1 }
node-macro = { opt-level = 2 }

Expand Down
2 changes: 1 addition & 1 deletion deny.toml
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ allow-git = []

[sources.allow-org]
# 1 or more github.com organizations to allow git sources for
github = ["linebender", "Rust-GPU", "specta-rs"]
github = ["linebender", "Rust-GPU"]
# 1 or more gitlab.com organizations to allow git sources for
#gitlab = [""]
# 1 or more bitbucket.org organizations to allow git sources for
Expand Down
2 changes: 2 additions & 0 deletions desktop/wrapper/src/intercept_frontend_message.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ pub(super) fn intercept_frontend_message(dispatcher: &mut DesktopWrapperMessageD
});
}
FrontendMessage::TriggerSaveDocument { document_id, name, path, content } => {
let content = content.into_vec();
if let Some(path) = path {
dispatcher.respond(DesktopFrontendMessage::WriteFile { path, content });
} else {
Expand All @@ -42,6 +43,7 @@ pub(super) fn intercept_frontend_message(dispatcher: &mut DesktopWrapperMessageD
}
}
FrontendMessage::TriggerSaveFile { name, content } => {
let content = content.into_vec();
dispatcher.respond(DesktopFrontendMessage::SaveFileDialog {
title: "Save File".to_string(),
default_filename: name,
Expand Down
2 changes: 1 addition & 1 deletion desktop/wrapper/src/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ pub(crate) mod menu {
[layout_group] => layout_group,
_ => panic!("Menu bar layout is supposed to have exactly one layout group"),
};
let LayoutGroup::Row { widgets } = layout_group else {
let LayoutGroup::Row(WidgetRow { widgets }) = layout_group else {
panic!("Menu bar layout group is supposed to be a row");
};
widgets
Expand Down
3 changes: 2 additions & 1 deletion editor/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,13 @@ log = { workspace = true }
bitflags = { workspace = true }
thiserror = { workspace = true }
serde = { workspace = true }
serde_bytes = { workspace = true }
serde_json = { workspace = true }
kurbo = { workspace = true }
futures = { workspace = true }
glam = { workspace = true }
derivative = { workspace = true }
specta = { workspace = true }
tsify = { workspace = true }
dyn-any = { workspace = true }
num_enum = { workspace = true }
usvg = { workspace = true }
Expand Down
2 changes: 1 addition & 1 deletion editor/src/dispatcher.rs
Original file line number Diff line number Diff line change
Expand Up @@ -596,7 +596,7 @@ mod test {
} = response
{
if let DiffUpdate::Layout(sub_layout) = &diff[0].new_value {
if let LayoutGroup::Row { widgets } = &sub_layout.0[0] {
if let LayoutGroup::Row(WidgetRow { widgets }) = &sub_layout.0[0] {
if let Widget::TextLabel(TextLabel { value, .. }) = &*widgets[0].widget {
print_problem_to_terminal_on_failure(value);
}
Expand Down
Loading