aboutsummaryrefslogtreecommitdiff
path: root/.config/nvim/lua/plugins/null-ls.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/lua/plugins/null-ls.lua')
-rw-r--r--.config/nvim/lua/plugins/null-ls.lua58
1 files changed, 58 insertions, 0 deletions
diff --git a/.config/nvim/lua/plugins/null-ls.lua b/.config/nvim/lua/plugins/null-ls.lua
new file mode 100644
index 0000000..41fba1a
--- /dev/null
+++ b/.config/nvim/lua/plugins/null-ls.lua
@@ -0,0 +1,58 @@
+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,
+ disabled_filetypes = { "PKGBUILD" },
+ 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", "bash", "zsh", "sh" },
+ --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.diagnostics.zsh, -- shell script diagnostics
+ require("null-ls").builtins.formatting.shfmt,
+ require("null-ls").builtins.formatting.black,
+ require("null-ls").builtins.formatting.prettierd,
+ require("null-ls").builtins.diagnostics.cspell.with {
+ filetypes = { "python", "rust", "typescript" },
+ },
+ --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.code_actions.eslint_d,
+ require("null-ls").builtins.completion.spell,
+ require("null-ls").builtins.formatting.clang_format,
+ require("null-ls").builtins.formatting.rustfmt,
+ require("null-ls").builtins.formatting.sql_formatter,
+ require("null-ls").builtins.formatting.stylua,
+ --require("null-ls").builtins.formatting.google_java_format,
+ require("null-ls").builtins.formatting.shellharden,
+ require("null-ls").builtins.diagnostics.cppcheck,
+ },
+ 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,
+})