diff options
| author | Ariel D'Alessandro <dalessandro.ariel@gmail.com> | 2023-01-08 20:17:00 +0100 |
|---|---|---|
| committer | Ariel D'Alessandro <dalessandro.ariel@gmail.com> | 2023-01-08 20:17:00 +0100 |
| commit | 927037c181f379076ab295db0a65e7f713c05a10 (patch) | |
| tree | c5dbdaad8ed1182d62b300bd9100b947f10e707a /lua/alpha | |
| parent | a5e69083458cd3e9b93c5580b2c258ad231d65a1 (diff) | |
| download | nvim-conf-927037c181f379076ab295db0a65e7f713c05a10.tar.gz nvim-conf-927037c181f379076ab295db0a65e7f713c05a10.zip | |
feat: refactor null ls into lsp module
Diffstat (limited to 'lua/alpha')
| -rw-r--r-- | lua/alpha/lsp/init.lua | 2 | ||||
| -rw-r--r-- | lua/alpha/lsp/null-ls.lua | 36 |
2 files changed, 38 insertions, 0 deletions
diff --git a/lua/alpha/lsp/init.lua b/lua/alpha/lsp/init.lua index 86b06a6..c29472d 100644 --- a/lua/alpha/lsp/init.lua +++ b/lua/alpha/lsp/init.lua @@ -10,3 +10,5 @@ require('mason-lspconfig').setup_handlers({ lspconfig[server_name].setup(setups[server_name]()) end }) + +require('alpha.lsp.null-ls') diff --git a/lua/alpha/lsp/null-ls.lua b/lua/alpha/lsp/null-ls.lua new file mode 100644 index 0000000..f7f925c --- /dev/null +++ b/lua/alpha/lsp/null-ls.lua @@ -0,0 +1,36 @@ +local null_ls = require("null-ls") +local composer = require("composer") +local php_actions = require("php-code-actions") +local laravel_actions = require("laravel.code-actions") + +local sources = { + null_ls.builtins.code_actions.gitsigns, + null_ls.builtins.formatting.jq, + null_ls.builtins.code_actions.refactoring, + + php_actions.getter_setter, + php_actions.file_creator, + + null_ls.builtins.diagnostics.phpstan.with({ + to_temp_file = false, + method = null_ls.methods.DIAGNOSTICS_ON_SAVE, + }), +} + +if composer.query({ "require", "symfony/framework-bundle" }) ~= nil then + table.insert(sources, null_ls.builtins.diagnostics.phpcs.with({ + method = null_ls.methods.DIAGNOSTICS_ON_SAVE, + })) +elseif composer.query({ "require", "laravel/framework" }) ~= nil then + table.insert(sources, null_ls.builtins.formatting.pint) + table.insert(sources, laravel_actions.relationships) +end + +null_ls.setup({ + sources = sources, +}) + +vim.keymap.set({ "n", "v" }, "<leader>vca", vim.lsp.buf.code_action, {}) +vim.keymap.set("n", "<leader>vf", function() + return vim.lsp.buf.format({ async = true }) +end, {}) |