nushell/crates
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
..
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 Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12: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 Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu-cli Fix editor config for reedline and config nu/env (#10535) 2023-09-29 16:36:03 +02: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 Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu-cmd-extra Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu-cmd-lang Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu-color-config fix magenta_reverse and friends (#10491) 2023-09-24 14:43:17 -05:00
nu-command Making open case-insensitive to file extensions (#10451) 2023-09-29 17:20:59 +02:00
nu-engine remove the $nothing variable (#10478) 2023-09-26 18:49:28 +02:00
nu-explore explore: highlight selected cell using background colour instead of cursor (#10533) 2023-09-28 20:17:56 -05:00
nu-glob Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu-json Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu-parser Docstring some intricacies around SyntaxShape (#10544) 2023-09-29 16:35:22 +02:00
nu-path Fix tilde-expansion for multi-byte unicode chars (#10434) 2023-09-21 04:04:28 +12:00
nu-plugin Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu-pretty-hex Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12:00
nu-protocol Fix editor config for reedline and config nu/env (#10535) 2023-09-29 16:36:03 +02:00
nu-std std dt datetime-diff: fix uninitialized field ref when borrowing (#10466) 2023-09-24 10:53:56 +02:00
nu-system Bump to 0.85.1 development version (#10431) 2023-09-20 18:38:42 +12: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 Simplify nu! test macros. (#10403) 2023-09-21 20:11:56 +02:00
nu-utils Fix Default Prompt Tilde Insertion Logic (#10539) 2023-09-29 16:40:51 +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.