nushell/crates
Antoine Stevan fedd879b2e
support tab completion cycling (#10199)
should close https://github.com/nushell/nushell/issues/7202

# Description
i have been annoyed enough by this missing feature, so let's add that to
Nushell without requiring any user configuration 😏

# User-Facing Changes
this PR should allow tab completion cycling everytime, without requiring
the user to use the default config files or add the following
keybindings to their config
```nushell
    {
        name: completion_menu
        modifier: none
        keycode: tab
        mode: [emacs vi_normal vi_insert]
        event: {
            until: [
                { send: menu name: completion_menu }
                { send: menunext }
                { edit: complete }
            ]
        }
    }
```

### 🧪 try it out
from the root of the repo, one can try `<tab>` in each of the following
cases:
- `cargo run -- -n` to load Nushell without any config
- `cargo run -- --config
crates/nu-utils/src/sample_config/default_config.nu --env-config
crates/nu-utils/src/sample_config/default_env.nu` to load the default
configuration
- `cargo run` to load the user configuration

## before
- `<tab>`, `ls <tab>` and `str <tab>` only work with the second `cargo
run`, i.e. when loading the default config files

## after
- `<tab>` should cycle through the available commands
- `ls <tab>` should cycle through the available files and directories
- `str <tab>` should cycle the subcommands of `str`

in all three cases

# Tests + Formatting

# After submitting
2023-09-03 19:19:39 -05:00
..
nu_plugin_custom_values Move Value to helpers, separate span call (#10121) 2023-09-03 07:27:29 -07:00
nu_plugin_example Move Value to helpers, separate span call (#10121) 2023-09-03 07:27:29 -07:00
nu_plugin_formats Move Value to helpers, separate span call (#10121) 2023-09-03 07:27:29 -07:00
nu_plugin_gstat Move Value to helpers, separate span call (#10121) 2023-09-03 07:27:29 -07:00
nu_plugin_inc Move Value to helpers, separate span call (#10121) 2023-09-03 07:27:29 -07:00
nu_plugin_python remove vectorize_over_list from python plugin (#9905) 2023-08-03 16:46:48 +02:00
nu_plugin_query Move Value to helpers, separate span call (#10121) 2023-09-03 07:27:29 -07:00
nu-cli support tab completion cycling (#10199) 2023-09-03 19:19:39 -05:00
nu-cmd-base Move Value to helpers, separate span call (#10121) 2023-09-03 07:27:29 -07:00
nu-cmd-dataframe Move Value to helpers, separate span call (#10121) 2023-09-03 07:27:29 -07:00
nu-cmd-extra Move Value to helpers, separate span call (#10121) 2023-09-03 07:27:29 -07:00
nu-cmd-lang Move Value to helpers, separate span call (#10121) 2023-09-03 07:27:29 -07:00
nu-color-config Move Value to helpers, separate span call (#10121) 2023-09-03 07:27:29 -07:00
nu-command Move Value to helpers, separate span call (#10121) 2023-09-03 07:27:29 -07:00
nu-engine Move Value to helpers, separate span call (#10121) 2023-09-03 07:27:29 -07:00
nu-explore Move Value to helpers, separate span call (#10121) 2023-09-03 07:27:29 -07:00
nu-glob bump nushell to dev version 0.84.1 (#10101) 2023-08-23 15:23:27 -05:00
nu-json bump nushell to dev version 0.84.1 (#10101) 2023-08-23 15:23:27 -05:00
nu-parser Move Value to helpers, separate span call (#10121) 2023-09-03 07:27:29 -07:00
nu-path Support Termux (#10013) 2023-08-28 09:53:25 +03:00
nu-plugin Move Value to helpers, separate span call (#10121) 2023-09-03 07:27:29 -07:00
nu-pretty-hex bump nushell to dev version 0.84.1 (#10101) 2023-08-23 15:23:27 -05:00
nu-protocol add plugin path when there are no signatures (#10201) 2023-09-03 19:19:04 -05:00
nu-std bump nushell to dev version 0.84.1 (#10101) 2023-08-23 15:23:27 -05:00
nu-system Make $nu constant (#10160) 2023-09-01 09:18:55 +03:00
nu-table Move Value to helpers, separate span call (#10121) 2023-09-03 07:27:29 -07:00
nu-term-grid bump nushell to dev version 0.84.1 (#10101) 2023-08-23 15:23:27 -05:00
nu-test-support bump nushell to dev version 0.84.1 (#10101) 2023-08-23 15:23:27 -05:00
nu-utils support tab completion cycling (#10199) 2023-09-03 19:19:39 -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.