From 2f815cbf68a3f0dac01cc8bbb2dbf5f242d676d6 Mon Sep 17 00:00:00 2001 From: Kartios Date: Mon, 31 Aug 2026 15:44:05 -0700 Subject: [PATCH] Enable Floem editor primitives in shell spike --- spikes/floem-shell/Cargo.lock | 110 ++++++++++++++++++++++++++++++++++ spikes/floem-shell/Cargo.toml | 2 +- 2 files changed, 111 insertions(+), 1 deletion(-) diff --git a/spikes/floem-shell/Cargo.lock b/spikes/floem-shell/Cargo.lock index 6eb1487..9ba6e39 100644 --- a/spikes/floem-shell/Cargo.lock +++ b/spikes/floem-shell/Cargo.lock @@ -37,6 +37,15 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "aho-corasick" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" +dependencies = [ + "memchr", +] + [[package]] name = "allocator-api2" version = "0.2.21" @@ -242,6 +251,12 @@ version = "3.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" +[[package]] +name = "bytecount" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" + [[package]] name = "bytemuck" version = "1.25.2" @@ -658,6 +673,12 @@ dependencies = [ "syn 2.0.119", ] +[[package]] +name = "either" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34" + [[package]] name = "enum-ordinalize" version = "4.4.2" @@ -768,6 +789,7 @@ dependencies = [ "dispatch2", "dpi 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "educe", + "floem-editor-core", "floem-winit", "floem_reactive", "floem_renderer", @@ -777,6 +799,7 @@ dependencies = [ "image", "imbl", "indexmap", + "lapce-xi-rope", "muda", "objc2 0.6.4", "objc2-app-kit 0.3.2", @@ -792,6 +815,8 @@ dependencies = [ "sha2", "slotmap", "smallvec", + "strum", + "strum_macros", "taffy", "ui-events", "ui-events-floem-winit", @@ -806,6 +831,20 @@ dependencies = [ "wgpu", ] +[[package]] +name = "floem-editor-core" +version = "0.2.0" +source = "git+https://github.com/lapce/floem?rev=778bb5f2aa08429e579ee2e6ac97e84fbf18b618#778bb5f2aa08429e579ee2e6ac97e84fbf18b618" +dependencies = [ + "bitflags 2.13.1", + "itertools", + "lapce-xi-rope", + "memchr", + "strum", + "strum_macros", + "ui-events", +] + [[package]] name = "floem-vger" version = "0.3.2" @@ -1785,6 +1824,15 @@ dependencies = [ "hashbrown 0.17.1", ] +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.18" @@ -1921,6 +1969,18 @@ dependencies = [ "smallvec", ] +[[package]] +name = "lapce-xi-rope" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edc91b8df26aaa2700656a7c1a5b0aeb587aca512a44618974f79673dbe793ba" +dependencies = [ + "bytecount", + "memchr", + "regex", + "unicode-segmentation", +] + [[package]] name = "libc" version = "0.2.189" @@ -2887,6 +2947,35 @@ dependencies = [ "bitflags 2.13.1", ] +[[package]] +name = "regex" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + [[package]] name = "renderdoc-sys" version = "1.1.0" @@ -3345,6 +3434,27 @@ dependencies = [ "float-cmp", ] +[[package]] +name = "strum" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.119", +] + [[package]] name = "svgtypes" version = "0.16.1" diff --git a/spikes/floem-shell/Cargo.toml b/spikes/floem-shell/Cargo.toml index 2d1dfcd..243a04b 100644 --- a/spikes/floem-shell/Cargo.toml +++ b/spikes/floem-shell/Cargo.toml @@ -8,7 +8,7 @@ license = "Apache-2.0" publish = false [dependencies] -floem = { git = "https://github.com/lapce/floem", rev = "778bb5f2aa08429e579ee2e6ac97e84fbf18b618", default-features = false, features = ["vger"] } +floem = { git = "https://github.com/lapce/floem", rev = "778bb5f2aa08429e579ee2e6ac97e84fbf18b618", default-features = false, features = ["editor", "vger"] } lumbridge-spike-model = { path = "../ui-shell-model" } [workspace]