replace null-ls with conform and nvim-lint
This commit is contained in:
parent
7cca958858
commit
848408a2a4
|
@ -0,0 +1,39 @@
|
||||||
|
return {
|
||||||
|
"stevearc/conform.nvim",
|
||||||
|
event = { "BufReadPre", "BufNewFile" },
|
||||||
|
config = function()
|
||||||
|
local conform = require("conform")
|
||||||
|
|
||||||
|
conform.setup({
|
||||||
|
formatters_by_ft = {
|
||||||
|
javascript = { "prettierd" },
|
||||||
|
typescript = { "prettierd" },
|
||||||
|
javascriptreact = { "prettierd" },
|
||||||
|
typescriptreact = { "prettierd" },
|
||||||
|
svelte = { "prettierd" },
|
||||||
|
css = { "prettierd" },
|
||||||
|
html = { "prettierd" },
|
||||||
|
json = { "prettierd" },
|
||||||
|
yaml = { "prettierd" },
|
||||||
|
markdown = { "prettierd" },
|
||||||
|
graphql = { "prettierd" },
|
||||||
|
liquid = { "prettierd" },
|
||||||
|
lua = { "stylua" },
|
||||||
|
python = { "isort", "black" },
|
||||||
|
},
|
||||||
|
format_on_save = {
|
||||||
|
lsp_fallback = true,
|
||||||
|
async = false,
|
||||||
|
timeout_ms = 1000,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.keymap.set({ "n", "v" }, "<leader>mp", function()
|
||||||
|
conform.format({
|
||||||
|
lsp_fallback = true,
|
||||||
|
async = false,
|
||||||
|
timeout_ms = 1000,
|
||||||
|
})
|
||||||
|
end, { desc = "Format file or range (in visual mode)" })
|
||||||
|
end,
|
||||||
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
return {
|
||||||
|
"mfussenegger/nvim-lint",
|
||||||
|
event = { "BufReadPre", "BufNewFile" },
|
||||||
|
config = function()
|
||||||
|
local lint = require("lint")
|
||||||
|
|
||||||
|
lint.linters_by_ft = {
|
||||||
|
javascript = { "eslint_d" },
|
||||||
|
typescript = { "eslint_d" },
|
||||||
|
javascriptreact = { "eslint_d" },
|
||||||
|
typescriptreact = { "eslint_d" },
|
||||||
|
svelte = { "eslint_d" },
|
||||||
|
python = { "pylint" },
|
||||||
|
}
|
||||||
|
|
||||||
|
local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true })
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {
|
||||||
|
group = lint_augroup,
|
||||||
|
callback = function()
|
||||||
|
lint.try_lint()
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<leader>l", function()
|
||||||
|
lint.try_lint()
|
||||||
|
end, { desc = "Trigger linting for current file" })
|
||||||
|
end,
|
||||||
|
}
|
|
@ -1,60 +0,0 @@
|
||||||
return {
|
|
||||||
"jose-elias-alvarez/null-ls.nvim",
|
|
||||||
dependencies = {"nvim-lua/plenary.nvim"},
|
|
||||||
config = function()
|
|
||||||
local null_ls = require("null-ls")
|
|
||||||
|
|
||||||
local formatting = null_ls.builtins.formatting
|
|
||||||
local diagnostics = null_ls.builtins.diagnostics
|
|
||||||
local codeActions = null_ls.builtins.code_actions
|
|
||||||
|
|
||||||
local sources = {
|
|
||||||
formatting.eslint_d, formatting.prettierd.with({
|
|
||||||
env = {
|
|
||||||
PRETTIERD_DEFAULT_CONFIG = vim.fn
|
|
||||||
.expand "~/.config/nvim/utils/linter-config/.prettierrc.js"
|
|
||||||
}
|
|
||||||
}), -- formatting.prettier
|
|
||||||
-- .with({extra_args = {'--single-quote', '--tab-width 2', '--arrow-parens avoid'}}),
|
|
||||||
formatting.lua_format.with({
|
|
||||||
extra_args = {
|
|
||||||
'--no-keep-simple-function-one-line', '--no-break-after-operator', '--column-limit=100',
|
|
||||||
'--break-after-table-lb', '--indent-width=2'
|
|
||||||
}
|
|
||||||
}), diagnostics.eslint_d.with({diagnostics_format = "[#{c}] #{m} (#{s})"}),
|
|
||||||
codeActions.eslint_d
|
|
||||||
}
|
|
||||||
|
|
||||||
local lsp_formatting = function(bufnr)
|
|
||||||
vim.lsp.buf.format({
|
|
||||||
-- async = true,
|
|
||||||
filter = function(client)
|
|
||||||
-- apply whatever logic you want (in this example, we'll only use null-ls)
|
|
||||||
return client.name == "null-ls"
|
|
||||||
end,
|
|
||||||
bufnr = bufnr
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
-- if you want to set up formatting on save, you can use this as a callback
|
|
||||||
local augroup = vim.api.nvim_create_augroup("LspFormatting", {})
|
|
||||||
|
|
||||||
local on_attach = function(client, bufnr)
|
|
||||||
-- if client.name == "tsserver" or client.name == "cssls" or client.name == "html" then
|
|
||||||
-- client.server_capabilities.documentFormattingProvider = false -- 0.8 and later
|
|
||||||
-- end
|
|
||||||
if client.supports_method("textDocument/formatting") then
|
|
||||||
vim.api.nvim_clear_autocmds({group = augroup, buffer = bufnr})
|
|
||||||
vim.api.nvim_create_autocmd("BufWritePre", {
|
|
||||||
group = augroup,
|
|
||||||
buffer = bufnr,
|
|
||||||
callback = function()
|
|
||||||
lsp_formatting(bufnr)
|
|
||||||
end
|
|
||||||
})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
null_ls.setup({sources = sources, debug = true, on_attach = on_attach})
|
|
||||||
end
|
|
||||||
}
|
|
Loading…
Reference in New Issue