diff --git a/CHANGELOG.md b/CHANGELOG.md index a500fac4..a3851128 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## v1.0.4 +- fix python3 fifo and sage interpreters empty line in indented bloc bug + ## v1.0.3 - configurable filetypes diff --git a/src/interpreters/Python3_fifo.rs b/src/interpreters/Python3_fifo.rs index da769d90..72f4a4a4 100644 --- a/src/interpreters/Python3_fifo.rs +++ b/src/interpreters/Python3_fifo.rs @@ -53,10 +53,8 @@ impl Python3_fifo { if !err_to_display.trim().is_empty() { info!("err found"); if err_to_display.lines().count() > 2 { - let mut err_to_display_vec = err_to_display - .lines() - .skip(2) - .collect::>(); + let mut err_to_display_vec = + err_to_display.lines().skip(2).collect::>(); err_to_display_vec.dedup(); err_to_display = err_to_display_vec.join("\n"); } @@ -170,7 +168,9 @@ impl Python3_fifo { fn fetch_config(&mut self) { let default_interpreter = String::from("python3"); - if let Some(used_interpreter) = Python3_fifo::get_interpreter_option(&self.get_data(), "interpreter") { + if let Some(used_interpreter) = + Python3_fifo::get_interpreter_option(&self.get_data(), "interpreter") + { if let Some(interpreter_string) = used_interpreter.as_str() { info!("Using custom interpreter: {}", interpreter_string); self.interpreter = interpreter_string.to_string(); @@ -179,7 +179,9 @@ impl Python3_fifo { self.interpreter = default_interpreter; if let Ok(path) = env::current_dir() { - if let Some(venv_array_config) = Python3_fifo::get_interpreter_option(&self.get_data(), "venv") { + if let Some(venv_array_config) = + Python3_fifo::get_interpreter_option(&self.get_data(), "venv") + { if let Some(actual_vec_of_venv) = venv_array_config.as_array() { for possible_venv in actual_vec_of_venv.iter() { if let Some(possible_venv_str) = possible_venv.as_str() { @@ -383,6 +385,9 @@ impl ReplLikeInterpreter for Python3_fifo { + &self.current_output_id.to_string() + "\", file=sys.stderr)\n"; + // remove empty lines interpreted as 'enter' by python + self.code = self.code.lines().filter(|l| !l.trim().is_empty()).collect::>().join("\n"); + let all_code = self.imports.clone() + "\n" + &self.code + "\n\n"; self.code = String::from("\nimport sys\n\n") + &start_mark diff --git a/src/interpreters/Sage_fifo.rs b/src/interpreters/Sage_fifo.rs index 494c8f99..7162df8b 100644 --- a/src/interpreters/Sage_fifo.rs +++ b/src/interpreters/Sage_fifo.rs @@ -417,6 +417,9 @@ impl ReplLikeInterpreter for Sage_fifo { + &self.current_output_id.to_string() + "\", file=sys.stderr)\n"; + // remove empty lines interpreted as 'enter' by the sage interpreter + self.code = self.code.lines().filter(|l| !l.trim().is_empty()).collect::>().join("\n"); + let all_code = self.imports.clone() + "\n" + &self.code; self.code = String::from("\nimport sys\n\n") + &start_mark + &start_mark_err + &all_code + &end_mark + &end_mark_err; Ok(())