nushell/crates
JustForFun88 55c3fc9141
Improve keybinding parsing for Unicode support (#14020)
# Description

This pull request enhances the `add_parsed_keybinding` function to
provide greater flexibility in specifying keycodes for keybindings in
Nushell. Previously, the function only supported specifying keycodes
directly through character notation (e.g., `char_e` for the character
`e`). This limited users to a small set of keybindings, especially in
scenarios where specific non-English characters were needed.

With this new version, users can also specify characters using their
Unicode codes, such as `char_u003B` for the semicolon (`;`), providing a
more flexible approach to customization, for example like this:

```nushell
{
    name: move_to_line_end_or_take_history_hint
    modifier: shift
    keycode: char_u003B # char_;
    mode: vi_normal
    event: {
        until: [
            { send: historyhintcomplete }
            { edit: movetolineend }
        ]
    }
}
```

# User-Facing Changes

Added support for specifying keycodes using Unicode codes, e.g.,
char_u002C (comma - `,`):

```nushell
{
    name: <command_name>, # name of the command
    modifier: none,       # key modifier
    keycode: char_u002C,  # Unicode code for the comma (',')
    mode: vi_normal,      # mode in which this binding should work
    event: {
        send: <action>    # action to be performed
    }
}
```
2024-10-08 14:42:15 +02:00
..
nu_plugin_custom_values Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu_plugin_example Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu_plugin_formats Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu_plugin_gstat Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu_plugin_inc Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu_plugin_nu_example Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu_plugin_polars polars into-df struct fix (#13977) 2024-10-02 05:59:14 -05:00
nu_plugin_python Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu_plugin_query Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu_plugin_stress_internals Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu-cli Improve keybinding parsing for Unicode support (#14020) 2024-10-08 14:42:15 +02:00
nu-cmd-base Make get_env_var return a reference to a Value (#13987) 2024-10-02 13:05:48 +02:00
nu-cmd-extra Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu-cmd-lang Fix example for hide-env (#14013) 2024-10-06 08:50:11 -05:00
nu-cmd-plugin Make get_env_var return a reference to a Value (#13987) 2024-10-02 13:05:48 +02:00
nu-color-config Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu-command Replace the old encode base64 and decode base64 with new-base64 commands (#14018) 2024-10-08 11:01:43 +08:00
nu-derive-value Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu-engine Remove superfluous separator when there's no flag description/comment (#14007) 2024-10-05 15:19:26 +02:00
nu-explore Make get_env_var return a reference to a Value (#13987) 2024-10-02 13:05:48 +02:00
nu-glob Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu-json Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu-lsp Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu-parser allow bools to be type checked with each other (#13968) 2024-09-30 19:18:07 -05:00
nu-path Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu-plugin Replace raw usize IDs with new types (#13832) 2024-09-30 13:20:15 +02:00
nu-plugin-core Replace raw usize IDs with new types (#13832) 2024-09-30 13:20:15 +02:00
nu-plugin-engine Make get_env_var return a reference to a Value (#13987) 2024-10-02 13:05:48 +02:00
nu-plugin-protocol Replace raw usize IDs with new types (#13832) 2024-09-30 13:20:15 +02:00
nu-plugin-test-support Fix try not working with let, etc. (#13885) 2024-09-23 06:44:25 -05:00
nu-pretty-hex Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu-protocol Set proc/env cwd to engine_state value (#14005) 2024-10-05 20:42:44 +03:00
nu-std Load env when importing with use std * (#14012) 2024-10-07 09:34:47 +03:00
nu-system Fix handling of stopped TUI applications on unix (#13741) 2024-09-24 06:44:58 -05:00
nu-table nu-table/ Fix footer truncation in case of head_on_border (#13998) 2024-10-04 06:44:59 -05:00
nu-term-grid Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu-test-support Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
nu-utils Consistent default key bindings for ide_completion_menu (#13955) 2024-10-04 06:54:37 -05:00
nuon Replace raw usize IDs with new types (#13832) 2024-09-30 13:20:15 +02: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.