mirror of
https://github.com/nushell/nushell.git
synced 2024-11-28 19:33:47 +01:00
5a486029db
# Description This PR adds new types to `nu-path` to enforce path invariants. Namely, this PR adds: - `Path` and `PathBuf`. These types are different from, but analogous to `std::path::Path` and `std::path::PathBuf`. - `RelativePath` and `RelativePathBuf`. These types must be/contain strictly relative paths. - `AbsolutePath` and `AbsolutePathBuf`. These types must be/contain strictly absolute paths. - `CanonicalPath` and `CanonicalPathBuf`. These types must be/contain canonical paths. Operations are prohibited as necessary to ensure that the invariants of each type are upheld (needs double-checking). Only paths that are absolute (or canonical) can be easily used as / converted to `std::path::Path`s. This is to help force us to account for the emulated current working directory instead of accidentally using the current directory of the Nushell process (i.e., `std::env::current_dir`). Related to #12975 and #12976. Note that this PR uses several declarative macros, as the file / this PR would otherwise be 5000 lines long. # User-Facing Changes No major changes yet, just adds types to `nu-path` to be used in the future. # After Submitting Actually use the new path types in all our crates where it makes sense, removing usages of `std::path` types.
29 lines
499 B
TOML
29 lines
499 B
TOML
[files]
|
||
extend-exclude = [
|
||
".git/",
|
||
"crates/nu-cmd-extra/assets/228_themes.json",
|
||
"tests/fixtures/formats/",
|
||
]
|
||
ignore-hidden = false
|
||
|
||
[default]
|
||
extend-ignore-re = [
|
||
"Plasticos Rival",
|
||
"│ in_custom_valu │",
|
||
"│ ine │",
|
||
":es\\|ful\\(",
|
||
"\\\\u\\{e7ba\\}",
|
||
"([0-9a-f][0-9a-f] ){4}",
|
||
"--find ba\\b",
|
||
"0x\\[ba be\\]",
|
||
"\\)BaR'",
|
||
"fo<66>.txt",
|
||
]
|
||
|
||
[type.rust.extend-words]
|
||
nd = "nd"
|
||
numer = "numer"
|
||
|
||
[default.extend-identifiers]
|
||
ratatui = "ratatui"
|