From 6c99c00a51fc7a8e87167a39214ac5ff9711ad82 Mon Sep 17 00:00:00 2001 From: pacexy Date: Wed, 29 Jan 2025 18:53:33 +0800 Subject: [PATCH] rename to `--editor` --- src/exercise.rs | 6 +++--- src/main.rs | 4 ++-- src/watch.rs | 14 +++++++------- src/watch/state.rs | 8 ++++---- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/exercise.rs b/src/exercise.rs index 5061ad2c..f4da9123 100644 --- a/src/exercise.rs +++ b/src/exercise.rs @@ -82,10 +82,10 @@ impl Exercise { } /// Open the exercise file in the specified editor - pub fn open_in_editor(&self, editor_cmd: &str) -> io::Result { - dbg!(editor_cmd); + pub fn open_in_editor(&self, editor: &str) -> io::Result { + dbg!(editor); dbg!(self.path); - let status = Command::new(editor_cmd).arg(self.path).status()?; + let status = Command::new(editor).arg(self.path).status()?; Ok(status.success()) } } diff --git a/src/main.rs b/src/main.rs index cedcc9aa..cd849bb6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -37,7 +37,7 @@ struct Args { manual_run: bool, /// Command to open exercise files in an editor (e.g. "code" for VS Code) #[arg(long)] - edit_cmd: Option, + editor: Option, } #[derive(Subcommand)] @@ -141,7 +141,7 @@ fn main() -> Result { watch::watch( &mut app_state, notify_exercise_names, - args.edit_cmd.as_deref(), + args.editor.as_deref(), )?; } Some(Subcommands::Run { name }) => { diff --git a/src/watch.rs b/src/watch.rs index 5cba1ef3..ad4a10f7 100644 --- a/src/watch.rs +++ b/src/watch.rs @@ -62,7 +62,7 @@ enum WatchExit { fn run_watch( app_state: &mut AppState, notify_exercise_names: Option<&'static [&'static [u8]]>, - edit_cmd: Option<&str>, + editor: Option<&str>, ) -> Result { let (watch_event_sender, watch_event_receiver) = channel(); @@ -115,7 +115,7 @@ fn run_watch( }, WatchEvent::Input(InputEvent::Reset) => watch_state.reset_exercise(&mut stdout)?, WatchEvent::Input(InputEvent::Edit) => { - watch_state.edit_exercise(&mut stdout, edit_cmd)? + watch_state.edit_exercise(&mut stdout, editor)? } WatchEvent::Input(InputEvent::Quit) => { stdout.write_all(QUIT_MSG)?; @@ -140,10 +140,10 @@ fn run_watch( fn watch_list_loop( app_state: &mut AppState, notify_exercise_names: Option<&'static [&'static [u8]]>, - edit_cmd: Option<&str>, + editor: Option<&str>, ) -> Result<()> { loop { - match run_watch(app_state, notify_exercise_names, edit_cmd)? { + match run_watch(app_state, notify_exercise_names, editor)? { WatchExit::Shutdown => break Ok(()), // It is much easier to exit the watch mode, launch the list mode and then restart // the watch mode instead of trying to pause the watch threads and correct the @@ -157,7 +157,7 @@ fn watch_list_loop( pub fn watch( app_state: &mut AppState, notify_exercise_names: Option<&'static [&'static [u8]]>, - edit_cmd: Option<&str>, + editor: Option<&str>, ) -> Result<()> { #[cfg(not(windows))] { @@ -169,7 +169,7 @@ pub fn watch( rustix::termios::LocalModes::ICANON | rustix::termios::LocalModes::ECHO; rustix::termios::tcsetattr(stdin_fd, rustix::termios::OptionalActions::Now, &termios)?; - let res = watch_list_loop(app_state, notify_exercise_names, edit_cmd); + let res = watch_list_loop(app_state, notify_exercise_names, editor); termios.local_modes = original_local_modes; rustix::termios::tcsetattr(stdin_fd, rustix::termios::OptionalActions::Now, &termios)?; @@ -178,7 +178,7 @@ pub fn watch( } #[cfg(windows)] - watch_list_loop(app_state, notify_exercise_names, edit_cmd) + watch_list_loop(app_state, notify_exercise_names, editor) } const QUIT_MSG: &[u8] = b" diff --git a/src/watch/state.rs b/src/watch/state.rs index 13791356..1ad07bce 100644 --- a/src/watch/state.rs +++ b/src/watch/state.rs @@ -272,16 +272,16 @@ impl<'a> WatchState<'a> { pub fn edit_exercise( &mut self, stdout: &mut StdoutLock, - editor_cmd: Option<&str>, + editor: Option<&str>, ) -> io::Result<()> { - if let Some(editor_cmd) = editor_cmd { - if let Err(e) = self.app_state.current_exercise().open_in_editor(editor_cmd) { + if let Some(editor) = editor { + if let Err(e) = self.app_state.current_exercise().open_in_editor(editor) { writeln!(stdout, "Failed to open editor: {}", e)?; } } else { writeln!( stdout, - "No editor command specified. Use --edit-cmd to specify an editor." + "No editor command specified. Use --editor to specify an editor." )?; } Ok(())