Fix command_type classification (#7074)

- Custom commands are true for builtin and custom
- Add classification as external command
- Specify wildcard in keyword: keyword is true for builtin and keyword
This commit is contained in:
Dan Davison 2022-11-09 22:09:33 -05:00 committed by GitHub
parent fe14e52e77
commit bb0d08a721
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 4 deletions

View File

@ -99,6 +99,8 @@ impl Command for Let {
#[cfg(test)]
mod test {
use nu_protocol::engine::CommandType;
use super::*;
#[test]
@ -107,4 +109,9 @@ mod test {
test_examples(Let {})
}
#[test]
fn test_command_type() {
assert!(matches!(Let.command_type(), CommandType::Keyword));
}
}

View File

@ -292,6 +292,9 @@ pub fn process(
#[cfg(test)]
mod test {
use nu_protocol::engine::CommandType;
use super::*;
#[test]
@ -300,4 +303,9 @@ mod test {
test_examples(Sort {})
}
#[test]
fn test_command_type() {
assert!(matches!(Sort.command_type(), CommandType::Builtin));
}
}

View File

@ -9,6 +9,7 @@ pub enum CommandType {
Builtin,
Custom,
Keyword,
External,
Plugin,
Other,
}
@ -86,12 +87,14 @@ pub trait Command: Send + Sync + CommandClone {
self.is_builtin(),
self.is_custom_command(),
self.is_parser_keyword(),
self.is_known_external(),
self.is_plugin().is_some(),
) {
(true, false, false, false) => CommandType::Builtin,
(false, true, false, false) => CommandType::Custom,
(_, false, true, false) => CommandType::Keyword,
(false, false, false, true) => CommandType::Plugin,
(true, false, false, false, false) => CommandType::Builtin,
(true, true, false, false, false) => CommandType::Custom,
(true, false, true, false, false) => CommandType::Keyword,
(false, true, false, true, false) => CommandType::External,
(false, false, false, false, true) => CommandType::Plugin,
_ => CommandType::Other,
}
}