mirror of
https://github.com/nushell/nushell.git
synced 2025-04-04 06:30:45 +02:00
Don't resuggest accepted completions (#5369)
To avoid resuggesting the same completion, add a space after commands or flags that have been accepted via `Enter`. Don't do that for filepaths or external completions * Add append_whitespace choice for suggestion Signed-off-by: gipsyh <gipsyh.icu@gmail.com> * Fixed `test <path>` appending space. * Update reedline Co-authored-by: sholderbach <sholderbach@users.noreply.github.com>
This commit is contained in:
parent
1ca3063ac3
commit
bb27b9f371
2
Cargo.lock
generated
2
Cargo.lock
generated
@ -3716,7 +3716,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "reedline"
|
name = "reedline"
|
||||||
version = "0.4.0"
|
version = "0.4.0"
|
||||||
source = "git+https://github.com/nushell/reedline?branch=main#2947a94fefac63e8fba2076327bae373f8d09b9d"
|
source = "git+https://github.com/nushell/reedline?branch=main#29f30a8f7926ad5cded3be564b6c26679c10e1c5"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"chrono",
|
"chrono",
|
||||||
"crossterm",
|
"crossterm",
|
||||||
|
@ -98,6 +98,7 @@ impl CommandCompletion {
|
|||||||
start: span.start - offset,
|
start: span.start - offset,
|
||||||
end: span.end - offset,
|
end: span.end - offset,
|
||||||
},
|
},
|
||||||
|
append_whitespace: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
let results_aliases = working_set
|
let results_aliases = working_set
|
||||||
@ -111,6 +112,7 @@ impl CommandCompletion {
|
|||||||
start: span.start - offset,
|
start: span.start - offset,
|
||||||
end: span.end - offset,
|
end: span.end - offset,
|
||||||
},
|
},
|
||||||
|
append_whitespace: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
let mut results = results.chain(results_aliases).collect::<Vec<_>>();
|
let mut results = results.chain(results_aliases).collect::<Vec<_>>();
|
||||||
@ -129,6 +131,7 @@ impl CommandCompletion {
|
|||||||
start: span.start - offset,
|
start: span.start - offset,
|
||||||
end: span.end - offset,
|
end: span.end - offset,
|
||||||
},
|
},
|
||||||
|
append_whitespace: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
for external in results_external {
|
for external in results_external {
|
||||||
@ -138,6 +141,7 @@ impl CommandCompletion {
|
|||||||
description: None,
|
description: None,
|
||||||
extra: None,
|
extra: None,
|
||||||
span: external.span,
|
span: external.span,
|
||||||
|
append_whitespace: true,
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
results.push(external)
|
results.push(external)
|
||||||
@ -267,6 +271,7 @@ impl Completer for CommandCompletion {
|
|||||||
start: x.0.start - offset,
|
start: x.0.start - offset,
|
||||||
end: x.0.end - offset,
|
end: x.0.end - offset,
|
||||||
},
|
},
|
||||||
|
append_whitespace: false,
|
||||||
})
|
})
|
||||||
.chain(subcommands.into_iter())
|
.chain(subcommands.into_iter())
|
||||||
.chain(commands.into_iter())
|
.chain(commands.into_iter())
|
||||||
|
@ -44,6 +44,7 @@ impl CustomCompletion {
|
|||||||
start: span.start - offset,
|
start: span.start - offset,
|
||||||
end: span.end - offset,
|
end: span.end - offset,
|
||||||
},
|
},
|
||||||
|
append_whitespace: false,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -57,6 +58,7 @@ impl CustomCompletion {
|
|||||||
start: span.start - offset,
|
start: span.start - offset,
|
||||||
end: span.end - offset,
|
end: span.end - offset,
|
||||||
},
|
},
|
||||||
|
append_whitespace: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Iterate the cols looking for `value` and `description`
|
// Iterate the cols looking for `value` and `description`
|
||||||
|
@ -53,6 +53,7 @@ impl Completer for DirectoryCompletion {
|
|||||||
start: x.0.start - offset,
|
start: x.0.start - offset,
|
||||||
end: x.0.end - offset,
|
end: x.0.end - offset,
|
||||||
},
|
},
|
||||||
|
append_whitespace: false,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,6 +110,7 @@ impl Completer for DotNuCompletion {
|
|||||||
start: x.0.start - offset,
|
start: x.0.start - offset,
|
||||||
end: x.0.end - offset,
|
end: x.0.end - offset,
|
||||||
},
|
},
|
||||||
|
append_whitespace: true,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.collect();
|
.collect();
|
||||||
|
@ -49,6 +49,7 @@ impl Completer for FileCompletion {
|
|||||||
start: x.0.start - offset,
|
start: x.0.start - offset,
|
||||||
end: x.0.end - offset,
|
end: x.0.end - offset,
|
||||||
},
|
},
|
||||||
|
append_whitespace: false,
|
||||||
})
|
})
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
|
@ -51,6 +51,7 @@ impl Completer for FlagCompletion {
|
|||||||
start: span.start - offset,
|
start: span.start - offset,
|
||||||
end: span.end - offset,
|
end: span.end - offset,
|
||||||
},
|
},
|
||||||
|
append_whitespace: true,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -72,6 +73,7 @@ impl Completer for FlagCompletion {
|
|||||||
start: span.start - offset,
|
start: span.start - offset,
|
||||||
end: span.end - offset,
|
end: span.end - offset,
|
||||||
},
|
},
|
||||||
|
append_whitespace: true,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -84,6 +84,7 @@ impl Completer for VariableCompletion {
|
|||||||
description: None,
|
description: None,
|
||||||
extra: None,
|
extra: None,
|
||||||
span: current_span,
|
span: current_span,
|
||||||
|
append_whitespace: false,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -137,6 +138,7 @@ impl Completer for VariableCompletion {
|
|||||||
description: None,
|
description: None,
|
||||||
extra: None,
|
extra: None,
|
||||||
span: current_span,
|
span: current_span,
|
||||||
|
append_whitespace: false,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -150,6 +152,7 @@ impl Completer for VariableCompletion {
|
|||||||
description: None,
|
description: None,
|
||||||
extra: None,
|
extra: None,
|
||||||
span: current_span,
|
span: current_span,
|
||||||
|
append_whitespace: false,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -164,6 +167,7 @@ impl Completer for VariableCompletion {
|
|||||||
description: None,
|
description: None,
|
||||||
extra: None,
|
extra: None,
|
||||||
span: current_span,
|
span: current_span,
|
||||||
|
append_whitespace: false,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -198,6 +202,7 @@ fn nested_suggestions(
|
|||||||
description: None,
|
description: None,
|
||||||
extra: None,
|
extra: None,
|
||||||
span: current_span,
|
span: current_span,
|
||||||
|
append_whitespace: false,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,6 +92,7 @@ impl NuHelpCompleter {
|
|||||||
start: pos,
|
start: pos,
|
||||||
end: pos + line.len(),
|
end: pos + line.len(),
|
||||||
},
|
},
|
||||||
|
append_whitespace: false,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.collect()
|
.collect()
|
||||||
|
@ -155,6 +155,7 @@ fn convert_to_suggestions(
|
|||||||
description,
|
description,
|
||||||
extra,
|
extra,
|
||||||
span,
|
span,
|
||||||
|
append_whitespace: false,
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
Value::List { vals, .. } => vals
|
Value::List { vals, .. } => vals
|
||||||
@ -169,6 +170,7 @@ fn convert_to_suggestions(
|
|||||||
start: 0,
|
start: 0,
|
||||||
end: line.len(),
|
end: line.len(),
|
||||||
},
|
},
|
||||||
|
append_whitespace: false,
|
||||||
}],
|
}],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user