You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
NvChad/lua/custom/configs/null-ls.lua

53 lines
1.2 KiB
Lua

local null_ls = require "null-ls"
local b = null_ls.builtins
-- auto format on save
local augroup = vim.api.nvim_create_augroup("LspFormatting", {})
local sources = {
-- webdev stuff
b.formatting.deno_fmt, -- choosed deno for ts/js files cuz its very fast!
b.formatting.prettier.with { filetypes = { "html", "markdown", "css", "yaml", "json"} }, -- so prettier works only on these filetypes
-- Lua
b.formatting.stylua,
-- cpp
b.formatting.clang_format,
-- golang
b.formatting.gofumpt,
b.formatting.goimports_reviser,
b.formatting.golines,
-- auto format on save
on_attach = function(client, bufnr)
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()
vim.lsp.buf.format({ bufnr = bufnr })
end,
})
end
end,
-- Shell
b.formatting.shfmt,
b.diagnostics.shellcheck.with { diagnostics_format = "#{m} [#{c}]" },
-- terraform
b.formatting.terraform_fmt,
}
null_ls.setup {
debug = true,
sources = sources,
}