my demo first config lua

This commit is contained in:
2023-12-13 00:27:19 +03:00
commit 61e95391fb
268 changed files with 12847 additions and 0 deletions

View 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

View 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

View 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

View 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

View 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

View 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

View 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