mirror of
https://github.com/nushell/nushell
synced 2024-12-27 21:43:09 +00:00
turn down the volume a little bit (#4412)
This commit is contained in:
parent
2e3b2a48ee
commit
0e5f4d88c5
2 changed files with 56 additions and 52 deletions
|
@ -1,6 +1,4 @@
|
||||||
use crate::is_perf_true;
|
|
||||||
use crossterm::event::{KeyCode, KeyModifiers};
|
use crossterm::event::{KeyCode, KeyModifiers};
|
||||||
use log::info;
|
|
||||||
use nu_color_config::lookup_ansi_color_style;
|
use nu_color_config::lookup_ansi_color_style;
|
||||||
use nu_protocol::{extract_value, Config, ParsedKeybinding, ShellError, Span, Type, Value};
|
use nu_protocol::{extract_value, Config, ParsedKeybinding, ShellError, Span, Type, Value};
|
||||||
use reedline::{
|
use reedline::{
|
||||||
|
@ -66,12 +64,7 @@ pub(crate) fn add_completion_menu(line_editor: Reedline, config: &Config) -> Ree
|
||||||
None => completion_menu,
|
None => completion_menu,
|
||||||
};
|
};
|
||||||
|
|
||||||
let ret_val = line_editor.with_menu(Box::new(completion_menu));
|
line_editor.with_menu(Box::new(completion_menu))
|
||||||
if is_perf_true() {
|
|
||||||
info!("add_completion_menu {}:{}:{}", file!(), line!(), column!());
|
|
||||||
}
|
|
||||||
|
|
||||||
ret_val
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Creates an input object for the history menu based on the dictionary
|
// Creates an input object for the history menu based on the dictionary
|
||||||
|
@ -127,12 +120,7 @@ pub(crate) fn add_history_menu(line_editor: Reedline, config: &Config) -> Reedli
|
||||||
None => history_menu,
|
None => history_menu,
|
||||||
};
|
};
|
||||||
|
|
||||||
let ret_val = line_editor.with_menu(Box::new(history_menu));
|
line_editor.with_menu(Box::new(history_menu))
|
||||||
if is_perf_true() {
|
|
||||||
info!("add_history_menu {}:{}:{}", file!(), line!(), column!());
|
|
||||||
}
|
|
||||||
|
|
||||||
ret_val
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn add_menu_keybindings(keybindings: &mut Keybindings) {
|
fn add_menu_keybindings(keybindings: &mut Keybindings) {
|
||||||
|
@ -165,10 +153,6 @@ fn add_menu_keybindings(keybindings: &mut Keybindings) {
|
||||||
KeyCode::BackTab,
|
KeyCode::BackTab,
|
||||||
ReedlineEvent::MenuPrevious,
|
ReedlineEvent::MenuPrevious,
|
||||||
);
|
);
|
||||||
|
|
||||||
if is_perf_true() {
|
|
||||||
info!("add_menu_keybindings {}:{}:{}", file!(), line!(), column!());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub enum KeybindingsMode {
|
pub enum KeybindingsMode {
|
||||||
|
@ -202,15 +186,6 @@ pub(crate) fn create_keybindings(config: &Config) -> Result<KeybindingsMode, She
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if is_perf_true() {
|
|
||||||
info!(
|
|
||||||
"create_keybindings (emacs) {}:{}:{}",
|
|
||||||
file!(),
|
|
||||||
line!(),
|
|
||||||
column!()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
Ok(KeybindingsMode::Emacs(keybindings))
|
Ok(KeybindingsMode::Emacs(keybindings))
|
||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
|
@ -228,15 +203,6 @@ pub(crate) fn create_keybindings(config: &Config) -> Result<KeybindingsMode, She
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if is_perf_true() {
|
|
||||||
info!(
|
|
||||||
"create_keybindings (vi) {}:{}:{}",
|
|
||||||
file!(),
|
|
||||||
line!(),
|
|
||||||
column!()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
Ok(KeybindingsMode::Vi {
|
Ok(KeybindingsMode::Vi {
|
||||||
insert_keybindings,
|
insert_keybindings,
|
||||||
normal_keybindings,
|
normal_keybindings,
|
||||||
|
@ -335,10 +301,6 @@ fn add_keybinding(
|
||||||
|
|
||||||
keybindings.add_binding(modifier, keycode, event);
|
keybindings.add_binding(modifier, keycode, event);
|
||||||
|
|
||||||
if is_perf_true() {
|
|
||||||
info!("add_keybinding {}:{}:{}", file!(), line!(), column!());
|
|
||||||
}
|
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -406,10 +368,6 @@ fn parse_event(value: Value, config: &Config) -> Result<ReedlineEvent, ShellErro
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if is_perf_true() {
|
|
||||||
info!("parse_event (record) {}:{}:{}", file!(), line!(), column!());
|
|
||||||
}
|
|
||||||
|
|
||||||
Ok(event)
|
Ok(event)
|
||||||
}
|
}
|
||||||
Value::List { vals, .. } => {
|
Value::List { vals, .. } => {
|
||||||
|
@ -423,10 +381,6 @@ fn parse_event(value: Value, config: &Config) -> Result<ReedlineEvent, ShellErro
|
||||||
.map(|value| parse_event(value, config))
|
.map(|value| parse_event(value, config))
|
||||||
.collect::<Result<Vec<ReedlineEvent>, ShellError>>()?;
|
.collect::<Result<Vec<ReedlineEvent>, ShellError>>()?;
|
||||||
|
|
||||||
if is_perf_true() {
|
|
||||||
info!("parse_event (list) {}:{}:{}", file!(), line!(), column!());
|
|
||||||
}
|
|
||||||
|
|
||||||
if until_found {
|
if until_found {
|
||||||
Ok(ReedlineEvent::UntilFound(events))
|
Ok(ReedlineEvent::UntilFound(events))
|
||||||
} else {
|
} else {
|
||||||
|
|
58
src/repl.rs
58
src/repl.rs
|
@ -41,9 +41,17 @@ pub(crate) fn evaluate(engine_state: &mut EngineState) -> Result<()> {
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if is_perf_true() {
|
||||||
|
info!("read_plugin_file {}:{}:{}", file!(), line!(), column!());
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(feature = "plugin")]
|
#[cfg(feature = "plugin")]
|
||||||
config_files::read_plugin_file(engine_state, &mut stack);
|
config_files::read_plugin_file(engine_state, &mut stack);
|
||||||
|
|
||||||
|
if is_perf_true() {
|
||||||
|
info!("read_config_file {}:{}:{}", file!(), line!(), column!());
|
||||||
|
}
|
||||||
|
|
||||||
config_files::read_config_file(engine_state, &mut stack);
|
config_files::read_config_file(engine_state, &mut stack);
|
||||||
let history_path = config_files::create_history_path();
|
let history_path = config_files::create_history_path();
|
||||||
|
|
||||||
|
@ -66,6 +74,15 @@ pub(crate) fn evaluate(engine_state: &mut EngineState) -> Result<()> {
|
||||||
// Ok(())
|
// Ok(())
|
||||||
// })?;
|
// })?;
|
||||||
|
|
||||||
|
if is_perf_true() {
|
||||||
|
info!(
|
||||||
|
"translate environment vars {}:{}:{}",
|
||||||
|
file!(),
|
||||||
|
line!(),
|
||||||
|
column!()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// Translate environment variables from Strings to Values
|
// Translate environment variables from Strings to Values
|
||||||
if let Some(e) = convert_env_values(engine_state, &stack, &config) {
|
if let Some(e) = convert_env_values(engine_state, &stack, &config) {
|
||||||
let working_set = StateWorkingSet::new(engine_state);
|
let working_set = StateWorkingSet::new(engine_state);
|
||||||
|
@ -82,6 +99,15 @@ pub(crate) fn evaluate(engine_state: &mut EngineState) -> Result<()> {
|
||||||
);
|
);
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
|
if is_perf_true() {
|
||||||
|
info!(
|
||||||
|
"load config each loop {}:{}:{}",
|
||||||
|
file!(),
|
||||||
|
line!(),
|
||||||
|
column!()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
let config = match stack.get_config() {
|
let config = match stack.get_config() {
|
||||||
Ok(config) => config,
|
Ok(config) => config,
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
|
@ -97,6 +123,10 @@ pub(crate) fn evaluate(engine_state: &mut EngineState) -> Result<()> {
|
||||||
ctrlc.store(false, Ordering::SeqCst);
|
ctrlc.store(false, Ordering::SeqCst);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if is_perf_true() {
|
||||||
|
info!("setup line editor {}:{}:{}", file!(), line!(), column!());
|
||||||
|
}
|
||||||
|
|
||||||
let mut line_editor = Reedline::create()
|
let mut line_editor = Reedline::create()
|
||||||
.into_diagnostic()?
|
.into_diagnostic()?
|
||||||
.with_highlighter(Box::new(NuHighlighter {
|
.with_highlighter(Box::new(NuHighlighter {
|
||||||
|
@ -111,14 +141,30 @@ pub(crate) fn evaluate(engine_state: &mut EngineState) -> Result<()> {
|
||||||
.with_quick_completions(config.quick_completions)
|
.with_quick_completions(config.quick_completions)
|
||||||
.with_ansi_colors(config.use_ansi_coloring);
|
.with_ansi_colors(config.use_ansi_coloring);
|
||||||
|
|
||||||
|
if is_perf_true() {
|
||||||
|
info!("setup reedline {}:{}:{}", file!(), line!(), column!());
|
||||||
|
}
|
||||||
|
|
||||||
line_editor = add_completion_menu(line_editor, &config);
|
line_editor = add_completion_menu(line_editor, &config);
|
||||||
line_editor = add_history_menu(line_editor, &config);
|
line_editor = add_history_menu(line_editor, &config);
|
||||||
|
|
||||||
|
if is_perf_true() {
|
||||||
|
info!("setup colors {}:{}:{}", file!(), line!(), column!());
|
||||||
|
}
|
||||||
//FIXME: if config.use_ansi_coloring is false then we should
|
//FIXME: if config.use_ansi_coloring is false then we should
|
||||||
// turn off the hinter but I don't see any way to do that yet.
|
// turn off the hinter but I don't see any way to do that yet.
|
||||||
|
|
||||||
let color_hm = get_color_config(&config);
|
let color_hm = get_color_config(&config);
|
||||||
|
|
||||||
|
if is_perf_true() {
|
||||||
|
info!(
|
||||||
|
"setup history and hinter {}:{}:{}",
|
||||||
|
file!(),
|
||||||
|
line!(),
|
||||||
|
column!()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
line_editor = if let Some(history_path) = history_path.clone() {
|
line_editor = if let Some(history_path) = history_path.clone() {
|
||||||
let history = std::fs::read_to_string(&history_path);
|
let history = std::fs::read_to_string(&history_path);
|
||||||
if history.is_ok() {
|
if history.is_ok() {
|
||||||
|
@ -141,6 +187,10 @@ pub(crate) fn evaluate(engine_state: &mut EngineState) -> Result<()> {
|
||||||
line_editor
|
line_editor
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if is_perf_true() {
|
||||||
|
info!("setup keybindings {}:{}:{}", file!(), line!(), column!());
|
||||||
|
}
|
||||||
|
|
||||||
// Changing the line editor based on the found keybindings
|
// Changing the line editor based on the found keybindings
|
||||||
line_editor = match reedline_config::create_keybindings(&config) {
|
line_editor = match reedline_config::create_keybindings(&config) {
|
||||||
Ok(keybindings) => match keybindings {
|
Ok(keybindings) => match keybindings {
|
||||||
|
@ -164,22 +214,22 @@ pub(crate) fn evaluate(engine_state: &mut EngineState) -> Result<()> {
|
||||||
};
|
};
|
||||||
|
|
||||||
if is_perf_true() {
|
if is_perf_true() {
|
||||||
info!("setup line editor {}:{}:{}", file!(), line!(), column!());
|
info!("prompt_update {}:{}:{}", file!(), line!(), column!());
|
||||||
}
|
}
|
||||||
|
|
||||||
let prompt = prompt_update::update_prompt(&config, engine_state, &stack, &mut nu_prompt);
|
let prompt = prompt_update::update_prompt(&config, engine_state, &stack, &mut nu_prompt);
|
||||||
|
|
||||||
|
entry_num += 1;
|
||||||
|
|
||||||
if is_perf_true() {
|
if is_perf_true() {
|
||||||
info!(
|
info!(
|
||||||
"finished prompt update {}:{}:{}",
|
"finished setup, starting repl {}:{}:{}",
|
||||||
file!(),
|
file!(),
|
||||||
line!(),
|
line!(),
|
||||||
column!()
|
column!()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
entry_num += 1;
|
|
||||||
|
|
||||||
let input = line_editor.read_line(prompt);
|
let input = line_editor.read_line(prompt);
|
||||||
match input {
|
match input {
|
||||||
Ok(Signal::Success(s)) => {
|
Ok(Signal::Success(s)) => {
|
||||||
|
|
Loading…
Reference in a new issue