nushell/crates
Darren Schroeder 388e84e7ef
update nu-glob based on latest glob 0.3.1 changes (#9099)
# Description
This PR updates `nu-glob` to add the latest changes and updates from
`rust-lang/glob` [v0.3.1](https://github.com/rust-lang/glob).

With these changes you can do this type of globbing
```rust
/// - `?` matches any single character.
///
/// - `*` matches any (possibly empty) sequence of characters.
///
/// - `**` matches the current directory and arbitrary subdirectories. This
///   sequence **must** form a single path component, so both `**a` and `b**`
///   are invalid and will result in an error.  A sequence of more than two
///   consecutive `*` characters is also invalid.
///
/// - `[...]` matches any character inside the brackets.  Character sequences
///   can also specify ranges of characters, as ordered by Unicode, so e.g.
///   `[0-9]` specifies any character between 0 and 9 inclusive. An unclosed
///   bracket is invalid.
///
/// - `[!...]` is the negation of `[...]`, i.e. it matches any characters
///   **not** in the brackets.
///
/// - The metacharacters `?`, `*`, `[`, `]` can be matched by using brackets
///   (e.g. `[?]`).  When a `]` occurs immediately following `[` or `[!` then it
///   is interpreted as being part of, rather then ending, the character set, so
///   `]` and NOT `]` can be matched by `[]]` and `[!]]` respectively.  The `-`
///   character can be specified inside a character sequence pattern by placing
///   it at the start or the end, e.g. `[abc-]`.
```
Example - with character sequences

![image](https://user-images.githubusercontent.com/343840/236266670-03bf9384-4917-4074-9687-2c1c0d8ef34a.png)

Example - with character sequence negation

![image](https://user-images.githubusercontent.com/343840/236266421-73c3ee2c-1d10-4da0-86be-0afb51b50604.png)

Example - normal globbing

![image](https://user-images.githubusercontent.com/343840/236267138-60f22228-b8d3-4bf2-911b-a80560fdfa4f.png)

Example - with character sequences

![image](https://user-images.githubusercontent.com/343840/236267475-8c38fce9-87fe-4544-9757-34d319ce55b8.png)

Not that, if you're using a character sequence by itself, you need to
enclose it in quotes, otherwise nushell will think it's a range. But if
you already have a type of a bare word already, no quotes are necessary,
as in the last example.

# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->

# 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.
-->
2023-05-08 09:07:01 -05:00
..
nu_plugin_custom_values Bump to 0.79.1 dev version (#8998) 2023-04-26 01:05:23 +02:00
nu_plugin_example Bump to 0.79.1 dev version (#8998) 2023-04-26 01:05:23 +02:00
nu_plugin_formats Bump to 0.79.1 dev version (#8998) 2023-04-26 01:05:23 +02:00
nu_plugin_gstat Bump to 0.79.1 dev version (#8998) 2023-04-26 01:05:23 +02:00
nu_plugin_inc Bump to 0.79.1 dev version (#8998) 2023-04-26 01:05:23 +02:00
nu_plugin_python update nu_plugin_python due to signature changes (#8107) 2023-02-18 13:27:24 +00:00
nu_plugin_query Bump to 0.79.1 dev version (#8998) 2023-04-26 01:05:23 +02:00
nu-cli support bracketed paste (#8907) 2023-05-03 23:08:47 +02:00
nu-cmd-lang Allow creating modules from directories (#9066) 2023-05-06 21:39:54 +03:00
nu-color-config Bump tabled dependency to 0.11 (#8922) 2023-04-26 13:56:10 -05:00
nu-command update nu-glob based on latest glob 0.3.1 changes (#9099) 2023-05-08 09:07:01 -05:00
nu-engine Change type of flag defaults to Option<Value> (#9085) 2023-05-03 23:09:36 +02:00
nu-explore Bump tabled dependency to 0.11 (#8922) 2023-04-26 13:56:10 -05:00
nu-glob update nu-glob based on latest glob 0.3.1 changes (#9099) 2023-05-08 09:07:01 -05:00
nu-json Bump to 0.79.1 dev version (#8998) 2023-04-26 01:05:23 +02:00
nu-parser Reuse parsed modules (#9125) 2023-05-07 14:41:40 +03:00
nu-path Bump to 0.79.1 dev version (#8998) 2023-04-26 01:05:23 +02:00
nu-plugin Bump to 0.79.1 dev version (#8998) 2023-04-26 01:05:23 +02:00
nu-pretty-hex Bump to 0.79.1 dev version (#8998) 2023-04-26 01:05:23 +02:00
nu-protocol Reuse parsed modules (#9125) 2023-05-07 14:41:40 +03:00
nu-std FEATURE: format std log and add --short option (#9091) 2023-05-08 10:13:21 +02:00
nu-system Bump to 0.79.1 dev version (#8998) 2023-04-26 01:05:23 +02:00
nu-table Fix #9038 (#9042) 2023-04-28 12:50:42 -05:00
nu-term-grid Bump to 0.79.1 dev version (#8998) 2023-04-26 01:05:23 +02:00
nu-test-support Bump to 0.79.1 dev version (#8998) 2023-04-26 01:05:23 +02:00
nu-utils FEATURE: highlight some prompt parts (#9094) 2023-05-03 16:36:27 -05:00
README.md Remove old nushell/merge engine-q 2022-02-07 14:54:06 -05:00

Nushell core libraries and plugins

These sub-crates form both the foundation for Nu and a set of plugins which extend Nu with additional functionality.

Foundational libraries are split into two kinds of crates:

  • Core crates - those crates that work together to build the Nushell language engine
  • Support crates - a set of crates that support the engine with additional features like JSON support, ANSI support, and more.

Plugins are likewise also split into two types:

  • Core plugins - plugins that provide part of the default experience of Nu, including access to the system properties, processes, and web-connectivity features.
  • Extra plugins - these plugins run a wide range of different capabilities like working with different file types, charting, viewing binary data, and more.