[package] name = "pmacs-gpu" version = "0.0.1" edition = "2024" rust-version = "1.95" description = "GPU/GUI frontend for pmacs — attach, editing, syntax/diagnostics/minimap, mouse + context menu, clipboard, search, minibuffer. See docs/pmacs-gpu-design.md." license = "MIT OR Apache-2.0" authors = ["Pmacs contributors"] readme = "../README.md" repository = "https://git.levineuwirth.org/neuwirth/pmacs" homepage = "https://levineuwirth.org/essays/pmacs" keywords = ["editor", "emacs", "gpu", "gui"] categories = ["text-editors"] publish = false [[bin]] name = "pmacs-gpu" path = "src/main.rs" [lints.rust] unsafe_code = "forbid" missing_docs = "warn" [lints.clippy] all = { level = "warn", priority = -1 } pedantic = { level = "warn", priority = -1 } # Allows: same set as the root `pmacs` crate, mirrored so the GPU # code doesn't trip lints the rest of the project doesn't either. module_name_repetitions = "allow" must_use_candidate = "allow" missing_errors_doc = "allow" missing_panics_doc = "allow" cast_possible_truncation = "allow" cast_sign_loss = "allow" cast_precision_loss = "allow" similar_names = "allow" multiple_crate_versions = "allow" [dependencies] # OS clipboard for cut/copy/paste (Q#CM6). `wayland-data-control` adds # the zwlr_data_control backend so the clipboard works under Wayland # without a window handle; the default X11 backend covers X sessions. # `image-data` is dropped --- pmacs only round-trips text. arboard = { version = "3", default-features = false, features = ["wayland-data-control"] } env_logger = "0.11.10" # Text shaping + GPU rendering. `glyphon` re-exports the `cosmic-text` # types it pins (`Buffer`, `Attrs`, `Family`, `FontSystem`, # `Metrics`, `Shaping`, `SwashCache`, ...); we use those re-exports # rather than depending on `cosmic-text` directly so the build never # ends up with two cosmic-text versions resolving to the same name. glyphon = "0.11.0" loro = "=1.12.0" # Session 1's wire-types crate. Pulled in now so the dep graph is # settled from session 2 forward; protocol consumption itself lands # in session 3. pmacs-protocol = { version = "1.0.0", path = "../pmacs-protocol" } pollster = "0.4.0" wgpu = "29.0.3" winit = "0.30.13"