From 8870bf6f998ee023fefd74728ccf2073d85fef45 Mon Sep 17 00:00:00 2001 From: S4NKALP Date: Fri, 25 Jul 2025 15:00:02 +0545 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20refactor(lint):=20improve?= =?UTF-8?q?=20linting=20execution=20and=20filetype=20handling?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/plugins/lang/nvim-lint.lua | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/lua/plugins/lang/nvim-lint.lua b/lua/plugins/lang/nvim-lint.lua index 613a72f..f179271 100644 --- a/lua/plugins/lang/nvim-lint.lua +++ b/lua/plugins/lang/nvim-lint.lua @@ -1,6 +1,5 @@ local lint = require('lint') --- Filetype to linters mapping lint.linters_by_ft = { javascript = { 'eslint_d' }, typescript = { 'eslint_d' }, @@ -14,35 +13,33 @@ lint.linters_by_ft = { yaml = { 'actionlint' }, } -local function lint(bufnr) - local linters = - vim.list_extend({ 'codespell', 'editorconfig-checker' }, require('lint')._resolve_linter_by_ft(vim.bo.filetype)) +local function run_lint(bufnr) + bufnr = bufnr or 0 + local ft = vim.bo[bufnr].filetype - local ctx = { filename = vim.api.nvim_buf_get_name(bufnr or 0) } + local linters = vim.list_extend({ 'codespell', 'editorconfig-checker' }, require('lint')._resolve_linter_by_ft(ft)) + + local ctx = { filename = vim.api.nvim_buf_get_name(bufnr) } ctx.dirname = vim.fn.fnamemodify(ctx.filename, ':h') linters = vim.tbl_filter(function(name) - local linter = require('lint').linters[name] + local linter = lint.linters[name] return vim.fn.executable(linter.cmd) == 1 - ---@diagnostic disable-next-line: undefined-field and not (type(linter) == 'table' and linter.condition and not linter.condition(ctx)) end, linters) if #linters > 0 then - require('lint').try_lint(linters) + lint.try_lint(linters) end end -lint() - local timer = assert(vim.uv.new_timer()) vim.api.nvim_create_autocmd({ 'BufReadPost', 'BufWritePost', 'InsertLeave' }, { callback = function(args) timer:start(100, 0, function() timer:stop() - vim.schedule(function() - lint(args.buf) + run_lint(args.buf) end) end) end,