[workspace]
resolver = "2"
members = [
]

[workspace.package]
rust-version = "1.67"
edition = "2021"

[profile.release]
overflow-checks = true
lto = true

[package]
name = "fish"
version = "0.1.0"
edition.workspace = true
rust-version.workspace = true
default-run = "fish"

[dependencies]
pcre2 = { git = "https://github.com/fish-shell/rust-pcre2", branch = "master", default-features = false, features = ["utf32"] }
fast-float = { git = "https://github.com/fish-shell/fast-float-rust", branch="fish" }
hexponent = { git = "https://github.com/fish-shell/hexponent", branch="fish" }
printf-compat = { git = "https://github.com/fish-shell/printf-compat.git", branch="fish" }

bitflags = "2.4.0"
errno = "0.2.8"
lazy_static = "1.4.0"
libc = "0.2.137"
lru = "0.10.0"
nix = { version = "0.25.0", default-features = false, features = ["inotify", "resource", "fs"] }
num-traits = "0.2.15"
once_cell = "1.17.0"
rand = { version = "0.8.5", features = ["small_rng"] }
widestring = "1.0.2"
terminfo = { git = "https://github.com/meh/rust-terminfo", rev = "870327dd79beaecf50db09a15931d5ee1de2a24d" }

[dev-dependencies]
rand_pcg = "0.3.1"
serial_test = "0.4.0"

[build-dependencies]
cc = "1.0.88"
rsconf = "0.1.2"

[lib]
crate-type = ["rlib"]
path = "src/lib.rs"

[[bin]]
name = "fish"
path = "src/bin/fish.rs"

[[bin]]
name = "fish_indent"
path = "src/bin/fish_indent.rs"

[[bin]]
name = "fish_key_reader"
path = "src/bin/fish_key_reader.rs"

[features]
default = []
benchmark = []

# The following features are auto-detected by the build-script and should not be enabled manually.
asan = []

[lints]
rust.non_camel_case_types = "allow"
rust.non_upper_case_globals = "allow"
rust.unstable_name_collisions = "allow"
clippy.bool_assert_comparison = "allow"
clippy.box_default = "allow"
clippy.collapsible_if = "allow"
clippy.comparison_chain = "allow"
clippy.derivable_impls = "allow"
clippy.field_reassign_with_default = "allow"
clippy.get_first = "allow"
clippy.if_same_then_else = "allow"
clippy.len_without_is_empty = "allow"
clippy.manual_range_contains = "allow"
clippy.manual_is_ascii_check = "allow"
clippy.mut_from_ref = "allow"
clippy.needless_return = "allow"
clippy.new_without_default = "allow"
clippy.option_map_unit_fn = "allow"
clippy.ptr_arg = "allow"
clippy.redundant_slicing = "allow"
clippy.too_many_arguments = "allow"
clippy.uninlined_format_args = "allow"
