forked from extern/nushell
Add config to NuCompleter (#4538)
This commit is contained in:
parent
e5bf56a7dd
commit
c893cc1485
@ -12,11 +12,15 @@ const SEP: char = std::path::MAIN_SEPARATOR;
|
|||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub struct NuCompleter {
|
pub struct NuCompleter {
|
||||||
engine_state: EngineState,
|
engine_state: EngineState,
|
||||||
|
config: Option<Value>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl NuCompleter {
|
impl NuCompleter {
|
||||||
pub fn new(engine_state: EngineState) -> Self {
|
pub fn new(engine_state: EngineState, config: Option<Value>) -> Self {
|
||||||
Self { engine_state }
|
Self {
|
||||||
|
engine_state,
|
||||||
|
config,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn external_command_completion(&self, prefix: &str) -> Vec<String> {
|
fn external_command_completion(&self, prefix: &str) -> Vec<String> {
|
||||||
@ -235,14 +239,19 @@ impl NuCompleter {
|
|||||||
|
|
||||||
let mut stack = Stack::new();
|
let mut stack = Stack::new();
|
||||||
// Set up our initial config to start from
|
// Set up our initial config to start from
|
||||||
stack.vars.insert(
|
if let Some(conf) = &self.config {
|
||||||
CONFIG_VARIABLE_ID,
|
stack.vars.insert(CONFIG_VARIABLE_ID, conf.clone());
|
||||||
Value::Record {
|
} else {
|
||||||
cols: vec![],
|
stack.vars.insert(
|
||||||
vals: vec![],
|
CONFIG_VARIABLE_ID,
|
||||||
span: Span { start: 0, end: 0 },
|
Value::Record {
|
||||||
},
|
cols: vec![],
|
||||||
);
|
vals: vec![],
|
||||||
|
span: Span { start: 0, end: 0 },
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
let result = eval_block(
|
let result = eval_block(
|
||||||
&self.engine_state,
|
&self.engine_state,
|
||||||
&mut stack,
|
&mut stack,
|
||||||
|
@ -138,7 +138,10 @@ pub(crate) fn evaluate(engine_state: &mut EngineState) -> Result<()> {
|
|||||||
.with_validator(Box::new(NuValidator {
|
.with_validator(Box::new(NuValidator {
|
||||||
engine_state: engine_state.clone(),
|
engine_state: engine_state.clone(),
|
||||||
}))
|
}))
|
||||||
.with_completer(Box::new(NuCompleter::new(engine_state.clone())))
|
.with_completer(Box::new(NuCompleter::new(
|
||||||
|
engine_state.clone(),
|
||||||
|
stack.vars.get(&CONFIG_VARIABLE_ID).cloned(),
|
||||||
|
)))
|
||||||
.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);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user