Add support for defining known externals with their own custom completions (#4425)

* WIP for known externals

* Now completions can work from scripts

* Add support for definiing externs

* finish cleaning up old proof-of-concept
This commit is contained in:
JT
2022-02-11 13:38:10 -05:00
committed by GitHub
parent a767fa369c
commit a16e485cce
16 changed files with 331 additions and 225 deletions

View File

@ -3,7 +3,7 @@ use nu_parser::{flatten_expression, parse, trim_quotes};
use nu_protocol::{
ast::{Expr, Statement},
engine::{EngineState, Stack, StateWorkingSet},
PipelineData, Span,
PipelineData, Span, Value, CONFIG_VARIABLE_ID,
};
use reedline::Completer;
@ -214,7 +214,16 @@ impl NuCompleter {
false,
);
let mut stack = Stack::default();
let mut stack = Stack::new();
// Set up our initial config to start from
stack.vars.insert(
CONFIG_VARIABLE_ID,
Value::Record {
cols: vec![],
vals: vec![],
span: Span { start: 0, end: 0 },
},
);
let result = eval_block(
&self.engine_state,
&mut stack,