nushell/crates
Piotr Kufel bcb7ef48b6
Reduce duplication in history path construction (#13475)
# Description
Currently there is a bit of chaos regarding construction of history file
paths. Various pieces of code across a number of crates reimplement the
same/similar logic:
- There is `get_history_path`, but it requires a directory parameter (it
really just joins it with a file name).
- Some places use a const for the directory parameter, others use a
string literal - in all cases the value seems to be `"nushell"`.
- Some places assume the `"nushell"` value, other plumb it down from
close to the top of the call stack.
- Some places use a constant for history file names while others assume
it.

This PR tries to make it so that the history/config path format is
defined in a single places and so dependencies on it are easier to
follow:
- It removes `get_history_path` and adds a `file_path` method to
`HistoryConfig` instead (an extra motivation being, this is a convenient
place that can be used from all creates that need a history file path)
- Adds a `nu_config_dir` function that returns the nushell configuration
directory.
- Updates existing code to rely on the above, effectively removing
duplicate uses of `"nushell"` and `NUSHELL_FOLDER` and assumptions about
file names associated with different history formats

# User-Facing Changes
None
2024-10-11 07:51:50 -05: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 Removed CustomValue portion of CustomValue type name strings. (#14054) 2024-10-11 06:41:24 -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 Reduce duplication in history path construction (#13475) 2024-10-11 07:51:50 -05: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 Revert "fix $env.FILE_PWD and $env.CURRENT_FILE inside use (#13958)" (#14057) 2024-10-11 14:45:42 +08: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 Reduce duplication in history path construction (#13475) 2024-10-11 07:51:50 -05: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 Making nushell works better with external args which surrounded by backtick quotes (#13910) 2024-10-10 20:57:30 +08:00
nu-path Reduce duplication in history path construction (#13475) 2024-10-11 07:51:50 -05: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 Reduce duplication in history path construction (#13475) 2024-10-11 07:51:50 -05:00
nu-std Respect use_ansi_coloring setting in banner (#14049) 2024-10-10 09:58:37 -05: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 Add ls colors to cjs and mjs files (#14028) 2024-10-08 08:55:20 -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.