Compare commits

...

12 Commits

Author SHA1 Message Date
f7d6c28a00 Release 0.96.1 2024-07-29 16:31:36 -07:00
d618fd0527 Fix bad method links in docstrings (#13471)
# Description

Seems like I developed a bit of a bad habit of trying to link

```rust
/// [`.foo()`]
```

in docstrings, and this just doesn't work automatically; you have to do 

```rust
/// [`.foo()`](Self::foo)
```

if you want it to actually link. I think I found and replaced all of
these.

# User-Facing Changes

Just docs.
2024-07-27 19:39:29 -07:00
d80de68665 Clean up arguments added to stack after CallDecl engine call (#13469)
# Description

Just realized I hadn't been cleaning up the arguments added to the
`Stack` after the `CallDecl` engine call was finished, so there could be
a bit of a memory leak if a plugin made many calls during the duration
of a single plugin call. This is a quick patch to that.

I'm probably going to revise how this all works at some point soon
because I think it is a bit of a pitfall. It would be good to make it
much more difficult to make a mistake with it, perhaps with a guard like
Ian did for the redirection stuff.

# After Submitting
- [ ] release with 0.96.1
2024-07-27 19:39:17 -07:00
5f7afafe51 IR: fix incorrect capturing of subexpressions (#13467)
# Description


[Discovered](https://discord.com/channels/601130461678272522/614593951969574961/1266503282554179604)
by `@warp` on Discord.

The IR compiler was not properly setting redirect modes for
subexpressions because `FullCellPath` was always being compiled with
capture-out redirection. This is the correct behavior if there is a tail
to the `FullCellPath`, as we need the value in order to try to extract
anything from it (although this is unlikely to work) - however, the
parser also generates `FullCellPath`s with an empty tail quite often,
including for bare subexpressions.

Because of this, the following did not behave as expected:

```nushell
(docker run -it --rm alpine)
```

Capturing the output meant that `docker` didn't have direct access to
the terminal as a TTY.

As this is a minor bug fix, it should be okay to include in the 0.96.1
patch release.

# User-Facing Changes

- Fixes the bug as described when running with IR evaluation enabled.

# Tests + Formatting

I added a test for this, though we're not currently running all tests
with IR on the CI, but it should ensure this behaviour is consistent.
The equivalent minimum repro I could find was:

```nushell
(nu --testbin cococo); null
```

as this should cause the `cococo` message to appear on stdout, and if
Nushell is capturing the output, it would be discarded instead.
2024-07-27 19:38:57 -07:00
53fbf62493 Fix keybindings list being empty by default (#13456)
# Description

Made a mistake when fixing this for IR. The default behavior with no
options set is to list everything. Restored that.

This should go in the 0.96.1 patch release.

# Tests + Formatting
Added regression test.
2024-07-26 16:03:05 +08:00
e68f744dda Update query-web example to use new chunks (#13429)
# Description

A `query web` example uses the (soon to be deprecated) `group` command.
Updated it to use `chunks` replacement.
2024-07-25 22:01:46 +02:00
e2d0514bb5 update release-pkg.nu with working url for less license (#13451)
# Description

When running a wix/msi build, I ran into a problem where the less
license would not download. The fix for that is in this PR along with
some further comments.

# 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` to
check that you're using the standard code style
- `cargo test --workspace` to check that all tests pass (on Windows make
sure to [enable developer
mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging))
- `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` 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.
-->
2024-07-25 08:50:59 -05:00
4a7d4401b8 Bump openssl from 0.10.64 to 0.10.66 (#13426) 2024-07-25 11:35:19 +00:00
6446f26283 Fix $in in range expressions (#13447)
# Description

Fixes #13441.

I must have forgotten that `Expr::Range` can contain other expressions,
so I wasn't searching for `$in` to replace within it. Easy fix.

# User-Facing Changes
Bug fix, ranges like `6 | 3..$in` work as expected now.

# Tests + Formatting
Added regression test.
2024-07-25 18:28:44 +08:00
9f90d611e1 Bump version to 0.96.1 (#13439)
(Post-release bump.)
2024-07-25 18:28:18 +08:00
a88c3f48e2 Bump crate-ci/typos from 1.23.2 to 1.23.3 (#13437)
Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.23.2 to
1.23.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/crate-ci/typos/releases">crate-ci/typos's
releases</a>.</em></p>
<blockquote>
<h2>v1.23.3</h2>
<h2>[1.23.3] - 2024-07-22</h2>
<h3>Fixes</h3>
<ul>
<li>Fix <code>Dockerfile</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/crate-ci/typos/blob/master/CHANGELOG.md">crate-ci/typos's
changelog</a>.</em></p>
<blockquote>
<h2>[1.23.3] - 2024-07-22</h2>
<h3>Fixes</h3>
<ul>
<li>Fix <code>Dockerfile</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3ddcf00482"><code>3ddcf00</code></a>
chore: Release</li>
<li><a
href="394f8dc60e"><code>394f8dc</code></a>
docs: Update changelog</li>
<li><a
href="82ff712782"><code>82ff712</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1059">#1059</a>
from huuff/master</li>
<li><a
href="d7bacc4dc6"><code>d7bacc4</code></a>
fixed the crate install path</li>
<li>See full diff in <a
href="https://github.com/crate-ci/typos/compare/v1.23.2...v1.23.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=crate-ci/typos&package-manager=github_actions&previous-version=1.23.2&new-version=1.23.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-24 13:12:17 +08:00
5c2439abc0 Bump softprops/action-gh-release from 2.0.6 to 2.0.8 (#13438)
Bumps
[softprops/action-gh-release](https://github.com/softprops/action-gh-release)
from 2.0.6 to 2.0.8.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/softprops/action-gh-release/releases">softprops/action-gh-release's
releases</a>.</em></p>
<blockquote>
<h2>v2.0.8</h2>
<!-- raw HTML omitted -->
<h2>What's Changed</h2>
<h3>Other Changes 🔄</h3>
<ul>
<li>chore(deps): bump prettier from 2.8.0 to 3.3.3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/480">softprops/action-gh-release#480</a></li>
<li>chore(deps): bump <code>@​types/node</code> from 20.14.9 to 20.14.11
by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>
in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/483">softprops/action-gh-release#483</a></li>
<li>chore(deps): bump <code>@​octokit/plugin-throttling</code> from
9.3.0 to 9.3.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/484">softprops/action-gh-release#484</a></li>
<li>chore(deps): bump glob from 10.4.2 to 11.0.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/477">softprops/action-gh-release#477</a></li>
<li>refactor: write jest config in ts by <a
href="https://github.com/chenrui333"><code>@​chenrui333</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/485">softprops/action-gh-release#485</a></li>
<li>chore(deps): bump <code>@​actions/github</code> from 5.1.1 to 6.0.0
by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>
in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/470">softprops/action-gh-release#470</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/softprops/action-gh-release/compare/v2...v2.0.8">https://github.com/softprops/action-gh-release/compare/v2...v2.0.8</a></p>
<h2>v2.0.7</h2>
<!-- raw HTML omitted -->
<h2>What's Changed</h2>
<h3>Bug fixes 🐛</h3>
<ul>
<li>Fix missing update release body by <a
href="https://github.com/FirelightFlagboy"><code>@​FirelightFlagboy</code></a>
in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/365">softprops/action-gh-release#365</a></li>
</ul>
<h3>Other Changes 🔄</h3>
<ul>
<li>Bump <code>@​octokit/plugin-retry</code> from 4.0.3 to 7.1.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/443">softprops/action-gh-release#443</a></li>
<li>Bump typescript from 4.9.5 to 5.5.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/467">softprops/action-gh-release#467</a></li>
<li>Bump <code>@​types/node</code> from 20.14.6 to 20.14.8 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/469">softprops/action-gh-release#469</a></li>
<li>Bump <code>@​types/node</code> from 20.14.8 to 20.14.9 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/473">softprops/action-gh-release#473</a></li>
<li>Bump typescript from 5.5.2 to 5.5.3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/472">softprops/action-gh-release#472</a></li>
<li>Bump ts-jest from 29.1.5 to 29.2.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/479">softprops/action-gh-release#479</a></li>
<li>docs: document that existing releases are updated by <a
href="https://github.com/jvanbruegge"><code>@​jvanbruegge</code></a> in
<a
href="https://redirect.github.com/softprops/action-gh-release/pull/474">softprops/action-gh-release#474</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/jvanbruegge"><code>@​jvanbruegge</code></a>
made their first contribution in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/474">softprops/action-gh-release#474</a></li>
<li><a
href="https://github.com/FirelightFlagboy"><code>@​FirelightFlagboy</code></a>
made their first contribution in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/365">softprops/action-gh-release#365</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/softprops/action-gh-release/compare/v2.0.6...v2.0.7">https://github.com/softprops/action-gh-release/compare/v2.0.6...v2.0.7</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md">softprops/action-gh-release's
changelog</a>.</em></p>
<blockquote>
<h2>2.0.8</h2>
<h3>Other Changes 🔄</h3>
<ul>
<li>chore(deps): bump prettier from 2.8.0 to 3.3.3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/480">softprops/action-gh-release#480</a></li>
<li>chore(deps): bump <code>@​types/node</code> from 20.14.9 to 20.14.11
by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>
in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/483">softprops/action-gh-release#483</a></li>
<li>chore(deps): bump <code>@​octokit/plugin-throttling</code> from
9.3.0 to 9.3.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/484">softprops/action-gh-release#484</a></li>
<li>chore(deps): bump glob from 10.4.2 to 11.0.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/477">softprops/action-gh-release#477</a></li>
<li>refactor: write jest config in ts by <a
href="https://github.com/chenrui333"><code>@​chenrui333</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/485">softprops/action-gh-release#485</a></li>
<li>chore(deps): bump <code>@​actions/github</code> from 5.1.1 to 6.0.0
by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>
in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/470">softprops/action-gh-release#470</a></li>
</ul>
<h2>2.0.7</h2>
<h3>Bug fixes 🐛</h3>
<ul>
<li>Fix missing update release body by <a
href="https://github.com/FirelightFlagboy"><code>@​FirelightFlagboy</code></a>
in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/365">softprops/action-gh-release#365</a></li>
</ul>
<h3>Other Changes 🔄</h3>
<ul>
<li>Bump <code>@​octokit/plugin-retry</code> from 4.0.3 to 7.1.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/443">softprops/action-gh-release#443</a></li>
<li>Bump typescript from 4.9.5 to 5.5.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/467">softprops/action-gh-release#467</a></li>
<li>Bump <code>@​types/node</code> from 20.14.6 to 20.14.8 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/469">softprops/action-gh-release#469</a></li>
<li>Bump <code>@​types/node</code> from 20.14.8 to 20.14.9 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/473">softprops/action-gh-release#473</a></li>
<li>Bump typescript from 5.5.2 to 5.5.3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/472">softprops/action-gh-release#472</a></li>
<li>Bump ts-jest from 29.1.5 to 29.2.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/479">softprops/action-gh-release#479</a></li>
<li>docs: document that existing releases are updated by <a
href="https://github.com/jvanbruegge"><code>@​jvanbruegge</code></a> in
<a
href="https://redirect.github.com/softprops/action-gh-release/pull/474">softprops/action-gh-release#474</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c062e08bd5"><code>c062e08</code></a>
release 2.0.8</li>
<li><a
href="380635c4ad"><code>380635c</code></a>
chore(deps): bump <code>@​actions/github</code> from 5.1.1 to 6.0.0 (<a
href="https://redirect.github.com/softprops/action-gh-release/issues/470">#470</a>)</li>
<li><a
href="20adb4259c"><code>20adb42</code></a>
refactor: write jest config in ts (<a
href="https://redirect.github.com/softprops/action-gh-release/issues/485">#485</a>)</li>
<li><a
href="f808f15ba8"><code>f808f15</code></a>
chore(deps): bump glob from 10.4.2 to 11.0.0 (<a
href="https://redirect.github.com/softprops/action-gh-release/issues/477">#477</a>)</li>
<li><a
href="6145241049"><code>6145241</code></a>
chore(deps): bump <code>@​octokit/plugin-throttling</code> from 9.3.0 to
9.3.1 (<a
href="https://redirect.github.com/softprops/action-gh-release/issues/484">#484</a>)</li>
<li><a
href="4ac522d0bd"><code>4ac522d</code></a>
chore(deps): bump <code>@​types/node</code> from 20.14.9 to 20.14.11 (<a
href="https://redirect.github.com/softprops/action-gh-release/issues/483">#483</a>)</li>
<li><a
href="25849b1326"><code>25849b1</code></a>
chore(deps): bump prettier from 2.8.0 to 3.3.3 (<a
href="https://redirect.github.com/softprops/action-gh-release/issues/480">#480</a>)</li>
<li><a
href="62060560e3"><code>6206056</code></a>
chore: update dependabot commit msg</li>
<li><a
href="39aadf190d"><code>39aadf1</code></a>
chore: run <code>frizbee actions .github/workflows/</code></li>
<li><a
href="6f3ab65323"><code>6f3ab65</code></a>
chore: update dist file</li>
<li>Additional commits viewable in <a
href="https://github.com/softprops/action-gh-release/compare/v2.0.6...v2.0.8">compare
view</a></li>
</ul>
</details>
<br />

<details>
<summary>Most Recent Ignore Conditions Applied to This Pull
Request</summary>

| Dependency Name | Ignore Conditions |
| --- | --- |
| softprops/action-gh-release | [< 0.2, > 0.1.13] |
</details>


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=softprops/action-gh-release&package-manager=github_actions&previous-version=2.0.6&new-version=2.0.8)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-24 13:11:50 +08:00
71 changed files with 345 additions and 297 deletions

View File

@ -161,7 +161,7 @@ jobs:
# REF: https://github.com/marketplace/actions/gh-release
# Create a release only in nushell/nightly repo
- name: Publish Archive
uses: softprops/action-gh-release@v2.0.6
uses: softprops/action-gh-release@v2.0.8
if: ${{ startsWith(github.repository, 'nushell/nightly') }}
with:
prerelease: true

View File

@ -161,8 +161,12 @@ if $os in ['macos-latest'] or $USE_UBUNTU {
let releaseStem = $'($bin)-($version)-($target)'
print $'(char nl)Download less related stuffs...'; hr-line
# todo: less-v661 is out but is released as a zip file. maybe we should switch to that and extract it?
aria2c https://github.com/jftuga/less-Windows/releases/download/less-v608/less.exe -o less.exe
aria2c https://raw.githubusercontent.com/jftuga/less-Windows/master/LICENSE -o LICENSE-for-less.txt
# the below was renamed because it was failing to download for darren. it should work but it wasn't
# todo: maybe we should get rid of this aria2c dependency and just use http get?
#aria2c https://raw.githubusercontent.com/jftuga/less-Windows/master/LICENSE -o LICENSE-for-less.txt
aria2c https://github.com/jftuga/less-Windows/blob/master/LICENSE -o LICENSE-for-less.txt
# Create Windows msi release package
if (get-env _EXTRA_) == 'msi' {

View File

@ -91,7 +91,7 @@ jobs:
# REF: https://github.com/marketplace/actions/gh-release
- name: Publish Archive
uses: softprops/action-gh-release@v2.0.6
uses: softprops/action-gh-release@v2.0.8
if: ${{ startsWith(github.ref, 'refs/tags/') }}
with:
draft: true

View File

@ -10,4 +10,4 @@ jobs:
uses: actions/checkout@v4.1.7
- name: Check spelling
uses: crate-ci/typos@v1.23.2
uses: crate-ci/typos@v1.23.3

82
Cargo.lock generated
View File

@ -2868,7 +2868,7 @@ dependencies = [
[[package]]
name = "nu"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"assert_cmd",
"crossterm",
@ -2922,7 +2922,7 @@ dependencies = [
[[package]]
name = "nu-cli"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"chrono",
"crossterm",
@ -2957,7 +2957,7 @@ dependencies = [
[[package]]
name = "nu-cmd-base"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"indexmap",
"miette",
@ -2969,7 +2969,7 @@ dependencies = [
[[package]]
name = "nu-cmd-extra"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"fancy-regex",
"heck 0.5.0",
@ -2994,7 +2994,7 @@ dependencies = [
[[package]]
name = "nu-cmd-lang"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"itertools 0.12.1",
"nu-engine",
@ -3006,7 +3006,7 @@ dependencies = [
[[package]]
name = "nu-cmd-plugin"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"itertools 0.12.1",
"nu-engine",
@ -3017,7 +3017,7 @@ dependencies = [
[[package]]
name = "nu-color-config"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"nu-ansi-term",
"nu-engine",
@ -3029,7 +3029,7 @@ dependencies = [
[[package]]
name = "nu-command"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"alphanumeric-sort",
"base64 0.22.1",
@ -3139,7 +3139,7 @@ dependencies = [
[[package]]
name = "nu-derive-value"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"convert_case",
"proc-macro-error",
@ -3150,7 +3150,7 @@ dependencies = [
[[package]]
name = "nu-engine"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"log",
"nu-glob",
@ -3161,7 +3161,7 @@ dependencies = [
[[package]]
name = "nu-explore"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"ansi-str",
"anyhow",
@ -3186,14 +3186,14 @@ dependencies = [
[[package]]
name = "nu-glob"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"doc-comment",
]
[[package]]
name = "nu-json"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"fancy-regex",
"linked-hash-map",
@ -3206,7 +3206,7 @@ dependencies = [
[[package]]
name = "nu-lsp"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"assert-json-diff",
"crossbeam-channel",
@ -3227,7 +3227,7 @@ dependencies = [
[[package]]
name = "nu-parser"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"bytesize",
"chrono",
@ -3243,7 +3243,7 @@ dependencies = [
[[package]]
name = "nu-path"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"dirs",
"omnipath",
@ -3252,7 +3252,7 @@ dependencies = [
[[package]]
name = "nu-plugin"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"log",
"nix",
@ -3268,7 +3268,7 @@ dependencies = [
[[package]]
name = "nu-plugin-core"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"interprocess",
"log",
@ -3282,7 +3282,7 @@ dependencies = [
[[package]]
name = "nu-plugin-engine"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"log",
"nu-engine",
@ -3298,7 +3298,7 @@ dependencies = [
[[package]]
name = "nu-plugin-protocol"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"bincode",
"nu-protocol",
@ -3310,7 +3310,7 @@ dependencies = [
[[package]]
name = "nu-plugin-test-support"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"nu-ansi-term",
"nu-cmd-lang",
@ -3328,7 +3328,7 @@ dependencies = [
[[package]]
name = "nu-pretty-hex"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"heapless",
"nu-ansi-term",
@ -3337,7 +3337,7 @@ dependencies = [
[[package]]
name = "nu-protocol"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"brotli",
"byte-unit",
@ -3374,7 +3374,7 @@ dependencies = [
[[package]]
name = "nu-std"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"log",
"miette",
@ -3385,7 +3385,7 @@ dependencies = [
[[package]]
name = "nu-system"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"chrono",
"itertools 0.12.1",
@ -3403,7 +3403,7 @@ dependencies = [
[[package]]
name = "nu-table"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"fancy-regex",
"nu-ansi-term",
@ -3417,7 +3417,7 @@ dependencies = [
[[package]]
name = "nu-term-grid"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"nu-utils",
"unicode-width",
@ -3425,7 +3425,7 @@ dependencies = [
[[package]]
name = "nu-test-support"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"nu-glob",
"nu-path",
@ -3437,7 +3437,7 @@ dependencies = [
[[package]]
name = "nu-utils"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"crossterm_winapi",
"log",
@ -3463,7 +3463,7 @@ dependencies = [
[[package]]
name = "nu_plugin_example"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"nu-cmd-lang",
"nu-plugin",
@ -3473,7 +3473,7 @@ dependencies = [
[[package]]
name = "nu_plugin_formats"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"eml-parser",
"ical",
@ -3486,7 +3486,7 @@ dependencies = [
[[package]]
name = "nu_plugin_gstat"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"git2",
"nu-plugin",
@ -3495,7 +3495,7 @@ dependencies = [
[[package]]
name = "nu_plugin_inc"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"nu-plugin",
"nu-protocol",
@ -3504,7 +3504,7 @@ dependencies = [
[[package]]
name = "nu_plugin_polars"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"chrono",
"chrono-tz 0.9.0",
@ -3538,7 +3538,7 @@ dependencies = [
[[package]]
name = "nu_plugin_query"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"gjson",
"nu-plugin",
@ -3553,7 +3553,7 @@ dependencies = [
[[package]]
name = "nu_plugin_stress_internals"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"interprocess",
"serde",
@ -3679,7 +3679,7 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
[[package]]
name = "nuon"
version = "0.96.0"
version = "0.96.1"
dependencies = [
"chrono",
"fancy-regex",
@ -3787,9 +3787,9 @@ dependencies = [
[[package]]
name = "openssl"
version = "0.10.64"
version = "0.10.66"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1"
dependencies = [
"bitflags 2.5.0",
"cfg-if",
@ -3828,9 +3828,9 @@ dependencies = [
[[package]]
name = "openssl-sys"
version = "0.9.102"
version = "0.9.103"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2"
checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6"
dependencies = [
"cc",
"libc",

View File

@ -11,7 +11,7 @@ license = "MIT"
name = "nu"
repository = "https://github.com/nushell/nushell"
rust-version = "1.77.2"
version = "0.96.0"
version = "0.96.1"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
@ -183,22 +183,22 @@ windows-sys = "0.48"
winreg = "0.52"
[dependencies]
nu-cli = { path = "./crates/nu-cli", version = "0.96.0" }
nu-cmd-base = { path = "./crates/nu-cmd-base", version = "0.96.0" }
nu-cmd-lang = { path = "./crates/nu-cmd-lang", version = "0.96.0" }
nu-cmd-plugin = { path = "./crates/nu-cmd-plugin", version = "0.96.0", optional = true }
nu-cmd-extra = { path = "./crates/nu-cmd-extra", version = "0.96.0" }
nu-command = { path = "./crates/nu-command", version = "0.96.0" }
nu-engine = { path = "./crates/nu-engine", version = "0.96.0" }
nu-explore = { path = "./crates/nu-explore", version = "0.96.0" }
nu-lsp = { path = "./crates/nu-lsp/", version = "0.96.0" }
nu-parser = { path = "./crates/nu-parser", version = "0.96.0" }
nu-path = { path = "./crates/nu-path", version = "0.96.0" }
nu-plugin-engine = { path = "./crates/nu-plugin-engine", optional = true, version = "0.96.0" }
nu-protocol = { path = "./crates/nu-protocol", version = "0.96.0" }
nu-std = { path = "./crates/nu-std", version = "0.96.0" }
nu-system = { path = "./crates/nu-system", version = "0.96.0" }
nu-utils = { path = "./crates/nu-utils", version = "0.96.0" }
nu-cli = { path = "./crates/nu-cli", version = "0.96.1" }
nu-cmd-base = { path = "./crates/nu-cmd-base", version = "0.96.1" }
nu-cmd-lang = { path = "./crates/nu-cmd-lang", version = "0.96.1" }
nu-cmd-plugin = { path = "./crates/nu-cmd-plugin", version = "0.96.1", optional = true }
nu-cmd-extra = { path = "./crates/nu-cmd-extra", version = "0.96.1" }
nu-command = { path = "./crates/nu-command", version = "0.96.1" }
nu-engine = { path = "./crates/nu-engine", version = "0.96.1" }
nu-explore = { path = "./crates/nu-explore", version = "0.96.1" }
nu-lsp = { path = "./crates/nu-lsp/", version = "0.96.1" }
nu-parser = { path = "./crates/nu-parser", version = "0.96.1" }
nu-path = { path = "./crates/nu-path", version = "0.96.1" }
nu-plugin-engine = { path = "./crates/nu-plugin-engine", optional = true, version = "0.96.1" }
nu-protocol = { path = "./crates/nu-protocol", version = "0.96.1" }
nu-std = { path = "./crates/nu-std", version = "0.96.1" }
nu-system = { path = "./crates/nu-system", version = "0.96.1" }
nu-utils = { path = "./crates/nu-utils", version = "0.96.1" }
reedline = { workspace = true, features = ["bashisms", "sqlite"] }
crossterm = { workspace = true }
@ -227,9 +227,9 @@ nix = { workspace = true, default-features = false, features = [
] }
[dev-dependencies]
nu-test-support = { path = "./crates/nu-test-support", version = "0.96.0" }
nu-plugin-protocol = { path = "./crates/nu-plugin-protocol", version = "0.96.0" }
nu-plugin-core = { path = "./crates/nu-plugin-core", version = "0.96.0" }
nu-test-support = { path = "./crates/nu-test-support", version = "0.96.1" }
nu-plugin-protocol = { path = "./crates/nu-plugin-protocol", version = "0.96.1" }
nu-plugin-core = { path = "./crates/nu-plugin-core", version = "0.96.1" }
assert_cmd = "2.0"
dirs = { workspace = true }
tango-bench = "0.5"

View File

@ -5,27 +5,27 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-cli"
edition = "2021"
license = "MIT"
name = "nu-cli"
version = "0.96.0"
version = "0.96.1"
[lib]
bench = false
[dev-dependencies]
nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.96.0" }
nu-command = { path = "../nu-command", version = "0.96.0" }
nu-test-support = { path = "../nu-test-support", version = "0.96.0" }
nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.96.1" }
nu-command = { path = "../nu-command", version = "0.96.1" }
nu-test-support = { path = "../nu-test-support", version = "0.96.1" }
rstest = { workspace = true, default-features = false }
tempfile = { workspace = true }
[dependencies]
nu-cmd-base = { path = "../nu-cmd-base", version = "0.96.0" }
nu-engine = { path = "../nu-engine", version = "0.96.0" }
nu-path = { path = "../nu-path", version = "0.96.0" }
nu-parser = { path = "../nu-parser", version = "0.96.0" }
nu-plugin-engine = { path = "../nu-plugin-engine", version = "0.96.0", optional = true }
nu-protocol = { path = "../nu-protocol", version = "0.96.0" }
nu-utils = { path = "../nu-utils", version = "0.96.0" }
nu-color-config = { path = "../nu-color-config", version = "0.96.0" }
nu-cmd-base = { path = "../nu-cmd-base", version = "0.96.1" }
nu-engine = { path = "../nu-engine", version = "0.96.1" }
nu-path = { path = "../nu-path", version = "0.96.1" }
nu-parser = { path = "../nu-parser", version = "0.96.1" }
nu-plugin-engine = { path = "../nu-plugin-engine", version = "0.96.1", optional = true }
nu-protocol = { path = "../nu-protocol", version = "0.96.1" }
nu-utils = { path = "../nu-utils", version = "0.96.1" }
nu-color-config = { path = "../nu-color-config", version = "0.96.1" }
nu-ansi-term = { workspace = true }
reedline = { workspace = true, features = ["bashisms", "sqlite"] }

View File

@ -61,10 +61,12 @@ impl Command for KeybindingsList {
.map(|option| call.has_flag(engine_state, stack, option))
.collect::<Result<Vec<_>, ShellError>>()?;
let no_option_specified = presence.iter().all(|present| !*present);
let records = all_options
.iter()
.zip(presence)
.filter(|(_, present)| *present)
.filter(|(_, present)| no_option_specified || *present)
.flat_map(|(option, _)| get_records(option, call.head))
.collect();

View File

@ -0,0 +1,7 @@
use nu_test_support::nu;
#[test]
fn not_empty() {
let result = nu!("keybindings list | is-not-empty");
assert_eq!(result.out, "true");
}

View File

@ -1 +1,2 @@
mod keybindings_list;
mod nu_highlight;

View File

@ -5,15 +5,15 @@ edition = "2021"
license = "MIT"
name = "nu-cmd-base"
repository = "https://github.com/nushell/nushell/tree/main/crates/nu-cmd-base"
version = "0.96.0"
version = "0.96.1"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
nu-engine = { path = "../nu-engine", version = "0.96.0" }
nu-parser = { path = "../nu-parser", version = "0.96.0" }
nu-path = { path = "../nu-path", version = "0.96.0" }
nu-protocol = { path = "../nu-protocol", version = "0.96.0" }
nu-engine = { path = "../nu-engine", version = "0.96.1" }
nu-parser = { path = "../nu-parser", version = "0.96.1" }
nu-path = { path = "../nu-path", version = "0.96.1" }
nu-protocol = { path = "../nu-protocol", version = "0.96.1" }
indexmap = { workspace = true }
miette = { workspace = true }

View File

@ -5,7 +5,7 @@ edition = "2021"
license = "MIT"
name = "nu-cmd-extra"
repository = "https://github.com/nushell/nushell/tree/main/crates/nu-cmd-extra"
version = "0.96.0"
version = "0.96.1"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
@ -13,13 +13,13 @@ version = "0.96.0"
bench = false
[dependencies]
nu-cmd-base = { path = "../nu-cmd-base", version = "0.96.0" }
nu-engine = { path = "../nu-engine", version = "0.96.0" }
nu-json = { version = "0.96.0", path = "../nu-json" }
nu-parser = { path = "../nu-parser", version = "0.96.0" }
nu-pretty-hex = { version = "0.96.0", path = "../nu-pretty-hex" }
nu-protocol = { path = "../nu-protocol", version = "0.96.0" }
nu-utils = { path = "../nu-utils", version = "0.96.0" }
nu-cmd-base = { path = "../nu-cmd-base", version = "0.96.1" }
nu-engine = { path = "../nu-engine", version = "0.96.1" }
nu-json = { version = "0.96.1", path = "../nu-json" }
nu-parser = { path = "../nu-parser", version = "0.96.1" }
nu-pretty-hex = { version = "0.96.1", path = "../nu-pretty-hex" }
nu-protocol = { path = "../nu-protocol", version = "0.96.1" }
nu-utils = { path = "../nu-utils", version = "0.96.1" }
# Potential dependencies for extras
heck = { workspace = true }
@ -33,6 +33,6 @@ v_htmlescape = { workspace = true }
itertools = { workspace = true }
[dev-dependencies]
nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.96.0" }
nu-command = { path = "../nu-command", version = "0.96.0" }
nu-test-support = { path = "../nu-test-support", version = "0.96.0" }
nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.96.1" }
nu-command = { path = "../nu-command", version = "0.96.1" }
nu-test-support = { path = "../nu-test-support", version = "0.96.1" }

View File

@ -6,16 +6,16 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-cmd-lang"
edition = "2021"
license = "MIT"
name = "nu-cmd-lang"
version = "0.96.0"
version = "0.96.1"
[lib]
bench = false
[dependencies]
nu-engine = { path = "../nu-engine", version = "0.96.0" }
nu-parser = { path = "../nu-parser", version = "0.96.0" }
nu-protocol = { path = "../nu-protocol", version = "0.96.0" }
nu-utils = { path = "../nu-utils", version = "0.96.0" }
nu-engine = { path = "../nu-engine", version = "0.96.1" }
nu-parser = { path = "../nu-parser", version = "0.96.1" }
nu-protocol = { path = "../nu-protocol", version = "0.96.1" }
nu-utils = { path = "../nu-utils", version = "0.96.1" }
itertools = { workspace = true }
shadow-rs = { version = "0.29", default-features = false }

View File

@ -5,15 +5,15 @@ edition = "2021"
license = "MIT"
name = "nu-cmd-plugin"
repository = "https://github.com/nushell/nushell/tree/main/crates/nu-cmd-plugin"
version = "0.96.0"
version = "0.96.1"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
nu-engine = { path = "../nu-engine", version = "0.96.0" }
nu-path = { path = "../nu-path", version = "0.96.0" }
nu-protocol = { path = "../nu-protocol", version = "0.96.0", features = ["plugin"] }
nu-plugin-engine = { path = "../nu-plugin-engine", version = "0.96.0" }
nu-engine = { path = "../nu-engine", version = "0.96.1" }
nu-path = { path = "../nu-path", version = "0.96.1" }
nu-protocol = { path = "../nu-protocol", version = "0.96.1", features = ["plugin"] }
nu-plugin-engine = { path = "../nu-plugin-engine", version = "0.96.1" }
itertools = { workspace = true }

View File

@ -5,18 +5,18 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-color-confi
edition = "2021"
license = "MIT"
name = "nu-color-config"
version = "0.96.0"
version = "0.96.1"
[lib]
bench = false
[dependencies]
nu-protocol = { path = "../nu-protocol", version = "0.96.0" }
nu-engine = { path = "../nu-engine", version = "0.96.0" }
nu-json = { path = "../nu-json", version = "0.96.0" }
nu-protocol = { path = "../nu-protocol", version = "0.96.1" }
nu-engine = { path = "../nu-engine", version = "0.96.1" }
nu-json = { path = "../nu-json", version = "0.96.1" }
nu-ansi-term = { workspace = true }
serde = { workspace = true, features = ["derive"] }
[dev-dependencies]
nu-test-support = { path = "../nu-test-support", version = "0.96.0" }
nu-test-support = { path = "../nu-test-support", version = "0.96.1" }

View File

@ -5,7 +5,7 @@ edition = "2021"
license = "MIT"
name = "nu-command"
repository = "https://github.com/nushell/nushell/tree/main/crates/nu-command"
version = "0.96.0"
version = "0.96.1"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
@ -13,21 +13,21 @@ version = "0.96.0"
bench = false
[dependencies]
nu-cmd-base = { path = "../nu-cmd-base", version = "0.96.0" }
nu-color-config = { path = "../nu-color-config", version = "0.96.0" }
nu-engine = { path = "../nu-engine", version = "0.96.0" }
nu-glob = { path = "../nu-glob", version = "0.96.0" }
nu-json = { path = "../nu-json", version = "0.96.0" }
nu-parser = { path = "../nu-parser", version = "0.96.0" }
nu-path = { path = "../nu-path", version = "0.96.0" }
nu-pretty-hex = { path = "../nu-pretty-hex", version = "0.96.0" }
nu-protocol = { path = "../nu-protocol", version = "0.96.0" }
nu-system = { path = "../nu-system", version = "0.96.0" }
nu-table = { path = "../nu-table", version = "0.96.0" }
nu-term-grid = { path = "../nu-term-grid", version = "0.96.0" }
nu-utils = { path = "../nu-utils", version = "0.96.0" }
nu-cmd-base = { path = "../nu-cmd-base", version = "0.96.1" }
nu-color-config = { path = "../nu-color-config", version = "0.96.1" }
nu-engine = { path = "../nu-engine", version = "0.96.1" }
nu-glob = { path = "../nu-glob", version = "0.96.1" }
nu-json = { path = "../nu-json", version = "0.96.1" }
nu-parser = { path = "../nu-parser", version = "0.96.1" }
nu-path = { path = "../nu-path", version = "0.96.1" }
nu-pretty-hex = { path = "../nu-pretty-hex", version = "0.96.1" }
nu-protocol = { path = "../nu-protocol", version = "0.96.1" }
nu-system = { path = "../nu-system", version = "0.96.1" }
nu-table = { path = "../nu-table", version = "0.96.1" }
nu-term-grid = { path = "../nu-term-grid", version = "0.96.1" }
nu-utils = { path = "../nu-utils", version = "0.96.1" }
nu-ansi-term = { workspace = true }
nuon = { path = "../nuon", version = "0.96.0" }
nuon = { path = "../nuon", version = "0.96.1" }
alphanumeric-sort = { workspace = true }
base64 = { workspace = true }
@ -137,8 +137,8 @@ sqlite = ["rusqlite"]
trash-support = ["trash"]
[dev-dependencies]
nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.96.0" }
nu-test-support = { path = "../nu-test-support", version = "0.96.0" }
nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.96.1" }
nu-test-support = { path = "../nu-test-support", version = "0.96.1" }
dirs = { workspace = true }
mockito = { workspace = true, default-features = false }

View File

@ -5,7 +5,7 @@ edition = "2021"
license = "MIT"
name = "nu-derive-value"
repository = "https://github.com/nushell/nushell/tree/main/crates/nu-derive-value"
version = "0.96.0"
version = "0.96.1"
[lib]
proc-macro = true

View File

@ -5,16 +5,16 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-engine"
edition = "2021"
license = "MIT"
name = "nu-engine"
version = "0.96.0"
version = "0.96.1"
[lib]
bench = false
[dependencies]
nu-protocol = { path = "../nu-protocol", features = ["plugin"], version = "0.96.0" }
nu-path = { path = "../nu-path", version = "0.96.0" }
nu-glob = { path = "../nu-glob", version = "0.96.0" }
nu-utils = { path = "../nu-utils", version = "0.96.0" }
nu-protocol = { path = "../nu-protocol", features = ["plugin"], version = "0.96.1" }
nu-path = { path = "../nu-path", version = "0.96.1" }
nu-glob = { path = "../nu-glob", version = "0.96.1" }
nu-utils = { path = "../nu-utils", version = "0.96.1" }
log = { workspace = true }
[features]

View File

@ -423,7 +423,7 @@ impl BlockBuilder {
self.push(Instruction::Jump { index: label_id.0 }.into_spanned(span))
}
/// The index that the next instruction [`.push()`]ed will have.
/// The index that the next instruction [`.push()`](Self::push)ed will have.
pub(crate) fn here(&self) -> usize {
self.instructions.len()
}

View File

@ -444,7 +444,15 @@ pub(crate) fn compile_expression(
working_set,
builder,
&full_cell_path.head,
RedirectModes::capture_out(expr.span),
// Only capture the output if there is a tail. This was a bit of a headscratcher
// as the parser emits a FullCellPath with no tail for subexpressions in
// general, which shouldn't be captured any differently than they otherwise
// would be.
if !full_cell_path.tail.is_empty() {
RedirectModes::capture_out(expr.span)
} else {
redirect_modes
},
in_reg,
out_reg,
)?;

View File

@ -5,21 +5,21 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-explore"
edition = "2021"
license = "MIT"
name = "nu-explore"
version = "0.96.0"
version = "0.96.1"
[lib]
bench = false
[dependencies]
nu-protocol = { path = "../nu-protocol", version = "0.96.0" }
nu-parser = { path = "../nu-parser", version = "0.96.0" }
nu-color-config = { path = "../nu-color-config", version = "0.96.0" }
nu-engine = { path = "../nu-engine", version = "0.96.0" }
nu-table = { path = "../nu-table", version = "0.96.0" }
nu-json = { path = "../nu-json", version = "0.96.0" }
nu-utils = { path = "../nu-utils", version = "0.96.0" }
nu-protocol = { path = "../nu-protocol", version = "0.96.1" }
nu-parser = { path = "../nu-parser", version = "0.96.1" }
nu-color-config = { path = "../nu-color-config", version = "0.96.1" }
nu-engine = { path = "../nu-engine", version = "0.96.1" }
nu-table = { path = "../nu-table", version = "0.96.1" }
nu-json = { path = "../nu-json", version = "0.96.1" }
nu-utils = { path = "../nu-utils", version = "0.96.1" }
nu-ansi-term = { workspace = true }
nu-pretty-hex = { path = "../nu-pretty-hex", version = "0.96.0" }
nu-pretty-hex = { path = "../nu-pretty-hex", version = "0.96.1" }
anyhow = { workspace = true }
log = { workspace = true }

View File

@ -1,6 +1,6 @@
[package]
name = "nu-glob"
version = "0.96.0"
version = "0.96.1"
authors = ["The Nushell Project Developers", "The Rust Project Developers"]
license = "MIT/Apache-2.0"
description = """

View File

@ -8,7 +8,7 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-json"
edition = "2021"
license = "MIT"
name = "nu-json"
version = "0.96.0"
version = "0.96.1"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
@ -26,7 +26,7 @@ serde = { workspace = true }
serde_json = { workspace = true }
[dev-dependencies]
nu-test-support = { path = "../nu-test-support", version = "0.96.0" }
nu-path = { path = "../nu-path", version = "0.96.0" }
nu-test-support = { path = "../nu-test-support", version = "0.96.1" }
nu-path = { path = "../nu-path", version = "0.96.1" }
serde_json = "1.0"
fancy-regex = "0.13.0"

View File

@ -3,14 +3,14 @@ authors = ["The Nushell Project Developers"]
description = "Nushell's integrated LSP server"
repository = "https://github.com/nushell/nushell/tree/main/crates/nu-lsp"
name = "nu-lsp"
version = "0.96.0"
version = "0.96.1"
edition = "2021"
license = "MIT"
[dependencies]
nu-cli = { path = "../nu-cli", version = "0.96.0" }
nu-parser = { path = "../nu-parser", version = "0.96.0" }
nu-protocol = { path = "../nu-protocol", version = "0.96.0" }
nu-cli = { path = "../nu-cli", version = "0.96.1" }
nu-parser = { path = "../nu-parser", version = "0.96.1" }
nu-protocol = { path = "../nu-protocol", version = "0.96.1" }
reedline = { workspace = true }
@ -23,8 +23,8 @@ serde = { workspace = true }
serde_json = { workspace = true }
[dev-dependencies]
nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.96.0" }
nu-command = { path = "../nu-command", version = "0.96.0" }
nu-test-support = { path = "../nu-test-support", version = "0.96.0" }
nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.96.1" }
nu-command = { path = "../nu-command", version = "0.96.1" }
nu-test-support = { path = "../nu-test-support", version = "0.96.1" }
assert-json-diff = "2.0"

View File

@ -5,17 +5,17 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-parser"
edition = "2021"
license = "MIT"
name = "nu-parser"
version = "0.96.0"
version = "0.96.1"
exclude = ["/fuzz"]
[lib]
bench = false
[dependencies]
nu-engine = { path = "../nu-engine", version = "0.96.0" }
nu-path = { path = "../nu-path", version = "0.96.0" }
nu-plugin-engine = { path = "../nu-plugin-engine", optional = true, version = "0.96.0" }
nu-protocol = { path = "../nu-protocol", version = "0.96.0" }
nu-engine = { path = "../nu-engine", version = "0.96.1" }
nu-path = { path = "../nu-path", version = "0.96.1" }
nu-plugin-engine = { path = "../nu-plugin-engine", optional = true, version = "0.96.1" }
nu-protocol = { path = "../nu-protocol", version = "0.96.1" }
bytesize = { workspace = true }
chrono = { default-features = false, features = ['std'], workspace = true }

View File

@ -5,7 +5,7 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-path"
edition = "2021"
license = "MIT"
name = "nu-path"
version = "0.96.0"
version = "0.96.1"
exclude = ["/fuzz"]
[lib]

View File

@ -5,14 +5,14 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-plugin-core
edition = "2021"
license = "MIT"
name = "nu-plugin-core"
version = "0.96.0"
version = "0.96.1"
[lib]
bench = false
[dependencies]
nu-protocol = { path = "../nu-protocol", version = "0.96.0" }
nu-plugin-protocol = { path = "../nu-plugin-protocol", version = "0.96.0", default-features = false }
nu-protocol = { path = "../nu-protocol", version = "0.96.1" }
nu-plugin-protocol = { path = "../nu-plugin-protocol", version = "0.96.1", default-features = false }
rmp-serde = { workspace = true }
serde = { workspace = true }

View File

@ -122,11 +122,11 @@ impl CommunicationMode {
/// The result of [`CommunicationMode::serve()`], which acts as an intermediate stage for
/// communication modes that require some kind of socket binding to occur before the client process
/// can be started. Call [`.connect()`] once the client process has been started.
/// can be started. Call [`.connect()`](Self::connect) once the client process has been started.
///
/// The socket may be cleaned up on `Drop` if applicable.
pub enum PreparedServerCommunication {
/// Will take stdin and stdout from the process on [`.connect()`].
/// Will take stdin and stdout from the process on [`.connect()`](Self::connect).
Stdio,
/// Contains the listener to accept connections on. On Unix, the socket is unlinked on `Drop`.
#[cfg(feature = "local-socket")]

View File

@ -145,7 +145,7 @@ pub trait InterfaceManager {
/// Consume an input message.
///
/// When implementing, call [`.consume_stream_message()`] for any encapsulated
/// When implementing, call [`.consume_stream_message()`](Self::consume_stream_message) for any encapsulated
/// [`StreamMessage`]s received.
fn consume(&mut self, input: Self::Input) -> Result<(), ShellError>;

View File

@ -189,14 +189,14 @@ where
}
/// Check if the stream was dropped from the other end. Recommended to do this before calling
/// [`.write()`], especially in a loop.
/// [`.write()`](Self::write), especially in a loop.
pub fn is_dropped(&self) -> Result<bool, ShellError> {
self.signal.is_dropped()
}
/// Write a single piece of data to the stream.
///
/// Error if something failed with the write, or if [`.end()`] was already called
/// Error if something failed with the write, or if [`.end()`](Self::end) was already called
/// previously.
pub fn write(&mut self, data: impl Into<StreamData>) -> Result<(), ShellError> {
if !self.ended {
@ -228,7 +228,7 @@ where
}
/// Write a full iterator to the stream. Note that this doesn't end the stream, so you should
/// still call [`.end()`].
/// still call [`.end()`](Self::end).
///
/// If the stream is dropped from the other end, the iterator will not be fully consumed, and
/// writing will terminate.
@ -341,8 +341,8 @@ impl StreamWriterSignal {
}
/// Track that a message has been sent. Returns `Ok(true)` if more messages can be sent,
/// or `Ok(false)` if the high pressure mark has been reached and [`.wait_for_drain()`] should
/// be called to block.
/// or `Ok(false)` if the high pressure mark has been reached and
/// [`.wait_for_drain()`](Self::wait_for_drain) should be called to block.
pub fn notify_sent(&self) -> Result<bool, ShellError> {
let mut state = self.lock()?;
state.unacknowledged =

View File

@ -45,7 +45,7 @@ fn fail_if_poisoned<'a, T>(
}
impl<T: Clone + Send> WaitableMut<T> {
/// Create a new empty `WaitableMut`. Call [`.reader()`] to get [`Waitable`].
/// Create a new empty `WaitableMut`. Call [`.reader()`](Self::reader) to get [`Waitable`].
pub fn new() -> WaitableMut<T> {
WaitableMut {
shared: Arc::new(WaitableShared {

View File

@ -5,18 +5,18 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-plugin-engi
edition = "2021"
license = "MIT"
name = "nu-plugin-engine"
version = "0.96.0"
version = "0.96.1"
[lib]
bench = false
[dependencies]
nu-engine = { path = "../nu-engine", version = "0.96.0" }
nu-protocol = { path = "../nu-protocol", version = "0.96.0" }
nu-system = { path = "../nu-system", version = "0.96.0" }
nu-plugin-protocol = { path = "../nu-plugin-protocol", version = "0.96.0" }
nu-plugin-core = { path = "../nu-plugin-core", version = "0.96.0", default-features = false }
nu-utils = { path = "../nu-utils", version = "0.96.0" }
nu-engine = { path = "../nu-engine", version = "0.96.1" }
nu-protocol = { path = "../nu-protocol", version = "0.96.1" }
nu-system = { path = "../nu-system", version = "0.96.1" }
nu-plugin-protocol = { path = "../nu-plugin-protocol", version = "0.96.1" }
nu-plugin-core = { path = "../nu-plugin-core", version = "0.96.1", default-features = false }
nu-utils = { path = "../nu-utils", version = "0.96.1" }
serde = { workspace = true }
log = { workspace = true }

View File

@ -257,12 +257,9 @@ impl<'a> PluginExecutionContext for PluginExecutionCommandContext<'a> {
}
}
decl.run(
&self.engine_state,
stack,
&(&call_builder.finish()).into(),
input,
)
call_builder.with(stack, |stack, call| {
decl.run(&self.engine_state, stack, call, input)
})
}
fn boxed(&self) -> Box<dyn PluginExecutionContext + 'static> {

View File

@ -80,8 +80,8 @@ impl PluginGc {
///
/// The reason the plugin tells the GC rather than just stopping itself via `source` is that
/// it can't guarantee that the plugin currently pointed to by `source` is itself, but if the
/// GC is still running, it hasn't received [`.stop_tracking()`] yet, which means it should be
/// the right plugin.
/// GC is still running, it hasn't received [`.stop_tracking()`](Self::stop_tracking) yet, which
/// means it should be the right plugin.
pub fn exited(&self) {
let _ = self.sender.send(PluginGcMsg::Exited);
}

View File

@ -26,7 +26,7 @@ impl PluginSource {
/// Create a new fake source with a fake identity, for testing
///
/// Warning: [`.persistent()`] will always return an error.
/// Warning: [`.persistent()`](Self::persistent) will always return an error.
pub fn new_fake(name: &str) -> PluginSource {
PluginSource {
identity: PluginIdentity::new_fake(name).into(),

View File

@ -5,14 +5,14 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-plugin-prot
edition = "2021"
license = "MIT"
name = "nu-plugin-protocol"
version = "0.96.0"
version = "0.96.1"
[lib]
bench = false
[dependencies]
nu-protocol = { path = "../nu-protocol", version = "0.96.0", features = ["plugin"] }
nu-utils = { path = "../nu-utils", version = "0.96.0" }
nu-protocol = { path = "../nu-protocol", version = "0.96.1", features = ["plugin"] }
nu-utils = { path = "../nu-utils", version = "0.96.1" }
bincode = "1.3"
serde = { workspace = true, features = ["derive"] }

View File

@ -85,19 +85,19 @@ impl EvaluatedCall {
self
}
/// Builder variant of [`.add_positional()`].
/// Builder variant of [`.add_positional()`](Self::add_positional).
pub fn with_positional(mut self, value: Value) -> Self {
self.add_positional(value);
self
}
/// Builder variant of [`.add_named()`].
/// Builder variant of [`.add_named()`](Self::add_named).
pub fn with_named(mut self, name: Spanned<impl Into<String>>, value: Value) -> Self {
self.add_named(name, value);
self
}
/// Builder variant of [`.add_flag()`].
/// Builder variant of [`.add_flag()`](Self::add_flag).
pub fn with_flag(mut self, name: Spanned<impl Into<String>>) -> Self {
self.add_flag(name);
self

View File

@ -1,6 +1,6 @@
[package]
name = "nu-plugin-test-support"
version = "0.96.0"
version = "0.96.1"
edition = "2021"
license = "MIT"
description = "Testing support for Nushell plugins"
@ -12,14 +12,14 @@ bench = false
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
nu-engine = { path = "../nu-engine", version = "0.96.0", features = ["plugin"] }
nu-protocol = { path = "../nu-protocol", version = "0.96.0", features = ["plugin"] }
nu-parser = { path = "../nu-parser", version = "0.96.0", features = ["plugin"] }
nu-plugin = { path = "../nu-plugin", version = "0.96.0" }
nu-plugin-core = { path = "../nu-plugin-core", version = "0.96.0" }
nu-plugin-engine = { path = "../nu-plugin-engine", version = "0.96.0" }
nu-plugin-protocol = { path = "../nu-plugin-protocol", version = "0.96.0" }
nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.96.0" }
nu-engine = { path = "../nu-engine", version = "0.96.1", features = ["plugin"] }
nu-protocol = { path = "../nu-protocol", version = "0.96.1", features = ["plugin"] }
nu-parser = { path = "../nu-parser", version = "0.96.1", features = ["plugin"] }
nu-plugin = { path = "../nu-plugin", version = "0.96.1" }
nu-plugin-core = { path = "../nu-plugin-core", version = "0.96.1" }
nu-plugin-engine = { path = "../nu-plugin-engine", version = "0.96.1" }
nu-plugin-protocol = { path = "../nu-plugin-protocol", version = "0.96.1" }
nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.96.1" }
nu-ansi-term = { workspace = true }
similar = "2.5"

View File

@ -5,17 +5,17 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-plugin"
edition = "2021"
license = "MIT"
name = "nu-plugin"
version = "0.96.0"
version = "0.96.1"
[lib]
bench = false
[dependencies]
nu-engine = { path = "../nu-engine", version = "0.96.0" }
nu-protocol = { path = "../nu-protocol", version = "0.96.0" }
nu-plugin-protocol = { path = "../nu-plugin-protocol", version = "0.96.0" }
nu-plugin-core = { path = "../nu-plugin-core", version = "0.96.0", default-features = false }
nu-utils = { path = "../nu-utils", version = "0.96.0" }
nu-engine = { path = "../nu-engine", version = "0.96.1" }
nu-protocol = { path = "../nu-protocol", version = "0.96.1" }
nu-plugin-protocol = { path = "../nu-plugin-protocol", version = "0.96.1" }
nu-plugin-core = { path = "../nu-plugin-core", version = "0.96.1", default-features = false }
nu-utils = { path = "../nu-utils", version = "0.96.1" }
log = { workspace = true }
thiserror = "1.0"

View File

@ -75,8 +75,8 @@ use crate::{EngineInterface, EvaluatedCall, Plugin};
pub trait PluginCommand: Sync {
/// The type of plugin this command runs on.
///
/// Since [`.run()`] takes a reference to the plugin, it is necessary to define the type of
/// plugin that the command expects here.
/// Since [`.run()`](Self::run) takes a reference to the plugin, it is necessary to define the
/// type of plugin that the command expects here.
type Plugin: Plugin;
/// The name of the command from within Nu.
@ -96,9 +96,9 @@ pub trait PluginCommand: Sync {
/// Additional documentation for usage of the command.
///
/// This is optional - any arguments documented by [`.signature()`] will be shown in the help
/// page automatically. However, this can be useful for explaining things that would be too
/// brief to include in [`.usage()`] and may span multiple lines.
/// This is optional - any arguments documented by [`.signature()`](Self::signature) will be
/// shown in the help page automatically. However, this can be useful for explaining things that
/// would be too brief to include in [`.usage()`](Self::usage) and may span multiple lines.
fn extra_usage(&self) -> &str {
""
}

View File

@ -618,8 +618,9 @@ impl EngineInterface {
/// Get all environment variables from the engine.
///
/// Since this is quite a large map that has to be sent, prefer to use [`.get_env_var()`] if
/// the variables needed are known ahead of time and there are only a small number needed.
/// Since this is quite a large map that has to be sent, prefer to use
/// [`.get_env_var()`] (Self::get_env_var) if the variables needed are known ahead of time
/// and there are only a small number needed.
///
/// # Example
/// ```rust,no_run
@ -873,9 +874,9 @@ impl EngineInterface {
}
/// Ask the engine for the identifier for a declaration. If found, the result can then be passed
/// to [`.call_decl()`] to call other internal commands.
/// to [`.call_decl()`](Self::call_decl) to call other internal commands.
///
/// See [`.call_decl()`] for an example.
/// See [`.call_decl()`](Self::call_decl) for an example.
pub fn find_decl(&self, name: impl Into<String>) -> Result<Option<DeclId>, ShellError> {
let call = EngineCall::FindDecl(name.into());
@ -890,7 +891,7 @@ impl EngineInterface {
}
/// Ask the engine to call an internal command, using the declaration ID previously looked up
/// with [`.find_decl()`].
/// with [`.find_decl()`](Self::find_decl).
///
/// # Example
///
@ -1008,7 +1009,7 @@ impl Interface for EngineInterface {
/// Keeps the plugin in the foreground as long as it is alive.
///
/// Use [`.leave()`] to leave the foreground without ignoring the error.
/// Use [`.leave()`](Self::leave) to leave the foreground without ignoring the error.
pub struct ForegroundGuard(Option<EngineInterface>);
impl ForegroundGuard {

View File

@ -5,7 +5,7 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-pretty-hex"
edition = "2021"
license = "MIT"
name = "nu-pretty-hex"
version = "0.96.0"
version = "0.96.1"
[lib]
doctest = false

View File

@ -5,7 +5,7 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-protocol"
edition = "2021"
license = "MIT"
name = "nu-protocol"
version = "0.96.0"
version = "0.96.1"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
@ -13,10 +13,10 @@ version = "0.96.0"
bench = false
[dependencies]
nu-utils = { path = "../nu-utils", version = "0.96.0" }
nu-path = { path = "../nu-path", version = "0.96.0" }
nu-system = { path = "../nu-system", version = "0.96.0" }
nu-derive-value = { path = "../nu-derive-value", version = "0.96.0" }
nu-utils = { path = "../nu-utils", version = "0.96.1" }
nu-path = { path = "../nu-path", version = "0.96.1" }
nu-system = { path = "../nu-system", version = "0.96.1" }
nu-derive-value = { path = "../nu-derive-value", version = "0.96.1" }
brotli = { workspace = true, optional = true }
byte-unit = { version = "5.1", features = [ "serde" ] }
@ -53,7 +53,7 @@ plugin = [
serde_json = { workspace = true }
strum = "0.26"
strum_macros = "0.26"
nu-test-support = { path = "../nu-test-support", version = "0.96.0" }
nu-test-support = { path = "../nu-test-support", version = "0.96.1" }
pretty_assertions = { workspace = true }
rstest = { workspace = true }
tempfile = { workspace = true }

View File

@ -432,7 +432,17 @@ impl Expression {
Expr::Int(_) => {}
Expr::Float(_) => {}
Expr::Binary(_) => {}
Expr::Range(_) => {}
Expr::Range(range) => {
if let Some(from) = &mut range.from {
from.replace_in_variable(working_set, new_var_id);
}
if let Some(next) = &mut range.next {
next.replace_in_variable(working_set, new_var_id);
}
if let Some(to) = &mut range.to {
to.replace_in_variable(working_set, new_var_id);
}
}
Expr::Var(var_id) | Expr::VarDecl(var_id) => {
if *var_id == IN_VARIABLE_ID {
*var_id = new_var_id;

View File

@ -832,9 +832,9 @@ impl EngineState {
/// Optionally get a block by id, if it exists
///
/// Prefer to use [`.get_block()`] in most cases - `BlockId`s that don't exist are normally a
/// compiler error. This only exists to stop plugins from crashing the engine if they send us
/// something invalid.
/// Prefer to use [`.get_block()`](Self::get_block) in most cases - `BlockId`s that don't exist
/// are normally a compiler error. This only exists to stop plugins from crashing the engine if
/// they send us something invalid.
pub fn try_get_block(&self, block_id: BlockId) -> Option<&Arc<Block>> {
self.blocks.get(block_id)
}

View File

@ -51,7 +51,7 @@ pub struct Stack {
pub parent_stack: Option<Arc<Stack>>,
/// Variables that have been deleted (this is used to hide values from parent stack lookups)
pub parent_deletions: Vec<VarId>,
/// Locally updated config. Use [`.get_config()`] to access correctly.
/// Locally updated config. Use [`.get_config()`](Self::get_config) to access correctly.
pub config: Option<Arc<Config>>,
pub(crate) out_dest: StackOutDest,
}

View File

@ -37,7 +37,8 @@ pub struct LabeledError {
impl LabeledError {
/// Create a new plain [`LabeledError`] with the given message.
///
/// This is usually used builder-style with methods like [`.with_label()`] to build an error.
/// This is usually used builder-style with methods like [`.with_label()`](Self::with_label) to
/// build an error.
///
/// # Example
///

View File

@ -117,7 +117,8 @@ impl PipelineData {
/// Get a type that is representative of the `PipelineData`.
///
/// The type returned here makes no effort to collect a stream, so it may be a different type
/// than would be returned by [`Value::get_type()`] on the result of [`.into_value()`].
/// than would be returned by [`Value::get_type()`] on the result of
/// [`.into_value()`](Self::into_value).
///
/// Specifically, a `ListStream` results in [`list stream`](Type::ListStream) rather than
/// the fully complete [`list`](Type::List) type (which would require knowing the contents),

View File

@ -5,12 +5,12 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-std"
edition = "2021"
license = "MIT"
name = "nu-std"
version = "0.96.0"
version = "0.96.1"
[dependencies]
nu-parser = { version = "0.96.0", path = "../nu-parser" }
nu-protocol = { version = "0.96.0", path = "../nu-protocol" }
nu-engine = { version = "0.96.0", path = "../nu-engine" }
nu-parser = { version = "0.96.1", path = "../nu-parser" }
nu-protocol = { version = "0.96.1", path = "../nu-protocol" }
nu-engine = { version = "0.96.1", path = "../nu-engine" }
miette = { workspace = true, features = ["fancy-no-backtrace"] }
log = "0.4"

View File

@ -3,7 +3,7 @@ authors = ["The Nushell Project Developers", "procs creators"]
description = "Nushell system querying"
repository = "https://github.com/nushell/nushell/tree/main/crates/nu-system"
name = "nu-system"
version = "0.96.0"
version = "0.96.1"
edition = "2021"
license = "MIT"

View File

@ -105,10 +105,10 @@ impl Drop for ForegroundChild {
///
/// If there is already a foreground external process running, spawned with [`ForegroundChild`],
/// this expects the process ID to remain in the process group created by the [`ForegroundChild`]
/// for the lifetime of the guard, and keeps the terminal controlling process group set to that. If
/// there is no foreground external process running, this sets the foreground process group to the
/// plugin's process ID. The process group that is expected can be retrieved with [`.pgrp()`] if
/// different from the plugin process ID.
/// for the lifetime of the guard, and keeps the terminal controlling process group set to that.
/// If there is no foreground external process running, this sets the foreground process group to
/// the plugin's process ID. The process group that is expected can be retrieved with
/// [`.pgrp()`](Self::pgrp) if different from the plugin process ID.
///
/// ## Other systems
///

View File

@ -5,20 +5,20 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-table"
edition = "2021"
license = "MIT"
name = "nu-table"
version = "0.96.0"
version = "0.96.1"
[lib]
bench = false
[dependencies]
nu-protocol = { path = "../nu-protocol", version = "0.96.0" }
nu-utils = { path = "../nu-utils", version = "0.96.0" }
nu-engine = { path = "../nu-engine", version = "0.96.0" }
nu-color-config = { path = "../nu-color-config", version = "0.96.0" }
nu-protocol = { path = "../nu-protocol", version = "0.96.1" }
nu-utils = { path = "../nu-utils", version = "0.96.1" }
nu-engine = { path = "../nu-engine", version = "0.96.1" }
nu-color-config = { path = "../nu-color-config", version = "0.96.1" }
nu-ansi-term = { workspace = true }
once_cell = { workspace = true }
fancy-regex = { workspace = true }
tabled = { workspace = true, features = ["color"], default-features = false }
[dev-dependencies]
# nu-test-support = { path="../nu-test-support", version = "0.96.0" }
# nu-test-support = { path="../nu-test-support", version = "0.96.1" }

View File

@ -5,12 +5,12 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-term-grid"
edition = "2021"
license = "MIT"
name = "nu-term-grid"
version = "0.96.0"
version = "0.96.1"
[lib]
bench = false
[dependencies]
nu-utils = { path = "../nu-utils", version = "0.96.0" }
nu-utils = { path = "../nu-utils", version = "0.96.1" }
unicode-width = { workspace = true }

View File

@ -5,16 +5,16 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu-test-suppor
edition = "2021"
license = "MIT"
name = "nu-test-support"
version = "0.96.0"
version = "0.96.1"
[lib]
doctest = false
bench = false
[dependencies]
nu-path = { path = "../nu-path", version = "0.96.0" }
nu-glob = { path = "../nu-glob", version = "0.96.0" }
nu-utils = { path = "../nu-utils", version = "0.96.0" }
nu-path = { path = "../nu-path", version = "0.96.1" }
nu-glob = { path = "../nu-glob", version = "0.96.1" }
nu-utils = { path = "../nu-utils", version = "0.96.1" }
num-format = { workspace = true }
which = { workspace = true }

View File

@ -5,7 +5,7 @@ edition = "2021"
license = "MIT"
name = "nu-utils"
repository = "https://github.com/nushell/nushell/tree/main/crates/nu-utils"
version = "0.96.0"
version = "0.96.1"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[[bin]]

View File

@ -1,6 +1,6 @@
# Nushell Config File
#
# version = "0.96.0"
# version = "0.96.1"
# For more information on defining custom themes, see
# https://www.nushell.sh/book/coloring_and_theming.html

View File

@ -1,6 +1,6 @@
# Nushell Environment Config File
#
# version = "0.96.0"
# version = "0.96.1"
def create_left_prompt [] {
let dir = match (do --ignore-shell-errors { $env.PWD | path relative-to $nu.home-path }) {

View File

@ -10,10 +10,10 @@ name = "nu_plugin_custom_values"
bench = false
[dependencies]
nu-plugin = { path = "../nu-plugin", version = "0.96.0" }
nu-protocol = { path = "../nu-protocol", version = "0.96.0", features = ["plugin"] }
nu-plugin = { path = "../nu-plugin", version = "0.96.1" }
nu-protocol = { path = "../nu-protocol", version = "0.96.1", features = ["plugin"] }
serde = { workspace = true, default-features = false }
typetag = "0.2"
[dev-dependencies]
nu-plugin-test-support = { path = "../nu-plugin-test-support", version = "0.96.0" }
nu-plugin-test-support = { path = "../nu-plugin-test-support", version = "0.96.1" }

View File

@ -5,7 +5,7 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu_plugin_exam
edition = "2021"
license = "MIT"
name = "nu_plugin_example"
version = "0.96.0"
version = "0.96.1"
[[bin]]
name = "nu_plugin_example"
@ -15,9 +15,9 @@ bench = false
bench = false
[dependencies]
nu-plugin = { path = "../nu-plugin", version = "0.96.0" }
nu-protocol = { path = "../nu-protocol", version = "0.96.0", features = ["plugin"] }
nu-plugin = { path = "../nu-plugin", version = "0.96.1" }
nu-protocol = { path = "../nu-protocol", version = "0.96.1", features = ["plugin"] }
[dev-dependencies]
nu-plugin-test-support = { path = "../nu-plugin-test-support", version = "0.96.0" }
nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.96.0" }
nu-plugin-test-support = { path = "../nu-plugin-test-support", version = "0.96.1" }
nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.96.1" }

View File

@ -5,12 +5,12 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu_plugin_form
edition = "2021"
license = "MIT"
name = "nu_plugin_formats"
version = "0.96.0"
version = "0.96.1"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
nu-plugin = { path = "../nu-plugin", version = "0.96.0" }
nu-protocol = { path = "../nu-protocol", version = "0.96.0", features = ["plugin"] }
nu-plugin = { path = "../nu-plugin", version = "0.96.1" }
nu-protocol = { path = "../nu-protocol", version = "0.96.1", features = ["plugin"] }
indexmap = { workspace = true }
eml-parser = "0.1"
@ -18,4 +18,4 @@ ical = "0.11"
rust-ini = "0.21.0"
[dev-dependencies]
nu-plugin-test-support = { path = "../nu-plugin-test-support", version = "0.96.0" }
nu-plugin-test-support = { path = "../nu-plugin-test-support", version = "0.96.1" }

View File

@ -5,7 +5,7 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu_plugin_gsta
edition = "2021"
license = "MIT"
name = "nu_plugin_gstat"
version = "0.96.0"
version = "0.96.1"
[lib]
doctest = false
@ -16,7 +16,7 @@ name = "nu_plugin_gstat"
bench = false
[dependencies]
nu-plugin = { path = "../nu-plugin", version = "0.96.0" }
nu-protocol = { path = "../nu-protocol", version = "0.96.0" }
nu-plugin = { path = "../nu-plugin", version = "0.96.1" }
nu-protocol = { path = "../nu-protocol", version = "0.96.1" }
git2 = "0.19"

View File

@ -5,7 +5,7 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu_plugin_inc"
edition = "2021"
license = "MIT"
name = "nu_plugin_inc"
version = "0.96.0"
version = "0.96.1"
[lib]
doctest = false
@ -16,7 +16,7 @@ name = "nu_plugin_inc"
bench = false
[dependencies]
nu-plugin = { path = "../nu-plugin", version = "0.96.0" }
nu-protocol = { path = "../nu-protocol", version = "0.96.0", features = ["plugin"] }
nu-plugin = { path = "../nu-plugin", version = "0.96.1" }
nu-protocol = { path = "../nu-protocol", version = "0.96.1", features = ["plugin"] }
semver = "1.0"

View File

@ -6,7 +6,7 @@
# it also allows us to test the plugin interface with something manually implemented in a scripting
# language without adding any extra dependencies to our tests.
const NUSHELL_VERSION = "0.96.0"
const NUSHELL_VERSION = "0.96.1"
const PLUGIN_VERSION = "0.1.0" # bump if you change commands!
def main [--stdio] {

View File

@ -5,7 +5,7 @@ edition = "2021"
license = "MIT"
name = "nu_plugin_polars"
repository = "https://github.com/nushell/nushell/tree/main/crates/nu_plugin_polars"
version = "0.96.0"
version = "0.96.1"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
@ -17,10 +17,10 @@ bench = false
bench = false
[dependencies]
nu-protocol = { path = "../nu-protocol", version = "0.96.0" }
nu-plugin = { path = "../nu-plugin", version = "0.96.0" }
nu-path = { path = "../nu-path", version = "0.96.0" }
nu-utils = { path = "../nu-utils", version = "0.96.0" }
nu-protocol = { path = "../nu-protocol", version = "0.96.1" }
nu-plugin = { path = "../nu-plugin", version = "0.96.1" }
nu-path = { path = "../nu-path", version = "0.96.1" }
nu-utils = { path = "../nu-utils", version = "0.96.1" }
# Potential dependencies for extras
chrono = { workspace = true, features = ["std", "unstable-locales"], default-features = false }
@ -76,9 +76,9 @@ optional = false
version = "0.41"
[dev-dependencies]
nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.96.0" }
nu-engine = { path = "../nu-engine", version = "0.96.0" }
nu-parser = { path = "../nu-parser", version = "0.96.0" }
nu-command = { path = "../nu-command", version = "0.96.0" }
nu-plugin-test-support = { path = "../nu-plugin-test-support", version = "0.96.0" }
nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.96.1" }
nu-engine = { path = "../nu-engine", version = "0.96.1" }
nu-parser = { path = "../nu-parser", version = "0.96.1" }
nu-command = { path = "../nu-command", version = "0.96.1" }
nu-plugin-test-support = { path = "../nu-plugin-test-support", version = "0.96.1" }
tempfile.workspace = true

View File

@ -27,7 +27,7 @@ import sys
import json
NUSHELL_VERSION = "0.96.0"
NUSHELL_VERSION = "0.96.1"
PLUGIN_VERSION = "0.1.0" # bump if you change commands!

View File

@ -5,7 +5,7 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu_plugin_quer
edition = "2021"
license = "MIT"
name = "nu_plugin_query"
version = "0.96.0"
version = "0.96.1"
[lib]
doctest = false
@ -16,8 +16,8 @@ name = "nu_plugin_query"
bench = false
[dependencies]
nu-plugin = { path = "../nu-plugin", version = "0.96.0" }
nu-protocol = { path = "../nu-protocol", version = "0.96.0" }
nu-plugin = { path = "../nu-plugin", version = "0.96.1" }
nu-protocol = { path = "../nu-protocol", version = "0.96.1" }
gjson = "0.8"
scraper = { default-features = false, version = "0.19" }

View File

@ -81,7 +81,7 @@ pub fn web_examples() -> Vec<Example<'static>> {
result: None
},
Example {
example: "http get https://www.nushell.sh | query web --query 'h2, h2 + p' | each {str join} | group 2 | each {rotate --ccw tagline description} | flatten",
example: "http get https://www.nushell.sh | query web --query 'h2, h2 + p' | each {str join} | chunks 2 | each {rotate --ccw tagline description} | flatten",
description: "Pass multiple css selectors to extract several elements within single query, group the query results together and rotate them to create a table",
result: None,
},

View File

@ -5,7 +5,7 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nu_plugin_stre
edition = "2021"
license = "MIT"
name = "nu_plugin_stress_internals"
version = "0.96.0"
version = "0.96.1"
[[bin]]
name = "nu_plugin_stress_internals"

View File

@ -5,14 +5,14 @@ repository = "https://github.com/nushell/nushell/tree/main/crates/nuon"
edition = "2021"
license = "MIT"
name = "nuon"
version = "0.96.0"
version = "0.96.1"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
nu-parser = { path = "../nu-parser", version = "0.96.0" }
nu-protocol = { path = "../nu-protocol", version = "0.96.0" }
nu-engine = { path = "../nu-engine", version = "0.96.0" }
nu-parser = { path = "../nu-parser", version = "0.96.1" }
nu-protocol = { path = "../nu-protocol", version = "0.96.1" }
nu-engine = { path = "../nu-engine", version = "0.96.1" }
once_cell = { workspace = true }
fancy-regex = { workspace = true }

View File

@ -75,6 +75,16 @@ fn in_used_twice_and_also_in_pipeline() -> TestResult {
)
}
// #13441
#[test]
fn in_used_in_range_from() -> TestResult {
run_test(r#"6 | $in..10 | math sum"#, "40")
}
#[test]
fn in_used_in_range_to() -> TestResult {
run_test(r#"6 | 3..$in | math sum"#, "18")
}
#[test]
fn help_works_with_missing_requirements() -> TestResult {
run_test(r#"each --help | lines | length"#, "72")

View File

@ -209,6 +209,12 @@ fn run_glob_if_pass_variable_to_external() {
})
}
#[test]
fn subexpression_does_not_implicitly_capture() {
let actual = nu!("(nu --testbin cococo); null");
assert_eq!(actual.out, "cococo");
}
mod it_evaluation {
use super::nu;
use nu_test_support::fs::Stub::{EmptyFile, FileWithContent, FileWithContentToBeTrimmed};