Add version and help command line arguments (#443)

* add maximized command line argument

* fix println when in release mode on windows
macos-click-through
Keith Simmons 4 years ago committed by GitHub
parent 5b29700513
commit 546937501b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -4,7 +4,7 @@ use nvim_rs::Neovim;
use tokio::process::ChildStdin; use tokio::process::ChildStdin;
#[cfg(windows)] #[cfg(windows)]
use crate::settings::windows_registry::{ use crate::windows_utils::{
register_rightclick_directory, register_rightclick_file, unregister_rightclick, register_rightclick_directory, register_rightclick_file, unregister_rightclick,
}; };

@ -10,6 +10,7 @@ mod redraw_scheduler;
mod renderer; mod renderer;
mod settings; mod settings;
mod window; mod window;
pub mod windows_utils;
#[macro_use] #[macro_use]
extern crate derive_new; extern crate derive_new;
@ -18,10 +19,7 @@ extern crate rust_embed;
#[macro_use] #[macro_use]
extern crate lazy_static; extern crate lazy_static;
use std::{ use std::sync::{atomic::AtomicBool, mpsc::channel, Arc};
process,
sync::{atomic::AtomicBool, mpsc::channel, Arc},
};
use crossfire::mpsc::unbounded_future; use crossfire::mpsc::unbounded_future;
@ -29,6 +27,7 @@ use bridge::start_bridge;
use editor::start_editor; use editor::start_editor;
use renderer::{cursor_renderer::CursorSettings, RendererSettings}; use renderer::{cursor_renderer::CursorSettings, RendererSettings};
use window::{create_window, window_geometry, KeyboardSettings, WindowSettings}; use window::{create_window, window_geometry, KeyboardSettings, WindowSettings};
use windows_utils::attach_parent_console;
pub const INITIAL_DIMENSIONS: (u64, u64) = (100, 50); pub const INITIAL_DIMENSIONS: (u64, u64) = (100, 50);
@ -101,11 +100,22 @@ fn main() {
// another frame next frame, or if it can safely skip drawing to save battery and cpu power. // another frame next frame, or if it can safely skip drawing to save battery and cpu power.
// Multiple other parts of the app "queue_next_frame" function to ensure animations continue // Multiple other parts of the app "queue_next_frame" function to ensure animations continue
// properly or updates to the graphics are pushed to the screen. // properly or updates to the graphics are pushed to the screen.
println!("This is a test");
if std::env::args().any(|arg| arg == "--version" || arg == "-v") {
attach_parent_console();
println!("Neovide version: {}", env!("CARGO_PKG_VERSION"));
}
if std::env::args().any(|arg| arg == "--help" || arg == "-h") {
attach_parent_console();
println!("Neovide: {}", env!("CARGO_PKG_DESCRIPTION"));
}
if let Err(err) = window_geometry() { if let Err(err) = window_geometry() {
eprintln!("{}", err); eprintln!("{}", err);
process::exit(1); return;
}; }
#[cfg(target_os = "macos")] #[cfg(target_os = "macos")]
{ {
@ -118,7 +128,6 @@ fn main() {
.arg("--disowned") .arg("--disowned")
.spawn() .spawn()
.is_ok()); .is_ok());
std::process::exit(0);
} else { } else {
eprintln!("error in disowning process, cannot obtain the path for the current executable, continuing without disowning..."); eprintln!("error in disowning process, cannot obtain the path for the current executable, continuing without disowning...");
} }

@ -12,7 +12,6 @@ use nvim_rs::Neovim;
use parking_lot::RwLock; use parking_lot::RwLock;
pub use rmpv::Value; pub use rmpv::Value;
use tokio::process::ChildStdin; use tokio::process::ChildStdin;
pub mod windows_registry;
use crate::error_handling::ResultPanicExplanation; use crate::error_handling::ResultPanicExplanation;
@ -50,14 +49,12 @@ impl Settings {
if arg == "--log" { if arg == "--log" {
log_to_file = true; log_to_file = true;
false false
} else if arg == "--version" || arg == "-v" {
println!("Neovide version: {}", env!("CARGO_PKG_VERSION"));
std::process::exit(0);
} else if arg == "--help" || arg == "-h" {
println!("neovide: {}", env!("CARGO_PKG_DESCRIPTION"));
std::process::exit(0);
} else { } else {
!(arg.starts_with("--geometry=") !(arg.starts_with("--geometry=")
|| arg == "--version"
|| arg == "-v"
|| arg == "--help"
|| arg == "-h"
|| arg == "--wsl" || arg == "--wsl"
|| arg == "--disowned" || arg == "--disowned"
|| arg == "--multiGrid" || arg == "--multiGrid"

@ -5,6 +5,7 @@ use winapi::{
shared::minwindef::{DWORD, HKEY, MAX_PATH}, shared::minwindef::{DWORD, HKEY, MAX_PATH},
um::{ um::{
libloaderapi::GetModuleFileNameA, libloaderapi::GetModuleFileNameA,
wincon::{AttachConsole, ATTACH_PARENT_PROCESS},
winnt::{KEY_WRITE, REG_OPTION_NON_VOLATILE, REG_SZ}, winnt::{KEY_WRITE, REG_OPTION_NON_VOLATILE, REG_SZ},
winreg::{RegCloseKey, RegCreateKeyExA, RegDeleteTreeA, RegSetValueExA, HKEY_CLASSES_ROOT}, winreg::{RegCloseKey, RegCreateKeyExA, RegDeleteTreeA, RegSetValueExA, HKEY_CLASSES_ROOT},
}, },
@ -212,3 +213,9 @@ pub fn register_rightclick_file() -> bool {
} }
true true
} }
pub fn attach_parent_console() {
unsafe {
AttachConsole(ATTACH_PARENT_PROCESS);
}
}
Loading…
Cancel
Save