nushell/crates
quaternary f97443aff6
Use heck for string casing (again) (#10680)
Re-fixes #3674, if that is seen as desirable to do.

# Description
This PR changes the implementation of the `--features=extra` string
casing commands from Inflector to `heck`, as in PR #4081. This PR landed
a long time ago, but somewhere along the way (i can't find it) the
implementation ended up being switched back to Inflector.

# User-Facing Changes
Inflector and `heck` implement casing differently, so all of the
commands have different behavior around edge cases (consecutive
capitals, interspersed numbers and letters, etc)

### Before
```nu
G:/Dev/nu-itself/nushell> [UserID ABCdefGHI foo123bar] | str camel-case
╭───┬───────────╮
│ 0 │ userID    │
│ 1 │ abcdefGHI │
│ 2 │ foo123Bar │
╰───┴───────────╯
G:/Dev/nu-itself/nushell> [UserID ABCdefGHI foo123bar] | str snake-case
╭───┬─────────────╮
│ 0 │ user_id     │
│ 1 │ ab_cdef_ghi │
│ 2 │ foo_12_3bar │
╰───┴─────────────╯
```

### After
```nu
G:/Dev/nu-itself/nushell> [UserID ABCdefGHI foo123bar] | str camel-case
╭───┬───────────╮
│ 0 │ userId    │
│ 1 │ abCdefGhi │
│ 2 │ foo123bar │
╰───┴───────────╯
G:/Dev/nu-itself/nushell> [UserID ABCdefGHI foo123bar] | str snake-case
╭───┬─────────────╮
│ 0 │ user_id     │
│ 1 │ ab_cdef_ghi │
│ 2 │ foo123bar   │
╰───┴─────────────╯
```

# Tests + Formatting

The existing string casing tests pass... because none of them relied on
any of these edge cases
2023-10-13 12:52:35 +02:00
..
nu_plugin_custom_values Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu_plugin_example Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu_plugin_formats Correct line folding in from ics/from vcf (#10577) 2023-10-03 19:11:16 +02:00
nu_plugin_gstat Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu_plugin_inc Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu_plugin_python remove vectorize_over_list from python plugin (#9905) 2023-08-03 16:46:48 +02:00
nu_plugin_query Add themes to help command when available #10318 (#10623) 2023-10-10 07:40:05 -05:00
nu-cli Add themes to help command when available #10318 (#10623) 2023-10-10 07:40:05 -05:00
nu-cmd-base Fix editor config for reedline and config nu/env (#10535) 2023-09-29 16:36:03 +02:00
nu-cmd-dataframe Update polars to 0.33 (#10672) 2023-10-11 21:28:18 +02:00
nu-cmd-extra Use heck for string casing (again) (#10680) 2023-10-13 12:52:35 +02:00
nu-cmd-lang Bump shadow-rs from 0.23.0 to 0.24.1 (#10655) 2023-10-10 10:48:51 +00:00
nu-color-config fix magenta_reverse and friends (#10491) 2023-09-24 14:43:17 -05:00
nu-command Fix output types of math commands to be narrower (#9740) 2023-10-11 21:26:35 +02:00
nu-engine Add themes to help command when available #10318 (#10623) 2023-10-10 07:40:05 -05:00
nu-explore nu-explore: Try to fix a truncation issue in expand view (#10580) 2023-10-07 06:58:26 -05:00
nu-glob fix clippy (#10659) 2023-10-10 03:31:15 +13:00
nu-json Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu-parser Relax type-check of key-less table/record (#10629) 2023-10-08 13:26:36 +02:00
nu-path Fix tilde-expansion for multi-byte unicode chars (#10434) 2023-09-21 04:04:28 +12:00
nu-plugin Add themes to help command when available #10318 (#10623) 2023-10-10 07:40:05 -05:00
nu-pretty-hex Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu-protocol change Type::Float => SyntaxShape::Number to SyntaxShape::Float (#10689) 2023-10-11 12:27:09 -05:00
nu-std add Ellie to the standard library (#10686) 2023-10-11 11:36:16 -05:00
nu-system fix clippy (#10659) 2023-10-10 03:31:15 +13:00
nu-table Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu-term-grid Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu-test-support fix clippy (#10659) 2023-10-10 03:31:15 +13:00
nu-utils Remove cd w/ abbreviations (#10588) 2023-10-03 10:51:46 +13: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.