Skip to content

Commit 6b6b13c

Browse files
committed
fix(diagnostic): add option to disable invalid feature diagnostics
1 parent 6c46bba commit 6b6b13c

File tree

4 files changed

+40
-16
lines changed

4 files changed

+40
-16
lines changed

lua/crates/config.lua

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ local M = {Config = {TextConfig = {}, HighlightConfig = {}, DiagnosticConfig = {
133133

134134

135135

136+
136137

137138

138139
local Config = M.Config
@@ -207,6 +208,15 @@ entry(M.schema, "date_format", {
207208
]],
208209
})
209210

211+
entry(M.schema, "disable_invalid_feature_diagnostic", {
212+
type = "boolean",
213+
default = false,
214+
description = [[
215+
This is a temporary solution for:
216+
https://github.com/Saecki/crates.nvim/issues/14
217+
]],
218+
})
219+
210220

211221
entry(M.schema, "text", {
212222
type = "section",

lua/crates/diagnostic.lua

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -294,14 +294,16 @@ function M.process_crate_deps(crate, version, deps)
294294
end
295295
end
296296

297-
for _, f in ipairs(crate:feats()) do
298-
if not vim.tbl_contains(valid_feats, f.name) then
299-
table.insert(diagnostics, M.feat_diagnostic(
300-
crate,
301-
f,
302-
core.cfg.diagnostic.feat_invalid,
303-
vim.diagnostic.severity.ERROR))
297+
if not core.cfg.disable_invalid_feature_diagnostic then
298+
for _, f in ipairs(crate:feats()) do
299+
if not vim.tbl_contains(valid_feats, f.name) then
300+
table.insert(diagnostics, M.feat_diagnostic(
301+
crate,
302+
f,
303+
core.cfg.diagnostic.feat_invalid,
304+
vim.diagnostic.severity.ERROR))
304305

306+
end
305307
end
306308
end
307309

teal/crates/config.tl

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ local record M
99
autoupdate: boolean
1010
loading_indicator: boolean
1111
date_format: string
12+
disable_invalid_feature_diagnostic: boolean
1213
text: TextConfig
1314
highlight: HighlightConfig
1415
diagnostic: DiagnosticConfig
@@ -206,6 +207,15 @@ entry(M.schema, "date_format", {
206207
The date format passed to `os.date`.
207208
]],
208209
})
210+
-- TODO: use cargo metadata to get feature renames
211+
entry(M.schema, "disable_invalid_feature_diagnostic", {
212+
type = "boolean",
213+
default = false,
214+
description = [[
215+
This is a temporary solution for:
216+
https://github.com/Saecki/crates.nvim/issues/14
217+
]],
218+
})
209219

210220

211221
entry(M.schema, "text", {

teal/crates/diagnostic.tl

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -293,15 +293,17 @@ function M.process_crate_deps(crate: Crate, version: Version, deps: {Dependency}
293293
table.insert(valid_feats, d.name)
294294
end
295295
end
296-
297-
for _,f in ipairs(crate:feats()) do
298-
if not vim.tbl_contains(valid_feats, f.name) then
299-
table.insert(diagnostics, M.feat_diagnostic(
300-
crate,
301-
f,
302-
core.cfg.diagnostic.feat_invalid,
303-
vim.diagnostic.severity.ERROR
304-
))
296+
297+
if not core.cfg.disable_invalid_feature_diagnostic then
298+
for _,f in ipairs(crate:feats()) do
299+
if not vim.tbl_contains(valid_feats, f.name) then
300+
table.insert(diagnostics, M.feat_diagnostic(
301+
crate,
302+
f,
303+
core.cfg.diagnostic.feat_invalid,
304+
vim.diagnostic.severity.ERROR
305+
))
306+
end
305307
end
306308
end
307309

0 commit comments

Comments
 (0)