diff --git a/plugin-confs/lsp-format.lua b/plugin-confs/lsp-format.lua index 106b6a8..c16e108 100644 --- a/plugin-confs/lsp-format.lua +++ b/plugin-confs/lsp-format.lua @@ -1 +1 @@ -require("lsp-format").setup {} +-- require("lsp-format").setup {} diff --git a/plugin-confs/null-ls.lua b/plugin-confs/null-ls.lua index cda196a..6697074 100644 --- a/plugin-confs/null-ls.lua +++ b/plugin-confs/null-ls.lua @@ -1,161 +1,58 @@ local null_ls = require("null-ls") local helpers = require("null-ls.helpers") -- syncronous formatting --- local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) --- require("null-ls").setup({ --- -- you can reuse a shared lspconfig on_attach callback here --- 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() --- -- on 0.8, you should use vim.lsp.buf.format({ bufnr = bufnr }) instead --- -- on later neovim version, you should use vim.lsp.buf.format({ async = false }) instead --- vim.lsp.buf.formatting_sync() --- end, --- }) --- end --- end, --- }) - -null_ls.setup({ - -- on_attach = function(client) - -- if client.supports_method "textDocument/formatting" then - -- vim.cmd([[ - -- augroup LspFormatting - -- autocmd! * - -- autocmd BufWritePre lua vim.lsp.buf.format() - -- augroup END - -- ]]) - -- end - -- end, +local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) +require("null-ls").setup({ + -- you can reuse a shared lspconfig on_attach callback here + 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() + -- on 0.8, you should use vim.lsp.buf.format({ bufnr = bufnr }) instead + -- on later neovim version, you should use vim.lsp.buf.format({ async = false }) instead + -- vim.lsp.buf.formatting_sync() + vim.lsp.buf.format({ + async = false, + bufnr = bufnr, + filter = function(client) + return client.name == "null-ls" + end + }) + end, + }) + end + end, sources = { - -- null_ls.builtins.completion.spell, null_ls.builtins.completion.luasnip, - -- null_ls.builtins.code_actions.gitsigns, - -- null_ls.builtins.code_actions.eslint, - null_ls.builtins.diagnostics.tsc, - null_ls.builtins.diagnostics.cppcheck, - null_ls.builtins.diagnostics.gitlint, - -- null_ls.builtins.diagnostics.eslint - -- .with({ cmd = "/usr/bin/eslint-language-server" }), - null_ls.builtins.diagnostics.jsonlint, - require("null-ls").builtins.diagnostics.luacheck, - null_ls.builtins.diagnostics.markdownlint, - -- null_ls.builtins.diagnostics.sqlfluff.with({ - -- extra_args = { - -- "--dialect", "oracle" - -- } - -- }), - -- null_ls.builtins.formatting.sql_formatter, - null_ls.builtins.diagnostics.pylint, - -- null_ls.builtins.diagnostics.pylint.with({ - -- diagnostics_postprocess = function(diagnostic) - -- diagnostic.code = diagnostic.message_id - -- end, - -- }), + null_ls.builtins.formatting.black, + null_ls.builtins.formatting.isort, null_ls.builtins.diagnostics.mypy, + null_ls.builtins.diagnostics.markdownlint, + null_ls.builtins.diagnostics.pylint, null_ls.builtins.diagnostics.pycodestyle, - -- null_ls.builtins.diagnostics.pydocstyle.with({ - -- extra_args = { "--config=$ROOT/setup.cfg" } - -- }), - null_ls.builtins.diagnostics.vint, - -- null_ls.builtins.code_actions.shellcheck, - -- null_ls.builtins.diagnostics.shellcheck.with({ - -- extra_args = { - -- "-s", "bash", "-o", - -- "add-default-case, check-set-e-suppressed, check-unassigned-uppercase, deprecate-which, quote-safe-variables" - -- } - -- }), - null_ls.builtins.diagnostics.ansiblelint, - null_ls.builtins.formatting.json_tool, - require("null-ls").builtins.formatting.lua_format, null_ls.builtins.formatting.stylua, null_ls.builtins.formatting.markdownlint, null_ls.builtins.formatting.prettier, -- handled by lsp server - -- require("null-ls").builtins.formatting.rustfmt, null_ls.builtins.formatting.shfmt.with({ filetypes = { "sh", "bash" }, extra_args = { "-i", "0", "-ci", "-sr" } - }), null_ls.builtins.formatting.black, - null_ls.builtins.formatting.isort, null_ls.builtins.formatting.djlint, - null_ls.builtins.diagnostics.actionlint, - -- null_ls.builtins.hover.printenv - -- null_ls.builtins.formatting.tidy + }), + -- null_ls.builtins.diagnostics.actionlint, } }) --- local markdownlint = { --- method = null_ls.methods.DIAGNOSTICS, --- filetypes = { "markdown" }, --- -- null_ls.generator creates an async source --- -- that spawns the command with the given arguments and options --- generator = null_ls.generator({ --- command = "markdownlint", --- args = { "--stdin" }, --- to_stdin = true, --- from_stderr = true, --- -- choose an output format (raw, json, or line) --- format = "line", --- check_exit_code = function(code, stderr) --- local success = code <= 1 - --- if not success then --- -- can be noisy for things that run often (e.g. diagnostics), but can --- -- be useful for things that run on demand (e.g. formatting) --- print(stderr) --- end - --- return success --- end, --- -- use helpers to parse the output from string matchers, --- -- or parse it manually with a function --- on_output = helpers.diagnostics.from_patterns({ --- { --- pattern = [[:(%d+):(%d+) [%w-/]+ (.*)]], --- groups = { "row", "col", "message" }, --- }, --- { --- pattern = [[:(%d+) [%w-/]+ (.*)]], --- groups = { "row", "message" }, --- }, --- }), --- }), --- } - --- local shellcheck = { --- method = null_ls.methods.DIAGNOSTICS, --- filetypes = { "sh", "bash", "zsh", "fish" }, --- generator = null_ls.generator({ --- command = "shellcheck", --- args = { "-s", "bash", "-o", "all", "-e", "2250" }, --- from_stderr = true, --- format = "line", --- check_exit_code = function(code, stderr) --- local success = code <= 1 - --- if not success then --- -- can be noisy for things that run often (e.g. diagnostics), but can --- -- be useful for things that run on demand (e.g. formatting) --- print(stderr) --- end - --- return success --- end, --- on_output = helpers.diagnostics.from_patterns({ --- { --- pattern = [[:(%d+):(%d+) [%w-/]+ (.*)]], --- groups = { "row", "col", "message" }, --- }, --- { --- pattern = [[:(%d+) [%w-/]+ (.*)]], --- groups = { "row", "message" }, --- }, --- }), --- }), --- } - --- null_ls.register(markdownlint) --- null_ls.register(shellcheck) +-- null_ls.setup({ +-- on_attach = function(client) +-- if client.supports_method "textDocument/formatting" then +-- vim.cmd([[ +-- augroup LspFormatting +-- autocmd! * +-- autocmd BufWritePre lua vim.lsp.buf.format() +-- augroup END +-- ]]) +-- end +-- end, +-- }) diff --git a/plugin-confs/nvim-cmp.lua b/plugin-confs/nvim-cmp.lua index 772059a..a0679e8 100644 --- a/plugin-confs/nvim-cmp.lua +++ b/plugin-confs/nvim-cmp.lua @@ -219,12 +219,13 @@ cmp.setup.cmdline(':', { }) local servers = { - 'bashls', 'pyright', 'jsonls', 'yamlls', 'vimls', 'dotls', 'dockerls', + 'bashls', 'jedi_language_server', 'jsonls', 'yamlls', 'vimls', 'dotls', 'dockerls', 'html', 'cssls', 'lua_ls', 'eslint', 'ts_ls', 'angularls', 'ansiblels' } for _, lsp in ipairs(servers) do if lsp == 'lua_ls' then + require("lsp-format").setup {} lspconfig[lsp].setup { on_attach = require("lsp-format").on_attach, on_init = function(client) @@ -261,7 +262,10 @@ for _, lsp in ipairs(servers) do } } else - lspconfig[lsp].setup { on_attach = require("lsp-format").on_attach, capabilities = capabilities } + lspconfig[lsp].setup { + -- on_attach = require("lsp-format").on_attach, + capabilities = capabilities + } end end