diff options
| author | Jon Heinritz <jon.heinritz@protonmail.com> | 2025-03-10 21:14:34 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-03-10 20:14:34 +0000 |
| commit | 87b6c1262544a463703a34d8404ef339b7d18536 (patch) | |
| tree | 97334c2dd0de14ec3602096ce806e58b3b048e6d /src | |
| parent | b351f6ff220560d96a260d8dd3ad794000923481 (diff) | |
| download | niri-87b6c1262544a463703a34d8404ef339b7d18536.tar.gz niri-87b6c1262544a463703a34d8404ef339b7d18536.tar.bz2 niri-87b6c1262544a463703a34d8404ef339b7d18536.zip | |
Add Shell completions (#1226)
* feat(cli): add subcommand to generate shell completions
* Update src/cli.rs
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
---------
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/cli.rs | 3 | ||||
| -rw-r--r-- | src/main.rs | 6 |
2 files changed, 8 insertions, 1 deletions
@@ -2,6 +2,7 @@ use std::ffi::OsString; use std::path::PathBuf; use clap::{Parser, Subcommand}; +use clap_complete::Shell; use niri_ipc::{Action, OutputAction}; use crate::utils::version; @@ -54,6 +55,8 @@ pub enum Sub { }, /// Cause a panic to check if the backtraces are good. Panic, + /// Generate shell completions. + Completions { shell: Shell }, } #[derive(Subcommand)] diff --git a/src/main.rs b/src/main.rs index e11cd112..fd34ae82 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,7 +9,7 @@ use std::path::{Path, PathBuf}; use std::process::Command; use std::{env, mem}; -use clap::Parser; +use clap::{CommandFactory, Parser}; use directories::ProjectDirs; use niri::cli::{Cli, Sub}; #[cfg(feature = "dbus")] @@ -106,6 +106,10 @@ fn main() -> Result<(), Box<dyn std::error::Error>> { return Ok(()); } Sub::Panic => cause_panic(), + Sub::Completions { shell } => { + clap_complete::generate(shell, &mut Cli::command(), "niri", &mut io::stdout()); + return Ok(()); + } } } |
