summaryrefslogtreecommitdiffstats
path: root/src/config/option
diff options
context:
space:
mode:
Diffstat (limited to 'src/config/option')
-rw-r--r--src/config/option/mod.rs2
-rw-r--r--src/config/option/new_tab_option.rs19
2 files changed, 21 insertions, 0 deletions
diff --git a/src/config/option/mod.rs b/src/config/option/mod.rs
index cf90f1b..fe53e57 100644
--- a/src/config/option/mod.rs
+++ b/src/config/option/mod.rs
@@ -1,5 +1,6 @@
pub mod display_option;
pub mod linemodes;
+pub mod new_tab_option;
pub mod preview_option;
pub mod select_option;
pub mod sort_option;
@@ -8,6 +9,7 @@ pub mod tab_option;
pub use self::display_option::*;
pub use self::linemodes::*;
+pub use self::new_tab_option::*;
pub use self::preview_option::*;
pub use self::select_option::*;
pub use self::sort_option::*;
diff --git a/src/config/option/new_tab_option.rs b/src/config/option/new_tab_option.rs
new file mode 100644
index 0000000..ffb15ca
--- /dev/null
+++ b/src/config/option/new_tab_option.rs
@@ -0,0 +1,19 @@
+#[derive(Clone, Debug, Default, PartialEq, Eq)]
+pub enum NewTabMode {
+ #[default]
+ Default,
+ CurrentTabDir,
+ CursorDir,
+ Directory(String),
+}
+
+impl NewTabMode {
+ pub fn from_str(arg: &str) -> NewTabMode {
+ match arg.trim() {
+ "" => NewTabMode::Default,
+ "--current" => NewTabMode::CurrentTabDir,
+ "--cursor" => NewTabMode::CursorDir,
+ dir => NewTabMode::Directory(String::from(dir)),
+ }
+ }
+}