forked from extern/nushell
Remove old alias implementation (#8797)
This commit is contained in:
@ -7,7 +7,6 @@ use nu_protocol::{
|
||||
span, Category, Example, IntoInterruptiblePipelineData, IntoPipelineData, PipelineData,
|
||||
ShellError, Signature, Span, Spanned, SyntaxShape, Type, Value,
|
||||
};
|
||||
use std::borrow::Cow;
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct HelpAliases;
|
||||
@ -112,22 +111,24 @@ pub fn help_aliases(
|
||||
name.push_str(&r.item);
|
||||
}
|
||||
|
||||
let alias_id = if let Some(id) = engine_state.find_alias(name.as_bytes(), &[]) {
|
||||
id
|
||||
let alias = if let Some(id) = engine_state.find_decl(name.as_bytes(), &[]) {
|
||||
if let Some(alias) = engine_state.get_decl(id).as_alias() {
|
||||
alias
|
||||
} else {
|
||||
return Err(ShellError::AliasNotFound(span(
|
||||
&rest.iter().map(|r| r.span).collect::<Vec<Span>>(),
|
||||
)));
|
||||
}
|
||||
} else {
|
||||
return Err(ShellError::AliasNotFound(span(
|
||||
&rest.iter().map(|r| r.span).collect::<Vec<Span>>(),
|
||||
)));
|
||||
};
|
||||
|
||||
let alias_expansion = engine_state
|
||||
.get_alias(alias_id)
|
||||
.iter()
|
||||
.map(|span| String::from_utf8_lossy(engine_state.get_span_contents(span)))
|
||||
.collect::<Vec<Cow<str>>>()
|
||||
.join(" ");
|
||||
|
||||
let alias_usage = engine_state.build_alias_usage(alias_id);
|
||||
let alias_expansion =
|
||||
String::from_utf8_lossy(engine_state.get_span_contents(&alias.wrapped_call.span));
|
||||
let usage = alias.usage();
|
||||
let extra_usage = alias.extra_usage();
|
||||
|
||||
// TODO: merge this into documentation.rs at some point
|
||||
const G: &str = "\x1b[32m"; // green
|
||||
@ -136,14 +137,12 @@ pub fn help_aliases(
|
||||
|
||||
let mut long_desc = String::new();
|
||||
|
||||
if let Some((usage, extra_usage)) = alias_usage {
|
||||
long_desc.push_str(&usage);
|
||||
long_desc.push_str("\n\n");
|
||||
long_desc.push_str(usage);
|
||||
long_desc.push_str("\n\n");
|
||||
|
||||
if !extra_usage.is_empty() {
|
||||
long_desc.push_str(&extra_usage);
|
||||
long_desc.push_str("\n\n");
|
||||
}
|
||||
if !extra_usage.is_empty() {
|
||||
long_desc.push_str(extra_usage);
|
||||
long_desc.push_str("\n\n");
|
||||
}
|
||||
|
||||
long_desc.push_str(&format!("{G}Alias{RESET}: {C}{name}{RESET}"));
|
||||
@ -165,7 +164,7 @@ pub fn help_aliases(
|
||||
|
||||
fn build_help_aliases(engine_state: &EngineState, stack: &Stack, span: Span) -> Vec<Value> {
|
||||
let mut scope_data = ScopeData::new(engine_state, stack);
|
||||
scope_data.populate_aliases();
|
||||
scope_data.populate_all();
|
||||
|
||||
scope_data.collect_aliases(span)
|
||||
}
|
||||
|
@ -4,8 +4,8 @@ use nu_engine::{scope::ScopeData, CallExt};
|
||||
use nu_protocol::{
|
||||
ast::Call,
|
||||
engine::{Command, EngineState, Stack},
|
||||
span, AliasId, Category, DeclId, Example, IntoInterruptiblePipelineData, IntoPipelineData,
|
||||
PipelineData, ShellError, Signature, Span, Spanned, SyntaxShape, Type, Value,
|
||||
span, Category, DeclId, Example, IntoInterruptiblePipelineData, IntoPipelineData, PipelineData,
|
||||
ShellError, Signature, Span, Spanned, SyntaxShape, Type, Value,
|
||||
};
|
||||
|
||||
#[derive(Clone)]
|
||||
@ -152,9 +152,16 @@ pub fn help_modules(
|
||||
long_desc.push_str("\n\n");
|
||||
|
||||
if !module.decls.is_empty() || module.main.is_some() {
|
||||
let commands: Vec<(Vec<u8>, DeclId)> = engine_state.get_decls_sorted(false).collect();
|
||||
let commands: Vec<(Vec<u8>, DeclId)> = engine_state
|
||||
.get_decls_sorted(false)
|
||||
.filter(|(_, id)| !engine_state.get_decl(*id).is_alias())
|
||||
.collect();
|
||||
|
||||
let mut module_commands = module.decls();
|
||||
let mut module_commands: Vec<(Vec<u8>, DeclId)> = module
|
||||
.decls()
|
||||
.into_iter()
|
||||
.filter(|(_, id)| !engine_state.get_decl(*id).is_alias())
|
||||
.collect();
|
||||
module_commands.sort_by(|a, b| a.0.cmp(&b.0));
|
||||
|
||||
let commands_str = module_commands
|
||||
@ -181,15 +188,18 @@ pub fn help_modules(
|
||||
long_desc.push_str("\n\n");
|
||||
}
|
||||
|
||||
if !module.aliases.is_empty() {
|
||||
let aliases: Vec<(Vec<u8>, AliasId)> = engine_state.get_aliases_sorted(false).collect();
|
||||
|
||||
let mut module_aliases: Vec<(&[u8], AliasId)> = module
|
||||
.aliases
|
||||
.iter()
|
||||
.map(|(name, id)| (name.as_ref(), *id))
|
||||
if !module.decls.is_empty() {
|
||||
let aliases: Vec<(Vec<u8>, DeclId)> = engine_state
|
||||
.get_decls_sorted(false)
|
||||
.filter(|(_, id)| engine_state.get_decl(*id).is_alias())
|
||||
.collect();
|
||||
module_aliases.sort_by(|a, b| a.0.cmp(b.0));
|
||||
|
||||
let mut module_aliases: Vec<(Vec<u8>, DeclId)> = module
|
||||
.decls()
|
||||
.into_iter()
|
||||
.filter(|(_, id)| engine_state.get_decl(*id).is_alias())
|
||||
.collect();
|
||||
module_aliases.sort_by(|a, b| a.0.cmp(&b.0));
|
||||
|
||||
let aliases_str = module_aliases
|
||||
.iter()
|
||||
@ -198,7 +208,7 @@ pub fn help_modules(
|
||||
if let Some((used_name_bytes, _)) =
|
||||
aliases.iter().find(|(_, alias_id)| id == alias_id)
|
||||
{
|
||||
if engine_state.find_alias(name.as_bytes(), &[]).is_some() {
|
||||
if engine_state.find_decl(name.as_bytes(), &[]).is_some() {
|
||||
format!("{CB}{name}{RESET}")
|
||||
} else {
|
||||
let alias_name = String::from_utf8_lossy(used_name_bytes);
|
||||
|
Reference in New Issue
Block a user