diff options
| author | Elvis Claros Castro <elvis@claros.ar> | 2024-07-12 11:18:14 -0300 |
|---|---|---|
| committer | Elvis Claros Castro <elvis@claros.ar> | 2024-07-12 11:18:14 -0300 |
| commit | ea0f4bf8ffade657b1d45152dbc183d4679e75c4 (patch) | |
| tree | cc1fb023bc308e019ddce33a4b0aed39f56805dc /lua/pi/lsp/servers | |
| parent | 1fd0af14d592d612c2aaab7717c04c8806ba3daa (diff) | |
| download | nvim-conf-ea0f4bf8ffade657b1d45152dbc183d4679e75c4.tar.gz nvim-conf-ea0f4bf8ffade657b1d45152dbc183d4679e75c4.zip | |
Feat: PI
Diffstat (limited to 'lua/pi/lsp/servers')
| -rw-r--r-- | lua/pi/lsp/servers/emmet_ls.lua | 12 | ||||
| -rw-r--r-- | lua/pi/lsp/servers/html.lua | 14 | ||||
| -rw-r--r-- | lua/pi/lsp/servers/jsonls.lua | 14 | ||||
| -rw-r--r-- | lua/pi/lsp/servers/kotlin_language_server.lua | 12 | ||||
| -rw-r--r-- | lua/pi/lsp/servers/lua_ls.lua | 36 | ||||
| -rw-r--r-- | lua/pi/lsp/servers/phpactor.lua | 80 | ||||
| -rw-r--r-- | lua/pi/lsp/servers/python.lua | 16 | ||||
| -rw-r--r-- | lua/pi/lsp/servers/rust_analyzer.lua | 24 | ||||
| -rw-r--r-- | lua/pi/lsp/servers/texlab.lua | 16 | ||||
| -rw-r--r-- | lua/pi/lsp/servers/tsserver.lua | 33 | ||||
| -rw-r--r-- | lua/pi/lsp/servers/vscode_smarty_langserver.lua | 25 |
11 files changed, 282 insertions, 0 deletions
diff --git a/lua/pi/lsp/servers/emmet_ls.lua b/lua/pi/lsp/servers/emmet_ls.lua new file mode 100644 index 0000000..717edf8 --- /dev/null +++ b/lua/pi/lsp/servers/emmet_ls.lua @@ -0,0 +1,12 @@ +local lsp_attach = require "pi.lsp.attach" +local lsp_flags = require "pi.lsp.flags" + +return function(ops) + local capabilities = require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities()) + return vim.tbl_extend("force", { + on_attach = lsp_attach, + flags = lsp_flags, + capabilities = capabilities, + filetypes = { "html", "typescriptreact", "javascriptreact", "css", "sass", "scss", "less", "blade", "vue" }, + }, ops) +end diff --git a/lua/pi/lsp/servers/html.lua b/lua/pi/lsp/servers/html.lua new file mode 100644 index 0000000..b20553b --- /dev/null +++ b/lua/pi/lsp/servers/html.lua @@ -0,0 +1,14 @@ +local lsp_attach = require "pi.lsp.attach" +local lsp_flags = require "pi.lsp.flags" + +return function(ops) + local config = { + on_attach = lsp_attach, + flags = lsp_flags, + } + if vim.fn.executable "html-languageserver" == 1 then + config.cmd = { "html-languageserver", "--stdio" } + end + + return vim.tbl_extend("force", config, ops) +end diff --git a/lua/pi/lsp/servers/jsonls.lua b/lua/pi/lsp/servers/jsonls.lua new file mode 100644 index 0000000..3fa16e1 --- /dev/null +++ b/lua/pi/lsp/servers/jsonls.lua @@ -0,0 +1,14 @@ +local lsp_attach = require "pi.lsp.attach" +local lsp_flags = require "pi.lsp.flags" + +return function(ops) + local config = { + on_attach = lsp_attach, + flags = lsp_flags, + } + if vim.fn.executable "json-languageserver" == 1 then + config.cmd = { "json-languageserver", "--stdio" } + end + + return vim.tbl_extend("force", config, ops) +end diff --git a/lua/pi/lsp/servers/kotlin_language_server.lua b/lua/pi/lsp/servers/kotlin_language_server.lua new file mode 100644 index 0000000..59e9406 --- /dev/null +++ b/lua/pi/lsp/servers/kotlin_language_server.lua @@ -0,0 +1,12 @@ +local lsp_attach = require "pi.lsp.attach" +local lsp_flags = require "pi.lsp.flags" +return function(ops) + return vim.tbl_extend("force", { + on_attach = lsp_attach, + flags = lsp_flags, + settings = { + ["kotlin-language-server"] = { + } + } + }, ops) +end diff --git a/lua/pi/lsp/servers/lua_ls.lua b/lua/pi/lsp/servers/lua_ls.lua new file mode 100644 index 0000000..3975310 --- /dev/null +++ b/lua/pi/lsp/servers/lua_ls.lua @@ -0,0 +1,36 @@ +local lsp_attach = require "pi.lsp.attach" +local lsp_flags = require "pi.lsp.flags" + +return function(ops) + if ops.neodev == true then + require("neodev").setup() + end + + return vim.tbl_extend("force", { + on_attach = lsp_attach, + flags = lsp_flags, + settings = { + Lua = { + runtime = { + version = "LuaJIT", + }, + diagnostics = { + globals = { "vim" }, + }, + workspace = { + library = vim.api.nvim_get_runtime_file("", true), + checkThirdParty = false, + }, + telemetry = { + enable = false, + }, + hint = { + enable = true, + }, + completion = { + callSnippet = "Replace", + }, + }, + }, + }, ops) +end diff --git a/lua/pi/lsp/servers/phpactor.lua b/lua/pi/lsp/servers/phpactor.lua new file mode 100644 index 0000000..e5a92ed --- /dev/null +++ b/lua/pi/lsp/servers/phpactor.lua @@ -0,0 +1,80 @@ +local lsp_attach = require "pi.lsp.attach" +local lsp_flags = require "pi.lsp.flags" + +local function phpactor_attach(_, bufnr) + vim.api.nvim_buf_create_user_command(bufnr, "LspPhpactorReindex", function() + vim.lsp.buf_notify(bufnr, "phpactor/index/reindex", {}) + end, {}) + + vim.api.nvim_buf_create_user_command(bufnr, "LspPhpactorStatus", function() + local results, _ = vim.lsp.buf_request_sync(bufnr, "phpactor/status", { ["return"] = true }) + + local content = "" + + for _, res in pairs(results or {}) do + if res ~= nil and res["result"] ~= nil then + content = content .. res["result"] + end + end + + local Popup = require "nui.popup" + local event = require("nui.utils.autocmd").event + + local popup = Popup { + enter = true, + focusable = true, + border = { + style = "rounded", + }, + position = "50%", + size = { + width = "80%", + height = "60%", + }, + } + + -- mount/open the component + popup:mount() + + -- unmount component when cursor leaves buffer + popup:on(event.BufLeave, function() + popup:unmount() + end) + local out = {} + for match in string.gmatch(content, "[^\n]+") do + table.insert(out, match) + end + + -- vim.api.nvim_buf_set_option(popup.bufnr, "filetype", "markdown") + vim.api.nvim_buf_set_lines(popup.bufnr, 0, 1, false, out) + end, {}) +end + +return function(ops) + return vim.tbl_extend("force", { + on_attach = function(client, bufnr) + lsp_attach(client, bufnr) + phpactor_attach(client, bufnr) + end, + flags = lsp_flags, + filetypes = { "php", "blade" }, + init_options = { + ["language_server_worse_reflection.inlay_hints.enable"] = true, + ["language_server_worse_reflection.inlay_hints.params"] = true, + ["language_server_worse_reflection.inlay_hints.types"] = true, + ["language_server_configuration.auto_config"] = false, + ["code_transform.import_globals"] = true, + ["language_server_phpstan.enabled"] = true, + ["language_server_phpstan.level"] = 7, + ["language_server_phpstan.bin"] = "phpstan", + }, + handlers = { + ["textDocument/inlayHint"] = function(err, result, ...) + for _, res in ipairs(result) do + res.label = res.label .. ": " + end + vim.lsp.handlers["textDocument/inlayHint"](err, result, ...) + end, + }, + }, ops) +end diff --git a/lua/pi/lsp/servers/python.lua b/lua/pi/lsp/servers/python.lua new file mode 100644 index 0000000..db561aa --- /dev/null +++ b/lua/pi/lsp/servers/python.lua @@ -0,0 +1,16 @@ +local lsp_attach = require "pi.lsp.attach" +local lsp_flags = require "pi.lsp.flags" +return function (ops) + return vim.tbl_extend("force", { + on_attach = lsp_attach, + flags = lsp_flags, + settings = { + ["pyright"] = { + disableOrganizeImports = false, + disableDiagnostics = false, + disableLanguageServices = false, + typeCheckingMode = "strict", + } + } + }, ops) +end diff --git a/lua/pi/lsp/servers/rust_analyzer.lua b/lua/pi/lsp/servers/rust_analyzer.lua new file mode 100644 index 0000000..8999ef8 --- /dev/null +++ b/lua/pi/lsp/servers/rust_analyzer.lua @@ -0,0 +1,24 @@ +local lsp_attach = require "pi.lsp.attach" +local lsp_flags = require "pi.lsp.flags" + +return function(ops) + return vim.tbl_extend("force", { + on_attach = lsp_attach, + flags = lsp_flags, + settings = { + ["rust-analyzer"] = { + checkOnSave = { + allFeatures = true, + overrideCommand = { + "cargo", + "clippy", + "--workspace", + "--message-format=json", + "--all-targets", + "--all-features", + }, + }, + }, + }, + }, ops) +end diff --git a/lua/pi/lsp/servers/texlab.lua b/lua/pi/lsp/servers/texlab.lua new file mode 100644 index 0000000..523628b --- /dev/null +++ b/lua/pi/lsp/servers/texlab.lua @@ -0,0 +1,16 @@ +local lsp_attach = require "pi.lsp.attach" +local lsp_flags = require "pi.lsp.flags" +return function(ops) + return vim.tbl_extend("force", { + on_attach = lsp_attach, + flags = lsp_flags, + settings = { + ["texlab"] = { + latexFormatter = "latexindent", + latexindent = { + modifyLineBreaks = false + } + } + } + }, ops) +end diff --git a/lua/pi/lsp/servers/tsserver.lua b/lua/pi/lsp/servers/tsserver.lua new file mode 100644 index 0000000..c68c894 --- /dev/null +++ b/lua/pi/lsp/servers/tsserver.lua @@ -0,0 +1,33 @@ +local lsp_attach = require "pi.lsp.attach" +local lsp_flags = require "pi.lsp.flags" + +return function(ops) + return vim.tbl_extend("force", { + on_attach = lsp_attach, + flags = lsp_flags, + settings = { + typescript = { + inlayHints = { + includeInlayParameterNameHints = "all", + includeInlayParameterNameHintsWhenArgumentMatchesName = false, + includeInlayFunctionParameterTypeHints = true, + includeInlayVariableTypeHints = true, + includeInlayPropertyDeclarationTypeHints = true, + includeInlayFunctionLikeReturnTypeHints = true, + includeInlayEnumMemberValueHints = true, + }, + }, + javascript = { + inlayHints = { + includeInlayParameterNameHints = "all", + includeInlayParameterNameHintsWhenArgumentMatchesName = false, + includeInlayFunctionParameterTypeHints = true, + includeInlayVariableTypeHints = true, + includeInlayPropertyDeclarationTypeHints = true, + includeInlayFunctionLikeReturnTypeHints = true, + includeInlayEnumMemberValueHints = true, + }, + }, + }, + }, ops) +end diff --git a/lua/pi/lsp/servers/vscode_smarty_langserver.lua b/lua/pi/lsp/servers/vscode_smarty_langserver.lua new file mode 100644 index 0000000..bf29082 --- /dev/null +++ b/lua/pi/lsp/servers/vscode_smarty_langserver.lua @@ -0,0 +1,25 @@ +local lsp_attach = require "pi.lsp.attach" +local lsp_flags = require "pi.lsp.flags" + +return function(ops) + return vim.tbl_extend("force", { + on_attach = lsp_attach, + flags = lsp_flags, + settings = { + css = { + validate = true + }, + smarty = { + pluginDirs = {} + }, + ["smarty_ls"] = { + checkOnSave = { + overrideCommand = { + "smarty-language-server", + "--stdio", + }, + }, + }, + }, + }, ops) +end |