mirror of
https://github.com/nushell/nushell.git
synced 2025-04-28 15:18:18 +02:00
Help menu improvements (#4997)
* Help menu improvements * default config
This commit is contained in:
parent
2873e943b3
commit
911fba8a8a
@ -1,5 +1,5 @@
|
|||||||
use nu_engine::documentation::get_flags_section;
|
use nu_engine::documentation::get_flags_section;
|
||||||
use nu_protocol::engine::EngineState;
|
use nu_protocol::{engine::EngineState, levenshtein_distance};
|
||||||
use reedline::{Completer, Suggestion};
|
use reedline::{Completer, Suggestion};
|
||||||
|
|
||||||
pub const EXAMPLE_MARKER: &str = ">>>>>>";
|
pub const EXAMPLE_MARKER: &str = ">>>>>>";
|
||||||
@ -18,7 +18,7 @@ impl NuHelpCompleter {
|
|||||||
let full_commands = self.engine_state.get_signatures_with_examples(false);
|
let full_commands = self.engine_state.get_signatures_with_examples(false);
|
||||||
|
|
||||||
//Vec<(Signature, Vec<Example>, bool, bool)> {
|
//Vec<(Signature, Vec<Example>, bool, bool)> {
|
||||||
full_commands
|
let mut commands = full_commands
|
||||||
.iter()
|
.iter()
|
||||||
.filter(|(sig, _, _, _)| {
|
.filter(|(sig, _, _, _)| {
|
||||||
sig.name.to_lowercase().contains(&line.to_lowercase())
|
sig.name.to_lowercase().contains(&line.to_lowercase())
|
||||||
@ -28,6 +28,16 @@ impl NuHelpCompleter {
|
|||||||
.to_lowercase()
|
.to_lowercase()
|
||||||
.contains(&line.to_lowercase())
|
.contains(&line.to_lowercase())
|
||||||
})
|
})
|
||||||
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
|
commands.sort_by(|(a, _, _, _), (b, _, _, _)| {
|
||||||
|
let a_distance = levenshtein_distance(line, &a.name);
|
||||||
|
let b_distance = levenshtein_distance(line, &b.name);
|
||||||
|
a_distance.cmp(&b_distance)
|
||||||
|
});
|
||||||
|
|
||||||
|
commands
|
||||||
|
.into_iter()
|
||||||
.map(|(sig, examples, _, _)| {
|
.map(|(sig, examples, _, _)| {
|
||||||
let mut long_desc = String::new();
|
let mut long_desc = String::new();
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ impl Default for NuHelpMenu {
|
|||||||
values: Vec::new(),
|
values: Vec::new(),
|
||||||
col_pos: 0,
|
col_pos: 0,
|
||||||
row_pos: 0,
|
row_pos: 0,
|
||||||
marker: "| ".to_string(),
|
marker: "? ".to_string(),
|
||||||
event: None,
|
event: None,
|
||||||
input: None,
|
input: None,
|
||||||
examples: Vec::new(),
|
examples: Vec::new(),
|
||||||
|
@ -222,7 +222,7 @@ fn add_menu_keybindings(keybindings: &mut Keybindings) {
|
|||||||
KeyModifiers::NONE,
|
KeyModifiers::NONE,
|
||||||
KeyCode::Tab,
|
KeyCode::Tab,
|
||||||
ReedlineEvent::UntilFound(vec![
|
ReedlineEvent::UntilFound(vec![
|
||||||
ReedlineEvent::Menu("completer_menu".to_string()),
|
ReedlineEvent::Menu("completion_menu".to_string()),
|
||||||
ReedlineEvent::MenuNext,
|
ReedlineEvent::MenuNext,
|
||||||
]),
|
]),
|
||||||
);
|
);
|
||||||
@ -255,7 +255,7 @@ fn add_menu_keybindings(keybindings: &mut Keybindings) {
|
|||||||
// Help menu keybinding
|
// Help menu keybinding
|
||||||
keybindings.add_binding(
|
keybindings.add_binding(
|
||||||
KeyModifiers::CONTROL,
|
KeyModifiers::CONTROL,
|
||||||
KeyCode::Char('i'),
|
KeyCode::Char('q'),
|
||||||
ReedlineEvent::Menu("help_menu".to_string()),
|
ReedlineEvent::Menu("help_menu".to_string()),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -221,7 +221,7 @@ let $config = {
|
|||||||
text_style: green
|
text_style: green
|
||||||
selected_text_style: green_reverse
|
selected_text_style: green_reverse
|
||||||
description_text_style: yellow
|
description_text_style: yellow
|
||||||
marker: "% "
|
marker: "? "
|
||||||
}
|
}
|
||||||
keybindings: [
|
keybindings: [
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user