forked from extern/nushell
f97443aff6
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
43 lines
1.3 KiB
TOML
43 lines
1.3 KiB
TOML
[package]
|
|
authors = ["The Nushell Project Developers"]
|
|
description = "Nushell's extra commands that are not part of the 1.0 api standard."
|
|
edition = "2021"
|
|
license = "MIT"
|
|
name = "nu-cmd-extra"
|
|
repository = "https://github.com/nushell/nushell/tree/main/crates/nu-cmd-extra"
|
|
version = "0.85.1"
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[lib]
|
|
bench = false
|
|
|
|
[dependencies]
|
|
nu-engine = { path = "../nu-engine", version = "0.85.1" }
|
|
nu-parser = { path = "../nu-parser", version = "0.85.1" }
|
|
nu-protocol = { path = "../nu-protocol", version = "0.85.1" }
|
|
nu-cmd-base = { path = "../nu-cmd-base", version = "0.85.1" }
|
|
nu-utils = { path = "../nu-utils", version = "0.85.1" }
|
|
|
|
# Potential dependencies for extras
|
|
heck = "0.4.1"
|
|
num-traits = "0.2"
|
|
ahash = "0.8.3"
|
|
nu-ansi-term = "0.49.0"
|
|
fancy-regex = "0.11.0"
|
|
rust-embed = "8.0.0"
|
|
serde = "1.0.164"
|
|
nu-pretty-hex = { version = "0.85.1", path = "../nu-pretty-hex" }
|
|
nu-json = { version = "0.85.1", path = "../nu-json" }
|
|
serde_urlencoded = "0.7.1"
|
|
htmlescape = "0.3.1"
|
|
|
|
[features]
|
|
extra = ["default"]
|
|
default = []
|
|
|
|
[dev-dependencies]
|
|
nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.85.1" }
|
|
nu-command = { path = "../nu-command", version = "0.85.1" }
|
|
nu-test-support = { path = "../nu-test-support", version = "0.85.1" }
|