From 6f81824674318497e7306be505d986bb624aac78 Mon Sep 17 00:00:00 2001 From: Marcel Beumer Date: Sun, 23 Oct 2022 17:49:17 +0200 Subject: [PATCH] fix(builtins): set correct golangci_lint cwd --- lua/null-ls/builtins/diagnostics/golangci_lint.lua | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lua/null-ls/builtins/diagnostics/golangci_lint.lua b/lua/null-ls/builtins/diagnostics/golangci_lint.lua index c8e5e9630..454b554e6 100644 --- a/lua/null-ls/builtins/diagnostics/golangci_lint.lua +++ b/lua/null-ls/builtins/diagnostics/golangci_lint.lua @@ -17,13 +17,16 @@ return h.make_builtin({ to_stdin = true, from_stderr = false, ignore_stderr = true, + cwd = function(params) + local patterns = { "go.mod", "go.work", ".git" } + local opts = { upward = true, path = params.bufname } + local cwd = vim.fs.dirname(vim.fs.find(patterns, opts)[1]) or vim.fn.getcwd() + return vim.loop.fs_realpath(cwd) + end, args = { "run", - "--fix=false", "--fast", "--out-format=json", - "--path-prefix", - "$ROOT", }, format = "json", check_exit_code = function(code) @@ -38,7 +41,8 @@ return h.make_builtin({ local issues = params.output["Issues"] if type(issues) == "table" then for _, d in ipairs(issues) do - if d.Pos.Filename == params.bufname then + local fname = params.cwd .. "/" .. d.Pos.Filename + if fname == params.bufname then table.insert(diags, { source = string.format("golangci-lint:%s", d.FromLinter), row = d.Pos.Line,