aboutsummaryrefslogtreecommitdiff
path: root/config/nvim/lua/plugins/null-ls.lua
blob: 4573a54708d9dc29a2b857fe651ee9b36a11b586 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
local null_ls_status_ok, null_ls = pcall(require, "null-ls")
if not null_ls_status_ok then
	return
end
--[[null-ls.]]
--
-- null-language-server i.e. a sort of language server which does not provide any services such as formatting and diagnostics you expect from a language server. Instead it will need to install corresponding external “sources” and then hook these sources into the neovim lsp client through null-ls.
--

null_ls.setup({
	debug = true,
	sources = {
		require("null-ls").builtins.formatting.stylua, -- lua formatting
		require("null-ls").builtins.formatting.prettier.with({ -- markdown, html/js formatting
			filetypes = { "html", "css", "javascript", "javascriptreact", "markdown", "json", "yaml" },
		}),
		require("null-ls").builtins.formatting.shfmt.with({ -- shell script formatting
			filetypes = { "bash", "zsh", "sh" },
		}),
		require("null-ls").builtins.diagnostics.shellcheck, -- shell script diagnostics
    require("null-ls").builtins.code_actions.shellcheck, -- shell script code actions
    --require("null-ls").builtins.formatting.black,
		--require("null-ls").builtins.formatting.prettierd,
		--require("null-ls").builtins.diagnostics.luacheck,
		--require("null-ls").builtins.diagnostics.eslint,
		--require("null-ls").builtins.diagnostics.eslint_d,
		--require("null-ls").builtins.diagnostics.mdl,
		--require("null-ls").builtins.diagnostics.vint,
		--require("null-ls").builtins.codeactions.eslint_d,
    --require("null-ls").builtins.completion.spell,
	},
	on_attach = function(client, bufnr)
		if client.server_capabilities.document_formatting then
			local group = vim.api.nvim_create_augroup("NullLsFormatting", { clear = true })
			vim.api.nvim_create_autocmd("BufWritePre", {
				callback = function()
					vim.lsp.buf.formatting_sync(nil, 4000)
				end,
				buffer = bufnr,
				group = group,
			})
		end
	end,
})