From d8d6a53fce6edbd07b4d8016ef2a2fc5ad5b3d05 Mon Sep 17 00:00:00 2001 From: Joe Date: Sun, 1 Mar 2026 07:14:55 -0600 Subject: [PATCH] Update dependencies and add CLI completions support - Updated several dependencies in `Cargo.lock` and `Cargo.toml`, including `anyhow`, `tempfile`, `clap`, and others to their latest versions for improved functionality and security. - Introduced a new `CompletionsCommand` in the CLI to support shell completions, enhancing user experience by allowing users to generate command completions for various shells. These changes aim to keep the project dependencies up-to-date and improve the command-line interface usability. --- Cargo.lock | 163 +++++++++++++++++++++------------------ Cargo.toml | 7 +- TODO.txt | 9 ++- crates/memofs/Cargo.toml | 2 +- src/cli/completions.rs | 21 +++++ src/cli/mod.rs | 4 + 6 files changed, 123 insertions(+), 83 deletions(-) create mode 100644 src/cli/completions.rs diff --git a/Cargo.lock b/Cargo.lock index 457f7273..4758d89b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -130,9 +130,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.101" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" [[package]] name = "arraydeque" @@ -160,9 +160,9 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "async-compression" -version = "0.4.40" +version = "0.4.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d67d43201f4d20c78bcda740c142ca52482d81da80681533d33bf3f0596c8e2" +checksum = "d0f9ee0f6e02ffd7ad5816e9464499fba7b3effd01123b515c41d1697c43dad1" dependencies = [ "compression-codecs", "compression-core", @@ -179,7 +179,8 @@ dependencies = [ "bincode", "blake3", "bytes", - "clap 4.5.59", + "clap 4.5.60", + "clap_complete", "criterion", "crossbeam-channel", "csv", @@ -418,9 +419,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.20.1" +version = "3.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6f81257d10a0f602a294ae4182251151ff97dbb504ef9afcdda4a64b24d9b4" +checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" [[package]] name = "byteorder" @@ -537,9 +538,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.59" +version = "4.5.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5caf74d17c3aec5495110c34cc3f78644bfa89af6c8993ed4de2790e49b6499" +checksum = "2797f34da339ce31042b27d23607e051786132987f595b02ba4f6a6dffb7030a" dependencies = [ "clap_builder", "clap_derive", @@ -547,9 +548,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.59" +version = "4.5.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "370daa45065b80218950227371916a1633217ae42b2715b2287b606dcd618e24" +checksum = "24a241312cea5059b13574bb9b3861cabf758b879c15190b37b6d6fd63ab6876" dependencies = [ "anstream", "anstyle", @@ -557,6 +558,15 @@ dependencies = [ "strsim 0.11.1", ] +[[package]] +name = "clap_complete" +version = "4.5.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c757a3b7e39161a4e56f9365141ada2a6c915a8622c408ab6bb4b5d047371031" +dependencies = [ + "clap 4.5.60", +] + [[package]] name = "clap_derive" version = "4.5.55" @@ -566,7 +576,7 @@ dependencies = [ "heck", "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -711,7 +721,7 @@ dependencies = [ "anes", "cast", "ciborium", - "clap 4.5.59", + "clap 4.5.60", "criterion-plot", "itertools", "num-traits", @@ -815,9 +825,9 @@ checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" [[package]] name = "deranged" -version = "0.5.6" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc3dc5ad92c2e2d1c193bbbbdf2ea477cb81331de4f3103f267ca18368b988c4" +checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" dependencies = [ "powerfmt", ] @@ -905,7 +915,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -1133,7 +1143,7 @@ checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" dependencies = [ "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -1647,9 +1657,9 @@ checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" [[package]] name = "jiff" -version = "0.2.20" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c867c356cc096b33f4981825ab281ecba3db0acefe60329f044c1789d94c6543" +checksum = "819b44bc7c87d9117eb522f14d46e918add69ff12713c475946b0a29363ed1c2" dependencies = [ "jiff-static", "log", @@ -1660,13 +1670,13 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.20" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7946b4325269738f270bb55b3c19ab5c5040525f83fd625259422a9d25d9be5" +checksum = "470252db18ecc35fd766c0891b1e3ec6cbbcd62507e85276c01bf75d8e94d4a1" dependencies = [ "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -1709,9 +1719,9 @@ checksum = "a037eddb7d28de1d0fc42411f501b53b75838d313908078d6698d064f3029b24" [[package]] name = "js-sys" -version = "0.3.85" +version = "0.3.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" +checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" dependencies = [ "once_cell", "wasm-bindgen", @@ -1792,19 +1802,18 @@ checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" [[package]] name = "libredox" -version = "0.1.12" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" +checksum = "1744e39d1d6a9948f4f388969627434e31128196de472883b39f148769bfe30a" dependencies = [ - "bitflags 2.11.0", "libc", ] [[package]] name = "linux-raw-sys" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" [[package]] name = "litemap" @@ -2141,7 +2150,7 @@ dependencies = [ "pest_meta", "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -2156,9 +2165,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pin-utils" @@ -2269,7 +2278,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2 1.0.106", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -2319,7 +2328,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b" dependencies = [ "quote 1.0.44", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -2650,9 +2659,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "reqwest" @@ -2814,9 +2823,9 @@ dependencies = [ [[package]] name = "rustix" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ "bitflags 2.11.0", "errno", @@ -2827,9 +2836,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.36" +version = "0.23.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b" +checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4" dependencies = [ "aws-lc-rs", "once_cell", @@ -2944,9 +2953,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "security-framework" -version = "3.6.0" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d17b898a6d6948c3a8ee4372c17cb384f90d2e6e912ef00895b14fd7ab54ec38" +checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" dependencies = [ "bitflags 2.11.0", "core-foundation", @@ -2957,9 +2966,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.16.0" +version = "2.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "321c8673b092a9a42605034a9879d73cb79101ed5fd117bc9a597b89b4e9e61a" +checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" dependencies = [ "core-foundation-sys", "libc", @@ -3023,7 +3032,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -3250,7 +3259,7 @@ dependencies = [ "heck", "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -3272,9 +3281,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.116" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3df424c70518695237746f84cede799c9c58fcb37450d7b23716568cc8bc69cb" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2 1.0.106", "quote 1.0.44", @@ -3298,14 +3307,14 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] name = "tempfile" -version = "3.25.0" +version = "3.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0136791f7c95b1f6dd99f9cc786b91bb81c3800b639b3478e561ddb7be95e5f1" +checksum = "82a72c767771b47409d2345987fda8628641887d5466101319899796367354a0" dependencies = [ "fastrand", "getrandom 0.4.1", @@ -3358,7 +3367,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -3369,7 +3378,7 @@ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -3508,7 +3517,7 @@ checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -3944,9 +3953,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" +checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" dependencies = [ "cfg-if 1.0.4", "once_cell", @@ -3957,9 +3966,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.58" +version = "0.4.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a6e77fd0ae8029c9ea0063f87c46fde723e7d887703d74ad2616d792e51e6f" +checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8" dependencies = [ "cfg-if 1.0.4", "futures-util", @@ -3971,9 +3980,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" +checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" dependencies = [ "quote 1.0.44", "wasm-bindgen-macro-support", @@ -3981,22 +3990,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" +checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" dependencies = [ "bumpalo", "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.116", + "syn 2.0.117", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" +checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" dependencies = [ "unicode-ident", ] @@ -4037,9 +4046,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.85" +version = "0.3.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598" +checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9" dependencies = [ "js-sys", "wasm-bindgen", @@ -4405,7 +4414,7 @@ dependencies = [ "heck", "indexmap", "prettyplease", - "syn 2.0.116", + "syn 2.0.117", "wasm-metadata", "wit-bindgen-core", "wit-component", @@ -4421,7 +4430,7 @@ dependencies = [ "prettyplease", "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.116", + "syn 2.0.117", "wit-bindgen-core", "wit-bindgen-rust", ] @@ -4520,28 +4529,28 @@ checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.116", + "syn 2.0.117", "synstructure", ] [[package]] name = "zerocopy" -version = "0.8.39" +version = "0.8.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" +checksum = "a789c6e490b576db9f7e6b6d661bcc9799f7c0ac8352f56ea20193b2681532e5" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.39" +version = "0.8.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" +checksum = "f65c489a7071a749c849713807783f70672b28094011623e200cb86dcb835953" dependencies = [ "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] @@ -4561,7 +4570,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.116", + "syn 2.0.117", "synstructure", ] @@ -4601,7 +4610,7 @@ checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.116", + "syn 2.0.117", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 2c433e30..3be401ee 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -55,7 +55,7 @@ rbx_reflection = { path = "rbx-dom/rbx_reflection" } rbx_reflection_database = { path = "rbx-dom/rbx_reflection_database" } rbx_xml = { path = "rbx-dom/rbx_xml" } -anyhow = "1.0.101" +anyhow = "1.0.102" backtrace = "0.3.76" bincode = { version = "2", features = ["serde"] } crossbeam-channel = "0.5.15" @@ -86,7 +86,7 @@ reqwest = { version = "0.13", default-features = false, features = [ "brotli", "deflate", ] } -tempfile = "3.25.0" +tempfile = "3.26.0" ritz = "0.1.0" roblox_install = "1.0.0" serde = { version = "1.0.228", features = ["derive", "rc"] } @@ -100,6 +100,7 @@ thiserror = "2" tokio = { version = "1.49.0", features = ["rt", "rt-multi-thread", "macros", "sync"] } uuid = { version = "1.21.0", features = ["v4", "serde"] } clap = { version = "4", features = ["derive"] } +clap_complete = "4" profiling = "1.0.17" yaml-rust2 = "0.11.0" data-encoding = "2.10.0" @@ -118,7 +119,7 @@ winreg = "0.55" memofs = { version = "0.3.0", path = "crates/memofs" } embed-resource = "3.0.6" -anyhow = "1.0.101" +anyhow = "1.0.102" bincode = { version = "2", features = ["serde"] } fs-err = "3" maplit = "1.0.2" diff --git a/TODO.txt b/TODO.txt index 01e57f2a..a5a1d78f 100644 --- a/TODO.txt +++ b/TODO.txt @@ -7,6 +7,7 @@ suffix version for beta [mcp] * atlas_sync + - Basically equiv to git fast-forward merge - Invokes Atlas sync from Roblox - If there are NO unselected items in the tree (e.g. all were automatically selected), it just automatically hits accept - Does nothing if we are running in connected-mode (already syncing) @@ -86,8 +87,7 @@ ensure that live-syncback respects the syncback configuration fully if descriptor.dataType == "Ref" then return end I thought we were supposed to generate a uid and then send that table to the server so it can resolve those based on like a client uid? -[cli] -make console tabbing support work +[cli inspection] we should make commands for inspecting .rbxl and .rbxm files for ai agents even inspecting ones from the website directly could we find an endpoint for downloading the "client side" of any game on the platform for context? @@ -338,3 +338,8 @@ make sure this is applied to plugin-based syncback, too. [git] I notice we actually use the git cli in a lot of places. is there a git library we can use instead? + +[cli] +make console tabbing support work +when i say console tabbing, like i can type "git c" and it will recommend "git checkout" +is there a rust crate to accomplish this? can we enable it on our current argument parser library being used? diff --git a/crates/memofs/Cargo.toml b/crates/memofs/Cargo.toml index 324e32a4..1eb76ec5 100644 --- a/crates/memofs/Cargo.toml +++ b/crates/memofs/Cargo.toml @@ -28,4 +28,4 @@ notify = { version = "8.2", features = ["macos_kqueue"] } notify = "8.2" [dev-dependencies] -tempfile = "3.25.0" +tempfile = "3.26.0" diff --git a/src/cli/completions.rs b/src/cli/completions.rs new file mode 100644 index 00000000..af5a5bfc --- /dev/null +++ b/src/cli/completions.rs @@ -0,0 +1,21 @@ +use std::io; + +use clap::Parser; +use clap_complete::{generate, Shell}; + +use super::Options; + +#[derive(Debug, Parser)] +pub struct CompletionsCommand { + /// Shell to generate completions for. + #[clap(value_enum)] + pub shell: Shell, +} + +impl CompletionsCommand { + pub fn run(self) -> anyhow::Result<()> { + let mut cmd = ::command(); + generate(self.shell, &mut cmd, "atlas", &mut io::stdout()); + Ok(()) + } +} diff --git a/src/cli/mod.rs b/src/cli/mod.rs index 708d1278..109480cc 100644 --- a/src/cli/mod.rs +++ b/src/cli/mod.rs @@ -2,6 +2,7 @@ mod build; mod clone; +mod completions; mod cursor; mod doc; mod fmt_project; @@ -20,6 +21,7 @@ use thiserror::Error; pub use self::build::BuildCommand; pub use self::clone::CloneCommand; +pub use self::completions::CompletionsCommand; pub use self::cursor::CursorCommand; pub use self::doc::DocCommand; pub use self::fmt_project::FmtProjectCommand; @@ -47,6 +49,7 @@ impl Options { pub fn run(self) -> anyhow::Result<()> { match self.subcommand { Subcommand::Clone(subcommand) => subcommand.run(self.global), + Subcommand::Completions(subcommand) => subcommand.run(), Subcommand::Init(subcommand) => subcommand.run(), Subcommand::Serve(subcommand) => subcommand.run(), Subcommand::Build(subcommand) => subcommand.run(), @@ -126,6 +129,7 @@ pub struct ColorChoiceParseError { #[derive(Debug, Parser)] pub enum Subcommand { Clone(CloneCommand), + Completions(CompletionsCommand), Init(InitCommand), Serve(ServeCommand), Build(BuildCommand),