mirror of
https://github.com/NotAShelf/nvf.git
synced 2025-09-06 10:21:31 +00:00
nvim-lint: moved linting into its own global function "nvf_lint(buf)"
This commit is contained in:
parent
1f8a44c432
commit
acbeb26854
1 changed files with 36 additions and 32 deletions
|
@ -28,6 +28,41 @@ in {
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function nvf_lint(buf)
|
||||||
|
local ft = vim.api.nvim_get_option_value("filetype", { buf = buf })
|
||||||
|
local linters = require("lint").linters
|
||||||
|
local linters_from_ft = require("lint").linters_by_ft[ft]
|
||||||
|
|
||||||
|
-- if no linter is configured for this filetype, stops linting
|
||||||
|
if linters_from_ft == nil then return end
|
||||||
|
|
||||||
|
for _, name in ipairs(linters_from_ft) do
|
||||||
|
local linter = linters[name]
|
||||||
|
assert(linter, 'Linter with name `' .. name .. '` not available')
|
||||||
|
|
||||||
|
if type(linter) == "function" then
|
||||||
|
linter = linter()
|
||||||
|
end
|
||||||
|
-- for require("lint").lint() to work, linter.name must be set
|
||||||
|
linter.name = linter.name or name
|
||||||
|
local cwd = linter.required_files
|
||||||
|
|
||||||
|
-- if no configuration files are configured, lint
|
||||||
|
if cwd == nil then
|
||||||
|
require("lint").lint(linter)
|
||||||
|
else
|
||||||
|
-- if configuration files are configured and present in the project, lint
|
||||||
|
for _, fn in ipairs(cwd) do
|
||||||
|
local path = vim.fs.joinpath(linter.cwd or vim.fn.getcwd(), fn);
|
||||||
|
if vim.uv.fs_stat(path) then
|
||||||
|
require("lint").lint(linter)
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
@ -39,38 +74,7 @@ in {
|
||||||
event = ["BufWritePost"];
|
event = ["BufWritePost"];
|
||||||
callback = mkLuaInline ''
|
callback = mkLuaInline ''
|
||||||
function(args)
|
function(args)
|
||||||
local ft = vim.api.nvim_get_option_value("filetype", { buf = args.buf })
|
nvf_lint(args.buf)
|
||||||
local linters = require("lint").linters
|
|
||||||
local linters_from_ft = require("lint").linters_by_ft[ft]
|
|
||||||
|
|
||||||
-- if no linter is configured for this filetype, stops linting
|
|
||||||
if linters_from_ft == nil then return end
|
|
||||||
|
|
||||||
for _, name in ipairs(linters_from_ft) do
|
|
||||||
local linter = linters[name]
|
|
||||||
assert(linter, 'Linter with name `' .. name .. '` not available')
|
|
||||||
|
|
||||||
if type(linter) == "function" then
|
|
||||||
linter = linter()
|
|
||||||
end
|
|
||||||
-- for require("lint").lint() to work, linter.name must be set
|
|
||||||
linter.name = linter.name or name
|
|
||||||
local cwd = linter.required_files
|
|
||||||
|
|
||||||
-- if no configuration files are configured, lint
|
|
||||||
if cwd == nil then
|
|
||||||
require("lint").lint(linter)
|
|
||||||
else
|
|
||||||
-- if configuration files are configured and present in the project, lint
|
|
||||||
for _, fn in ipairs(cwd) do
|
|
||||||
local path = vim.fs.joinpath(linter.cwd or vim.fn.getcwd(), fn);
|
|
||||||
if vim.uv.fs_stat(path) then
|
|
||||||
require("lint").lint(linter)
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue