Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace row conditions with closures in commands #7428

Merged
merged 8 commits into from Dec 10, 2022

Conversation

kubouch
Copy link
Contributor

@kubouch kubouch commented Dec 10, 2022

Description

This PR changes some commands that previously accepted row conditions (like $it > 5) as parameter to accept closures instead. The reasons are:
a) The commands would need to move into parser keywords in the future while they feel more like commands to be implemented in Nushell code as a part of standard library.
b) In scripts, it is useful to store the predicate condition in a variable which you can't do with row conditions.
c) These commands are not used that often to benefit enough from the shorter row condition syntax

User-Facing Changes

The following commands now accept closure instead of a row condition:

  • take until
  • take while
  • skip until
  • skip while
  • any
  • all

This is a part of an effort to move away from shape-directed parsing. Related PR: #7365

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 to check that you're using the standard code style
  • cargo test --workspace to check that all tests pass

After Submitting

If your PR had any user-facing changes, update the documentation after the PR is merged, if necessary. This will help us keep the docs up to date.

@kubouch kubouch merged commit 2bacc29 into nushell:main Dec 10, 2022
@sholderbach sholderbach added the pr:breaking-change This PR implies a change affecting users and has to be noted in the release notes label Dec 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pr:breaking-change This PR implies a change affecting users and has to be noted in the release notes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants