my demo first config lua
This commit is contained in:
12
lua/alpha/lsp/servers/emmet_ls.lua
Normal file
12
lua/alpha/lsp/servers/emmet_ls.lua
Normal file
@@ -0,0 +1,12 @@
|
||||
local lsp_attach = require "alpha.lsp.attach"
|
||||
local lsp_flags = require "alpha.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
|
||||
14
lua/alpha/lsp/servers/html.lua
Normal file
14
lua/alpha/lsp/servers/html.lua
Normal file
@@ -0,0 +1,14 @@
|
||||
local lsp_attach = require "alpha.lsp.attach"
|
||||
local lsp_flags = require "alpha.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
|
||||
14
lua/alpha/lsp/servers/jsonls.lua
Normal file
14
lua/alpha/lsp/servers/jsonls.lua
Normal file
@@ -0,0 +1,14 @@
|
||||
local lsp_attach = require "alpha.lsp.attach"
|
||||
local lsp_flags = require "alpha.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
|
||||
36
lua/alpha/lsp/servers/lua_ls.lua
Normal file
36
lua/alpha/lsp/servers/lua_ls.lua
Normal file
@@ -0,0 +1,36 @@
|
||||
local lsp_attach = require "alpha.lsp.attach"
|
||||
local lsp_flags = require "alpha.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
|
||||
80
lua/alpha/lsp/servers/phpactor.lua
Normal file
80
lua/alpha/lsp/servers/phpactor.lua
Normal file
@@ -0,0 +1,80 @@
|
||||
local lsp_attach = require "alpha.lsp.attach"
|
||||
local lsp_flags = require "alpha.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
|
||||
24
lua/alpha/lsp/servers/rust_analyzer.lua
Normal file
24
lua/alpha/lsp/servers/rust_analyzer.lua
Normal file
@@ -0,0 +1,24 @@
|
||||
local lsp_attach = require "alpha.lsp.attach"
|
||||
local lsp_flags = require "alpha.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
|
||||
33
lua/alpha/lsp/servers/tsserver.lua
Normal file
33
lua/alpha/lsp/servers/tsserver.lua
Normal file
@@ -0,0 +1,33 @@
|
||||
local lsp_attach = require "alpha.lsp.attach"
|
||||
local lsp_flags = require "alpha.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
|
||||
Reference in New Issue
Block a user