automatic add -p parametter to nvim args if tabs enabled

macos-click-through
Sergio Ribera 3 years ago
parent ed7dcf077d
commit 30efb09f93

@ -86,12 +86,6 @@ async fn start_neovim_runtime() {
start_ui_command_handler(nvim.clone());
// Open the files into new tabs
for file in settings.target_files.iter().skip(1) {
nvim.command(format!("tabnew {}", file).as_str())
.await
.unwrap_or_explained_panic("Could not create new tab");
}
SETTINGS.read_initial_values(&nvim).await;
SETTINGS.setup_changed_listeners(&nvim).await;

@ -22,8 +22,8 @@ pub struct CmdLineSettings {
pub neovim_bin: Option<String>,
pub wayland_app_id: String,
pub x11_wm_class: String,
// Command-line arguments with multiple files
pub target_files: Vec<String>,
// Disable open multiple files as tabs
pub no_tabs: bool,
}
impl Default for CmdLineSettings {
@ -47,8 +47,8 @@ impl Default for CmdLineSettings {
neovim_bin: None,
wayland_app_id: String::new(),
x11_wm_class: String::new(),
// Command-line arguments with multiple files
target_files: vec![],
// Disable open multiple files as tabs
no_tabs: false,
}
}
}
@ -89,6 +89,11 @@ pub fn handle_command_line_arguments(args: Vec<String>) -> Result<(), String> {
.long("nofork")
.help("Do not detach process from terminal"),
)
.arg(
Arg::with_name("no_tabs")
.long("notabs")
.help("Disable open multiple files as tabs"),
)
.arg(
Arg::with_name("remote_tcp")
.long("remote-tcp")
@ -152,12 +157,20 @@ pub fn handle_command_line_arguments(args: Vec<String>) -> Result<(), String> {
.values_of("neovim_args")
.map(|opt| opt.map(|v| v.to_owned()).collect())
.unwrap_or_default();
neovim_args.extend::<Vec<String>>(
matches
let files_to_open: Vec<String> = matches
.values_of("files_to_open")
.map(|opt| opt.map(|v| v.to_owned()).collect())
.unwrap_or_default(),
);
.unwrap_or_default();
if files_to_open.len() > 1
&& !files_to_open.contains(&String::from("-p"))
&& !matches.is_present("no_tabs")
{
neovim_args.push("-p".to_owned());
}
neovim_args.extend::<Vec<String>>(files_to_open);
/*
* Integrate Environment Variables as Defaults to the command-line ones.
@ -201,10 +214,8 @@ pub fn handle_command_line_arguments(args: Vec<String>) -> Result<(), String> {
.map(|v| v.to_owned())
.or_else(|| std::env::var("NEOVIDE_X11_WM_CLASS").ok())
.unwrap_or_else(|| "neovide".to_owned()),
target_files: matches
.values_of("files_to_open")
.map(|opt| opt.map(|v| v.to_owned()).collect())
.unwrap_or_default(),
// Disable open multiple files as tabs
no_tabs: matches.is_present("no_tabs") || std::env::var("NEOVIDE_NO_TABS").is_ok(),
});
Ok(())
}

Loading…
Cancel
Save