mirror of
https://github.com/nushell/nushell.git
synced 2024-11-07 17:14:23 +01:00
d07789677f
* Document the lexer and lightly improve its names The bulk of this pull request adds a substantial amount of new inline documentation for the lexer. Along the way, I made a few minor changes to the names in the lexer, most of which were internal. The main change that affects other files is renaming `group` to `block`, since the function is actually parsing a block (a list of groups). * Further clean up the lexer - Consolidate the logic of the various token builders into a single type - Improve and clean up the event-driven BlockParser - Clean up comment parsing. Comments now contain their original leading whitespace as well as trailing whitespace, and know how to move some leading whitespace back into the body based on how the lexer decides to dedent the comments. This preserves the original whitespace information while still making it straight-forward to eliminate leading whitespace in help comments. * Update meta.rs * WIP * fix clippy * remove unwraps * remove unwraps Co-authored-by: Jonathan Turner <jonathandturner@users.noreply.github.com> Co-authored-by: Jonathan Turner <jonathan.d.turner@gmail.com>
266 lines
7.7 KiB
TOML
266 lines
7.7 KiB
TOML
[package]
|
|
authors = ["The Nu Project Contributors"]
|
|
default-run = "nu"
|
|
description = "A new type of shell"
|
|
documentation = "https://www.nushell.sh/book/"
|
|
edition = "2018"
|
|
exclude = ["images"]
|
|
homepage = "https://www.nushell.sh"
|
|
license = "MIT"
|
|
name = "nu"
|
|
readme = "README.md"
|
|
repository = "https://github.com/nushell/nushell"
|
|
version = "0.26.0"
|
|
|
|
[workspace]
|
|
members = ["crates/*/"]
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[dependencies]
|
|
nu-cli = { version = "0.26.0", path = "./crates/nu-cli", default-features = false }
|
|
nu-command = { version = "0.26.0", path = "./crates/nu-command" }
|
|
nu-data = { version = "0.26.0", path = "./crates/nu-data" }
|
|
nu-engine = { version = "0.26.0", path = "./crates/nu-engine" }
|
|
nu-errors = { version = "0.26.0", path = "./crates/nu-errors" }
|
|
nu-parser = { version = "0.26.0", path = "./crates/nu-parser" }
|
|
nu-plugin = { version = "0.26.0", path = "./crates/nu-plugin" }
|
|
nu-protocol = { version = "0.26.0", path = "./crates/nu-protocol" }
|
|
nu-source = { version = "0.26.0", path = "./crates/nu-source" }
|
|
nu-value-ext = { version = "0.26.0", path = "./crates/nu-value-ext" }
|
|
|
|
nu_plugin_binaryview = { version = "0.26.0", path = "./crates/nu_plugin_binaryview", optional = true }
|
|
nu_plugin_chart = { version = "0.26.0", path = "./crates/nu_plugin_chart", optional = true }
|
|
nu_plugin_fetch = { version = "0.26.0", path = "./crates/nu_plugin_fetch", optional = true }
|
|
nu_plugin_from_bson = { version = "0.26.0", path = "./crates/nu_plugin_from_bson", optional = true }
|
|
nu_plugin_from_sqlite = { version = "0.26.0", path = "./crates/nu_plugin_from_sqlite", optional = true }
|
|
nu_plugin_inc = { version = "0.26.0", path = "./crates/nu_plugin_inc", optional = true }
|
|
nu_plugin_match = { version = "0.26.0", path = "./crates/nu_plugin_match", optional = true }
|
|
nu_plugin_post = { version = "0.26.0", path = "./crates/nu_plugin_post", optional = true }
|
|
nu_plugin_ps = { version = "0.26.0", path = "./crates/nu_plugin_ps", optional = true }
|
|
nu_plugin_s3 = { version = "0.26.0", path = "./crates/nu_plugin_s3", optional = true }
|
|
nu_plugin_selector = { version = "0.26.0", path = "./crates/nu_plugin_selector", optional = true }
|
|
nu_plugin_start = { version = "0.26.0", path = "./crates/nu_plugin_start", optional = true }
|
|
nu_plugin_sys = { version = "0.26.0", path = "./crates/nu_plugin_sys", optional = true }
|
|
nu_plugin_textview = { version = "0.26.0", path = "./crates/nu_plugin_textview", optional = true }
|
|
nu_plugin_to_bson = { version = "0.26.0", path = "./crates/nu_plugin_to_bson", optional = true }
|
|
nu_plugin_to_sqlite = { version = "0.26.0", path = "./crates/nu_plugin_to_sqlite", optional = true }
|
|
nu_plugin_tree = { version = "0.26.0", path = "./crates/nu_plugin_tree", optional = true }
|
|
nu_plugin_xpath = { version = "0.26.0", path = "./crates/nu_plugin_xpath", optional = true }
|
|
|
|
# Required to bootstrap the main binary
|
|
clap = "2.33.3"
|
|
ctrlc = { version = "3.1.6", optional = true }
|
|
futures = { version = "0.3.5", features = ["compat", "io-compat"] }
|
|
itertools = "0.10.0"
|
|
log = "0.4.11"
|
|
pretty_env_logger = "0.4.0"
|
|
|
|
[dev-dependencies]
|
|
dunce = "1.0.1"
|
|
nu-test-support = { version = "0.26.0", path = "./crates/nu-test-support" }
|
|
|
|
[build-dependencies]
|
|
|
|
[features]
|
|
ctrlc-support = ["nu-cli/ctrlc", "nu-command/ctrlc"]
|
|
directories-support = [
|
|
"nu-cli/directories",
|
|
"nu-cli/dirs",
|
|
"nu-command/directories",
|
|
"nu-command/dirs",
|
|
"nu-data/directories",
|
|
"nu-data/dirs",
|
|
"nu-engine/dirs",
|
|
]
|
|
ptree-support = ["nu-cli/ptree", "nu-command/ptree"]
|
|
rustyline-support = ["nu-cli/rustyline-support", "nu-command/rustyline-support"]
|
|
term-support = ["nu-cli/term", "nu-command/term"]
|
|
uuid-support = ["nu-cli/uuid_crate", "nu-command/uuid_crate"]
|
|
which-support = [
|
|
"nu-cli/ichwh",
|
|
"nu-cli/which",
|
|
"nu-command/ichwh",
|
|
"nu-command/which",
|
|
]
|
|
|
|
default = [
|
|
"nu-cli/shadow-rs",
|
|
"sys",
|
|
"ps",
|
|
"textview",
|
|
"inc",
|
|
"directories-support",
|
|
"ctrlc-support",
|
|
"which-support",
|
|
"ptree-support",
|
|
"term-support",
|
|
"uuid-support",
|
|
"rustyline-support",
|
|
"match",
|
|
"post",
|
|
"fetch",
|
|
"zip-support",
|
|
]
|
|
|
|
stable = ["default"]
|
|
extra = [
|
|
"default",
|
|
"binaryview",
|
|
"tree",
|
|
"clipboard-cli",
|
|
"trash-support",
|
|
"start",
|
|
"bson",
|
|
"sqlite",
|
|
"s3",
|
|
"chart",
|
|
"xpath",
|
|
"selector",
|
|
]
|
|
|
|
wasi = [
|
|
"inc",
|
|
"match",
|
|
"ptree-support",
|
|
"match",
|
|
"tree",
|
|
"rustyline-support",
|
|
]
|
|
|
|
trace = ["nu-parser/trace"]
|
|
|
|
# Stable (Default)
|
|
fetch = ["nu_plugin_fetch"]
|
|
inc = ["nu_plugin_inc"]
|
|
match = ["nu_plugin_match"]
|
|
post = ["nu_plugin_post"]
|
|
ps = ["nu_plugin_ps"]
|
|
sys = ["nu_plugin_sys"]
|
|
textview = ["nu_plugin_textview"]
|
|
zip-support = ["nu-cli/zip", "nu-command/zip"]
|
|
|
|
# Extra
|
|
binaryview = ["nu_plugin_binaryview"]
|
|
bson = ["nu_plugin_from_bson", "nu_plugin_to_bson"]
|
|
chart = ["nu_plugin_chart"]
|
|
clipboard-cli = ["nu-cli/clipboard-cli", "nu-command/clipboard-cli"]
|
|
s3 = ["nu_plugin_s3"]
|
|
selector = ["nu_plugin_selector"]
|
|
sqlite = ["nu_plugin_from_sqlite", "nu_plugin_to_sqlite"]
|
|
start = ["nu_plugin_start"]
|
|
trash-support = ["nu-cli/trash-support", "nu-command/trash-support"]
|
|
tree = ["nu_plugin_tree"]
|
|
xpath = ["nu_plugin_xpath"]
|
|
|
|
[profile.release]
|
|
#strip = "symbols" #Couldn't get working +nightly
|
|
codegen-units = 1 #Reduce parallel codegen units
|
|
lto = true #Link Time Optimization
|
|
opt-level = 'z' #Optimize for size
|
|
|
|
# Core plugins that ship with `cargo install nu` by default
|
|
# Currently, Cargo limits us to installing only one binary
|
|
# unless we use [[bin]], so we use this as a workaround
|
|
[[bin]]
|
|
name = "nu_plugin_core_textview"
|
|
path = "src/plugins/nu_plugin_core_textview.rs"
|
|
required-features = ["textview"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_core_inc"
|
|
path = "src/plugins/nu_plugin_core_inc.rs"
|
|
required-features = ["inc"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_core_ps"
|
|
path = "src/plugins/nu_plugin_core_ps.rs"
|
|
required-features = ["ps"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_core_sys"
|
|
path = "src/plugins/nu_plugin_core_sys.rs"
|
|
required-features = ["sys"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_core_fetch"
|
|
path = "src/plugins/nu_plugin_core_fetch.rs"
|
|
required-features = ["fetch"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_core_match"
|
|
path = "src/plugins/nu_plugin_core_match.rs"
|
|
required-features = ["match"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_core_post"
|
|
path = "src/plugins/nu_plugin_core_post.rs"
|
|
required-features = ["post"]
|
|
|
|
# Extra plugins
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_extra_binaryview"
|
|
path = "src/plugins/nu_plugin_extra_binaryview.rs"
|
|
required-features = ["binaryview"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_extra_tree"
|
|
path = "src/plugins/nu_plugin_extra_tree.rs"
|
|
required-features = ["tree"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_extra_start"
|
|
path = "src/plugins/nu_plugin_extra_start.rs"
|
|
required-features = ["start"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_extra_s3"
|
|
path = "src/plugins/nu_plugin_extra_s3.rs"
|
|
required-features = ["s3"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_extra_chart_bar"
|
|
path = "src/plugins/nu_plugin_extra_chart_bar.rs"
|
|
required-features = ["chart"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_extra_chart_line"
|
|
path = "src/plugins/nu_plugin_extra_chart_line.rs"
|
|
required-features = ["chart"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_extra_xpath"
|
|
path = "src/plugins/nu_plugin_extra_xpath.rs"
|
|
required-features = ["xpath"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_extra_selector"
|
|
path = "src/plugins/nu_plugin_extra_selector.rs"
|
|
required-features = ["selector"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_extra_from_bson"
|
|
path = "src/plugins/nu_plugin_extra_from_bson.rs"
|
|
required-features = ["bson"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_extra_to_bson"
|
|
path = "src/plugins/nu_plugin_extra_to_bson.rs"
|
|
required-features = ["bson"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_extra_from_sqlite"
|
|
path = "src/plugins/nu_plugin_extra_from_sqlite.rs"
|
|
required-features = ["sqlite"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_extra_to_sqlite"
|
|
path = "src/plugins/nu_plugin_extra_to_sqlite.rs"
|
|
required-features = ["sqlite"]
|
|
|
|
# Main nu binary
|
|
[[bin]]
|
|
name = "nu"
|
|
path = "src/main.rs"
|