-
Notifications
You must be signed in to change notification settings - Fork 64
Expand file tree
/
Copy pathCargo.toml
More file actions
131 lines (110 loc) · 3.92 KB
/
Cargo.toml
File metadata and controls
131 lines (110 loc) · 3.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
[workspace]
resolver = "2"
members = [
"crates/*",
"tools/*",
]
[workspace.dependencies]
# local
emmylua_code_analysis = { path = "crates/emmylua_code_analysis", version = "0.22.0" }
emmylua_parser = { path = "crates/emmylua_parser", version = "0.25.0" }
emmylua_parser_desc = { path = "crates/emmylua_parser_desc", version = "0.25.0" }
emmylua_diagnostic_macro = { path = "crates/emmylua_diagnostic_macro", version = "0.5.0" }
schema_to_emmylua = { path = "crates/schema_to_emmylua", version = "0.1.0" }
# external
lsp-server = "0.7.9"
tokio = { version = "1.48", features = ["full"] }
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.145"
rowan = { version = "0.16.1" }
notify = { version = "8.2.0", features = ["serde"] }
lsp_types = { version = "0.1.0", package = "emmy_lsp_types" }
schemars = "1.0.4"
regex = "1"
internment = { version = "0.8.6", features = ["arc"] }
rust-i18n = "3"
log = "0.4.28"
fern = "0.7.1"
chrono = "0.4.42"
tokio-util = "0.7.16"
walkdir = "2.5.0"
serde_yml = "0.0.12"
dirs = "6"
emmylua_codestyle = "0.6.0"
wax = "0.6.0"
percent-encoding = "2.3"
flagset = "0.4.7"
encoding_rs = "0.8"
url = "2.5.7"
smol_str = "0.3.4"
tera = "1.20.1"
serde_with = "3.12.0"
proc-macro2 = "1.0"
syn = "2.0"
quote = "1.0"
glob = "0.3"
include_dir = "0.7.4"
toml_edit = "0.22.23"
itertools = "0.14.0"
clap = { version = "4.5.51", features = ["derive", "wrap_help"] }
ansi_term = "0.12.1"
num-traits = { version = "0.2", features = ["std"] }
mimalloc = { version = "0.1.48", features = ["v3"] }
googletest = "0.14.2"
unicode-general-category = "1.0.0"
luars = { version = "0.17.0", features = ["serde", "sandbox"] }
# request's default-tls feature pulls in a dependency on aws-lc-rs,
# which causes a linking error on Windows
reqwest = { version = "0.13.1", default-features = false, features = [
"http2",
"charset",
"system-proxy",
"native-tls-vendored",
]}
similar = { version = "2.7.0", features = ["inline"] }
hashbrown = "0.16.1"
# Lint configuration for the entire workspace
[workspace.lints.clippy]
# ==== Domain-Specific Allowances ====
# These patterns are acceptable/necessary in parser/language-server projects
# Module inception is acceptable for AST/syntax organization
module_inception = "allow"
# Enum variant name repetition is necessary for syntax tree clarity
enum_variant_names = "allow"
# Parser methods often have domain-specific naming conventions
wrong_self_convention = "allow"
# Box collections are sometimes needed for complex recursive structures
box_collection = "allow"
# Parser constants shouldn't be confused with mathematical constants
approx_constant = "allow"
# Complex cognitive complexity is acceptable for domain-specific logic
cognitive_complexity = "allow"
# High type complexity threshold for domain modeling (see .clippy.toml for thresholds)
type_complexity = "allow"
# Allow many arguments for builder patterns and comprehensive APIs
too_many_arguments = "allow"
# ==== General Code Quality Allowances ====
# Let-and-return is sometimes more readable for debugging
let_and_return = "allow"
# Needless borrow warnings in test code are often false positives
needless_borrow = "allow"
# Single component path imports are sometimes necessary
single_component_path_imports = "allow"
# Bool assertion comparisons are explicit and readable
bool_assert_comparison = "allow"
# Let unit value can be useful for side effects
let_unit_value = "allow"
# Clone on copy can be more explicit about intent
clone_on_copy = "allow"
# Collapsible if/match statements are sometimes more readable when separate
collapsible_if = "allow"
collapsible_match = "allow"
# Some functions need a Default implementation pattern without Default trait
new_without_default = "allow"
# Manual implementations can be more explicit than derive
manual_let_else = "allow"
# ==== Documentation Lints ====
# Allow missing docs for internal/test functions
missing_errors_doc = "allow"
missing_panics_doc = "allow"
undocumented_unsafe_blocks = "allow"