mirror of
https://github.com/nushell/nushell.git
synced 2025-08-19 04:45:57 +02:00
split $nu variable into scope commands and simpler $nu (#9487)
# Description This splits off `scope` from `$nu`, creating a set of `scope` commands for the various types of scope you might be interested in. This also simplifies the `$nu` variable a bit. # User-Facing Changes This changes `$nu` to be a bit simpler and introduces a set of `scope` subcommands. # Tests + Formatting <!-- Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect -A clippy::result_large_err` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass - `cargo run -- crates/nu-std/tests/run.nu` to run the tests for the standard library > **Note** > from `nushell` you can also use the `toolkit` as follows > ```bash > use toolkit.nu # or use an `env_change` hook to activate it automatically > toolkit check pr > ``` --> # After Submitting <!-- If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. -->
This commit is contained in:
@@ -538,7 +538,7 @@ fn variables_completions() {
|
||||
"loginshell-path".into(),
|
||||
"os-info".into(),
|
||||
"pid".into(),
|
||||
"scope".into(),
|
||||
"plugin-path".into(),
|
||||
"startup-time".into(),
|
||||
"temp-path".into(),
|
||||
];
|
||||
@@ -568,88 +568,6 @@ fn variables_completions() {
|
||||
// Match results
|
||||
match_suggestions(expected, suggestions);
|
||||
|
||||
// Test completions for $nu.scope
|
||||
let suggestions = completer.complete("$nu.scope.", 10);
|
||||
assert_eq!(5, suggestions.len());
|
||||
let expected: Vec<String> = vec![
|
||||
"aliases".into(),
|
||||
"commands".into(),
|
||||
"engine_state".into(),
|
||||
"modules".into(),
|
||||
"vars".into(),
|
||||
];
|
||||
// Match results
|
||||
match_suggestions(expected, suggestions);
|
||||
|
||||
// Test completions for $nu.scope.commands
|
||||
let suggestions = completer.complete("$nu.scope.commands.", 19);
|
||||
assert_eq!(15, suggestions.len());
|
||||
let expected: Vec<String> = vec![
|
||||
"category".into(),
|
||||
"creates_scope".into(),
|
||||
"examples".into(),
|
||||
"extra_usage".into(),
|
||||
"is_builtin".into(),
|
||||
"is_custom".into(),
|
||||
"is_extern".into(),
|
||||
"is_keyword".into(),
|
||||
"is_plugin".into(),
|
||||
"is_sub".into(),
|
||||
"module_name".into(),
|
||||
"name".into(),
|
||||
"search_terms".into(),
|
||||
"signatures".into(),
|
||||
"usage".into(),
|
||||
];
|
||||
// Match results
|
||||
match_suggestions(expected, suggestions);
|
||||
|
||||
// Test completions for $nu.scope.commands.signatures
|
||||
let suggestions = completer.complete("$nu.scope.commands.signatures.", 30);
|
||||
assert_eq!(17, suggestions.len());
|
||||
let expected: Vec<String> = vec![
|
||||
"any".into(),
|
||||
"binary".into(),
|
||||
"bool".into(),
|
||||
"datetime".into(),
|
||||
"duration".into(),
|
||||
"filesize".into(),
|
||||
"int".into(),
|
||||
"list<any>".into(),
|
||||
"list<binary>".into(),
|
||||
"list<number>".into(),
|
||||
"list<string>".into(),
|
||||
"nothing".into(),
|
||||
"number".into(),
|
||||
"range".into(),
|
||||
"record".into(),
|
||||
"string".into(),
|
||||
"table".into(),
|
||||
];
|
||||
// Match results
|
||||
match_suggestions(expected, suggestions);
|
||||
|
||||
// Test completions for $nu.scope.engine_state
|
||||
let suggestions = completer.complete("$nu.scope.engine_state.", 23);
|
||||
assert_eq!(6, suggestions.len());
|
||||
let expected: Vec<String> = vec![
|
||||
"num_blocks".into(),
|
||||
"num_decls".into(),
|
||||
"num_env_vars".into(),
|
||||
"num_modules".into(),
|
||||
"num_vars".into(),
|
||||
"source_bytes".into(),
|
||||
];
|
||||
// Match results
|
||||
match_suggestions(expected, suggestions);
|
||||
|
||||
// Test completions for $nu.scope.vars
|
||||
let suggestions = completer.complete("$nu.scope.vars.", 15);
|
||||
assert_eq!(3, suggestions.len());
|
||||
let expected: Vec<String> = vec!["name".into(), "type".into(), "value".into()];
|
||||
// Match results
|
||||
match_suggestions(expected, suggestions);
|
||||
|
||||
// Test completions for custom var
|
||||
let suggestions = completer.complete("$actor.", 7);
|
||||
|
||||
|
Reference in New Issue
Block a user