summaryrefslogtreecommitdiff
path: root/src/cmds/comp
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmds/comp')
-rw-r--r--src/cmds/comp/helpdoc.rs22
-rw-r--r--src/cmds/comp/sheetdump.rs15
-rw-r--r--src/cmds/comp/sheetedit.rs20
-rw-r--r--src/cmds/comp/version.rs16
-rw-r--r--src/cmds/comp/workspace_alias.rs32
-rw-r--r--src/cmds/comp/workspace_sheet.rs55
6 files changed, 109 insertions, 51 deletions
diff --git a/src/cmds/comp/helpdoc.rs b/src/cmds/comp/helpdoc.rs
index 7f07cad..423e2bf 100644
--- a/src/cmds/comp/helpdoc.rs
+++ b/src/cmds/comp/helpdoc.rs
@@ -1,13 +1,17 @@
-use crate::systems::{comp::context::CompletionContext, helpdoc};
+use comp_system_macros::file_suggest;
-pub fn comp(ctx: CompletionContext) -> Option<Vec<String>> {
+use crate::systems::{
+ comp::{context::CompletionContext, result::CompletionResult},
+ helpdoc,
+};
+
+pub fn comp(ctx: CompletionContext) -> CompletionResult {
if ctx.previous_word == "helpdoc" {
- return Some(
- helpdoc::get_helpdoc_list()
- .iter()
- .map(|s| s.to_string())
- .collect(),
- );
+ return helpdoc::get_helpdoc_list()
+ .iter()
+ .map(|s| s.to_string())
+ .collect::<Vec<String>>()
+ .into();
}
- None
+ file_suggest!()
}
diff --git a/src/cmds/comp/sheetdump.rs b/src/cmds/comp/sheetdump.rs
new file mode 100644
index 0000000..e3105c0
--- /dev/null
+++ b/src/cmds/comp/sheetdump.rs
@@ -0,0 +1,15 @@
+use comp_system_macros::{file_suggest, suggest};
+use rust_i18n::t;
+
+use crate::systems::comp::{context::CompletionContext, result::CompletionResult};
+
+pub fn comp(ctx: CompletionContext) -> CompletionResult {
+ if ctx.current_word.starts_with('-') {
+ return suggest!(
+ "--no-sort" = t!("sheetdump.comp.no_sort").trim(),
+ "--no-pretty" = t!("sheetdump.comp.no_pretty").trim()
+ )
+ .into();
+ }
+ file_suggest!()
+}
diff --git a/src/cmds/comp/sheetedit.rs b/src/cmds/comp/sheetedit.rs
new file mode 100644
index 0000000..1ebf63d
--- /dev/null
+++ b/src/cmds/comp/sheetedit.rs
@@ -0,0 +1,20 @@
+use comp_system_macros::{file_suggest, suggest};
+use rust_i18n::t;
+
+use crate::systems::comp::{context::CompletionContext, result::CompletionResult};
+
+pub fn comp(ctx: CompletionContext) -> CompletionResult {
+ if ctx.current_word.starts_with('-') {
+ return suggest!(
+ "-e" = t!("sheetedit.comp.editor").trim(),
+ "--editor" = t!("sheetedit.comp.editor").trim(),
+ )
+ .into();
+ }
+
+ if ctx.previous_word == "-e" || ctx.previous_word == "--editor" {
+ return suggest!().into();
+ }
+
+ file_suggest!()
+}
diff --git a/src/cmds/comp/version.rs b/src/cmds/comp/version.rs
new file mode 100644
index 0000000..2c6b674
--- /dev/null
+++ b/src/cmds/comp/version.rs
@@ -0,0 +1,16 @@
+use comp_system_macros::{file_suggest, suggest};
+use rust_i18n::t;
+
+use crate::systems::comp::{context::CompletionContext, result::CompletionResult};
+
+pub fn comp(ctx: CompletionContext) -> CompletionResult {
+ if ctx.current_word.starts_with('-') {
+ return suggest!(
+ "-c" = t!("version.comp.with_compile_info").trim(),
+ "--with-compile-info" = t!("version.comp.with_compile_info").trim(),
+ "--no-banner" = t!("version.comp.no_banner").trim()
+ )
+ .into();
+ }
+ file_suggest!()
+}
diff --git a/src/cmds/comp/workspace_alias.rs b/src/cmds/comp/workspace_alias.rs
index 5efabfa..cd39c9d 100644
--- a/src/cmds/comp/workspace_alias.rs
+++ b/src/cmds/comp/workspace_alias.rs
@@ -1,25 +1,25 @@
-use cli_utils::string_vec;
+use comp_system_macros::{file_suggest, suggest};
+use rust_i18n::t;
-use crate::systems::comp::context::CompletionContext;
-
-pub fn comp(ctx: CompletionContext) -> Option<Vec<String>> {
- if ctx.all_words.contains(&"--insert".to_string()) {
- if ctx.all_words.len() > 7 {
- return None;
- }
- } else if ctx.all_words.len() > 5 {
- return None;
- }
+use crate::systems::comp::{context::CompletionContext, result::CompletionResult};
+pub fn comp(ctx: CompletionContext) -> CompletionResult {
if ctx.current_word.starts_with('-') {
- return Some(string_vec![
- "-i", "--insert", "-Q", "--query", "-e", "--erase", "--to",
- ]);
+ return suggest!(
+ "-i" = t!("workspace_alias.comp.insert").trim(),
+ "--insert" = t!("workspace_alias.comp.insert").trim(),
+ "-Q" = t!("workspace_alias.comp.query").trim(),
+ "--query" = t!("workspace_alias.comp.query").trim(),
+ "-e" = t!("workspace_alias.comp.erase").trim(),
+ "--erase" = t!("workspace_alias.comp.erase").trim(),
+ "--to" = t!("workspace_alias.comp.to").trim()
+ )
+ .into();
}
if ctx.previous_word == "--to" {
- return Some(vec![]);
+ return suggest!().into();
}
- None
+ file_suggest!()
}
diff --git a/src/cmds/comp/workspace_sheet.rs b/src/cmds/comp/workspace_sheet.rs
index 89cd259..d74f3c8 100644
--- a/src/cmds/comp/workspace_sheet.rs
+++ b/src/cmds/comp/workspace_sheet.rs
@@ -1,36 +1,39 @@
-use crate::systems::comp::context::CompletionContext;
-use cli_utils::string_vec;
+use comp_system_macros::{file_suggest, suggest};
use just_enough_vcs::system::workspace::workspace::manager::WorkspaceManager;
+use rust_i18n::t;
-pub fn comp(ctx: CompletionContext) -> Option<Vec<String>> {
- if ctx.all_words.len() > 5 {
- return None;
- }
-
- if (ctx.all_words.contains(&"--list-all".to_string())
- || ctx.all_words.contains(&"-A".to_string()))
- && ctx.all_words.len() > 4
- {
- return None;
- }
+use crate::systems::comp::{context::CompletionContext, result::CompletionResult};
+pub fn comp(ctx: CompletionContext) -> CompletionResult {
if ctx.current_word.starts_with('-') {
- return Some(string_vec![
- "-A",
- "--list-all",
- "-p",
- "--print-path",
- "-n",
- "--new",
- "-d",
- "--delete",
- ]);
+ return suggest!(
+ "-A" = t!("workspace_sheet.comp.list_all").trim(),
+ "--list-all" = t!("workspace_sheet.comp.list_all").trim(),
+ "-p" = t!("workspace_sheet.comp.print_path").trim(),
+ "--print-path" = t!("workspace_sheet.comp.print_path").trim(),
+ "-n" = t!("workspace_sheet.comp.new").trim(),
+ "--new" = t!("workspace_sheet.comp.new").trim(),
+ "-d" = t!("workspace_sheet.comp.delete").trim(),
+ "--delete" = t!("workspace_sheet.comp.delete").trim()
+ )
+ .into();
}
if ctx.previous_word == "--new" || ctx.previous_word == "-n" {
- return Some(vec![]);
+ return suggest!().into();
+ }
+
+ if ctx.previous_word == "--list-all"
+ || ctx.previous_word == "-A"
+ || ctx.previous_word == "--print-path"
+ || ctx.previous_word == "-p"
+ || ctx.previous_word == "--delete"
+ || ctx.previous_word == "-d"
+ {
+ let rt = tokio::runtime::Runtime::new().unwrap();
+ let names = rt.block_on(WorkspaceManager::new().list_sheet_names());
+ return names.into();
}
- let rt = tokio::runtime::Runtime::new().unwrap();
- Some(rt.block_on(WorkspaceManager::new().list_sheet_names()))
+ file_suggest!()
}