forked from extern/nushell
Alias to keywords (eg source
) (#4835)
* Allow aliasing source * Add test
This commit is contained in:
parent
ff3dffd813
commit
c023d4111a
13
crates/nu-command/tests/commands/alias.rs
Normal file
13
crates/nu-command/tests/commands/alias.rs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
use nu_test_support::{nu, pipeline};
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn echo_range_is_lazy() {
|
||||||
|
let actual = nu!(
|
||||||
|
cwd: "tests/fixtures/formats", pipeline(
|
||||||
|
r#"
|
||||||
|
alias bar = source sample_def.nu; bar; greet
|
||||||
|
"#
|
||||||
|
));
|
||||||
|
|
||||||
|
assert_eq!(actual.out, "hello");
|
||||||
|
}
|
@ -1,3 +1,4 @@
|
|||||||
|
mod alias;
|
||||||
mod all;
|
mod all;
|
||||||
mod any;
|
mod any;
|
||||||
mod append;
|
mod append;
|
||||||
|
@ -897,10 +897,19 @@ pub fn parse_call(
|
|||||||
new_spans.extend(&spans[(pos + 1)..]);
|
new_spans.extend(&spans[(pos + 1)..]);
|
||||||
}
|
}
|
||||||
|
|
||||||
working_set.enter_scope();
|
let alias_id = working_set.hide_alias(&name);
|
||||||
working_set.hide_alias(&name);
|
let lite_command = LiteCommand {
|
||||||
let (mut result, err) = parse_expression(working_set, &new_spans, false);
|
comments: vec![],
|
||||||
working_set.exit_scope();
|
parts: new_spans.clone(),
|
||||||
|
};
|
||||||
|
let (mut result, err) = parse_builtin_commands(working_set, &lite_command);
|
||||||
|
if let Some(frame) = working_set.delta.scope.last_mut() {
|
||||||
|
if let Some(alias_id) = alias_id {
|
||||||
|
frame.aliases.insert(name.clone(), alias_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut result = result.expressions.remove(0);
|
||||||
|
|
||||||
result.replace_span(working_set, expansion_span, orig_span);
|
result.replace_span(working_set, expansion_span, orig_span);
|
||||||
|
|
||||||
|
3
tests/fixtures/formats/sample_def.nu
vendored
Normal file
3
tests/fixtures/formats/sample_def.nu
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
def greet [] {
|
||||||
|
"hello"
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user