nushell/crates/nu-command/src
poketch 16453b6986
Making open case-insensitive to file extensions (#10451)
# Description

Closes #10441 

Uses `String::to_lowercase()` when the file's extension `ext` is parsed
to allow `from_decl(format!("from {ext}"))` to return the desired output
regardless of extension case.

It doesn't work with sqlite files since those are handled earlier in the
parsing but I think is good- since there's no standard file extension
used by sqlite so a user will likely want case sensitivity in that case.

This also has the (possibly undesired) effect of making `open`
completely case insensitive, e.g. `open foo.JSON` will work on a file
named `foo.json` and vice versa. This is good on Windows as it treats
`foo.json` and `foo.JSON` as the same file, but may not be the desired
behaviour on Unix.

If this behaviour is undesired I assume it would be fixed with a
`#[cfg(not(unix))]` attribute on the `to_lowercase()` operation but that
produces slightly "uglier" code that I didn't wish to submit unless
necessary. 

old behaviour:

![image](https://github.com/nushell/nushell/assets/79598494/261df577-e377-44ac-bef3-f6384bceaeb5)

new behaviour: 

![image](https://github.com/nushell/nushell/assets/79598494/04271740-a46f-4613-a3a6-1e220ef7f829)


# User-Facing Changes

`open` will now present a table when `open`-ing files with captitalized
extensions rather than the file's raw data

# Tests + Formatting

new test: `parses_file_with_uppercase_extension` which tests the desired
behaviour

---------

Co-authored-by: Stefan Holderbach <sholderbach@users.noreply.github.com>
2023-09-29 17:20:59 +02:00
..
bytes Move Value to helpers, separate span call (#10121) 2023-09-03 07:27:29 -07:00
charting Move Value to helpers, separate span call (#10121) 2023-09-03 07:27:29 -07:00
conversions new command: into value (#10427) 2023-09-20 12:57:58 -05:00
database Move Value to helpers, separate span call (#10121) 2023-09-03 07:27:29 -07:00
date Move Value to helpers, separate span call (#10121) 2023-09-03 07:27:29 -07:00
debug Invert &Options to Option<&T> (#10315) 2023-09-13 07:00:58 +08:00
env Fix editor config for reedline and config nu/env (#10535) 2023-09-29 16:36:03 +02:00
experimental Add functions for each Value case (#9736) 2023-07-21 08:20:33 -05:00
filesystem Making open case-insensitive to file extensions (#10451) 2023-09-29 17:20:59 +02:00
filters Improve select row perf for large N (#10355) 2023-09-21 23:51:13 +02:00
formats Invert &Options to Option<&T> (#10315) 2023-09-13 07:00:58 +08:00
generators Move Value to helpers, separate span call (#10121) 2023-09-03 07:27:29 -07:00
hash Move Value to helpers, separate span call (#10121) 2023-09-03 07:27:29 -07:00
help Move Value to helpers, separate span call (#10121) 2023-09-03 07:27:29 -07:00
math Move Value to helpers, separate span call (#10121) 2023-09-03 07:27:29 -07:00
misc REFACTOR: move source out of deprecated commands (#9060) 2023-05-04 00:02:03 +02:00
network Add support for HTTP proxy in network commands (#10401) 2023-09-27 15:43:34 +08:00
path Move Value to helpers, separate span call (#10121) 2023-09-03 07:27:29 -07:00
platform Bump dialoguer to 0.11.0 (#10510) 2023-09-26 18:00:16 +02:00
random Rename random integer to random int (#10520) 2023-09-28 11:47:05 +02:00
removed Rename misused "deprecation" to removal (#10000) 2023-08-15 07:17:31 +12:00
shells Fix usage for the exit command. (#9450) 2023-06-16 10:09:02 +02:00
strings Remove str replace --string after deprecation (#10064) 2023-09-19 15:54:20 +02:00
system Ps: add cwd column on linux and macos (#10347) 2023-09-14 08:10:15 -05:00
viewers nu-table: Add table option --abbreviated (#10399) 2023-09-20 12:59:08 -05:00
default_context.rs Rename random integer to random int (#10520) 2023-09-28 11:47:05 +02:00
example_test.rs enable/update some example tests so they work again (#10058) 2023-08-19 09:06:59 -05:00
lib.rs Move eval_hook to nu-cmd-base (#10146) 2023-08-29 23:46:50 +02:00
progress_bar.rs cp progress bar implementation (#8012) 2023-02-22 11:57:38 -08:00
sort_utils.rs Use slices directly instead of &Vec (#10328) 2023-09-12 11:38:20 +08:00