mirror of
https://github.com/pojokcodeid/nvim-lazy.git
synced 2025-06-22 17:03:36 +02:00
enc: optimize lsp config & optimize foramat on save
This commit is contained in:
parent
618b816d52
commit
a3143f9ae0
12 changed files with 437 additions and 322 deletions
|
@ -4,7 +4,7 @@
|
||||||
"LuaSnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" },
|
"LuaSnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" },
|
||||||
"alpha-nvim": { "branch": "main", "commit": "41283fb402713fc8b327e60907f74e46166f4cfd" },
|
"alpha-nvim": { "branch": "main", "commit": "41283fb402713fc8b327e60907f74e46166f4cfd" },
|
||||||
"bigfile.nvim": { "branch": "main", "commit": "33eb067e3d7029ac77e081cfe7c45361887a311a" },
|
"bigfile.nvim": { "branch": "main", "commit": "33eb067e3d7029ac77e081cfe7c45361887a311a" },
|
||||||
"bufferline.nvim": { "branch": "main", "commit": "46192e794b73f92136326c10ecdbdbf15e35705f" },
|
"bufferline.nvim": { "branch": "main", "commit": "1662fed6ecd512d1f381fc2a4e77532c379d25c6" },
|
||||||
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
||||||
"cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" },
|
"cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" },
|
||||||
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
|
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
"friendly-snippets": { "branch": "main", "commit": "682157939e57bd6a2c86277dfd4d6fbfce63dbac" },
|
"friendly-snippets": { "branch": "main", "commit": "682157939e57bd6a2c86277dfd4d6fbfce63dbac" },
|
||||||
"gitsigns.nvim": { "branch": "main", "commit": "0b04035bb7b3c83e999b9676e2fb46fd0aa9f910" },
|
"gitsigns.nvim": { "branch": "main", "commit": "0b04035bb7b3c83e999b9676e2fb46fd0aa9f910" },
|
||||||
"indent-blankline.nvim": { "branch": "master", "commit": "4036c8ae9cc29faf8e6443fa5b23e679db055d24" },
|
"indent-blankline.nvim": { "branch": "master", "commit": "4036c8ae9cc29faf8e6443fa5b23e679db055d24" },
|
||||||
"lazy.nvim": { "branch": "main", "commit": "4ea9fe060042f345960ad0c01aa7bca91405e10a" },
|
"lazy.nvim": { "branch": "main", "commit": "378bfb465673a747e9e9f966e518063499e20cfe" },
|
||||||
"lsp-progress.nvim": { "branch": "main", "commit": "55a04895ea20c365b670051a3128265d43bdfa3d" },
|
"lsp-progress.nvim": { "branch": "main", "commit": "55a04895ea20c365b670051a3128265d43bdfa3d" },
|
||||||
"lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" },
|
"lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" },
|
||||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "9ae570e206360e47d30b4c35a4550c165f4ea7b7" },
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "9ae570e206360e47d30b4c35a4550c165f4ea7b7" },
|
||||||
|
@ -27,8 +27,9 @@
|
||||||
"mini.indentscope": { "branch": "main", "commit": "56d42be090e8fcc68eda69cfe55af8c5e562300e" },
|
"mini.indentscope": { "branch": "main", "commit": "56d42be090e8fcc68eda69cfe55af8c5e562300e" },
|
||||||
"neoscroll.nvim": { "branch": "master", "commit": "a731f66f1d39ec6175fd201c5bf849e54abda99c" },
|
"neoscroll.nvim": { "branch": "master", "commit": "a731f66f1d39ec6175fd201c5bf849e54abda99c" },
|
||||||
"neotest": { "branch": "master", "commit": "f30bab1faef13d47f3905e065215c96a42d075ad" },
|
"neotest": { "branch": "master", "commit": "f30bab1faef13d47f3905e065215c96a42d075ad" },
|
||||||
"neotest-jest": { "branch": "main", "commit": "514fd4eae7da15fd409133086bb8e029b65ac43f" },
|
"neotest-gtest": { "branch": "main", "commit": "b44c8afc26cea75ffc80617ce07b4e745a56e589" },
|
||||||
"noice.nvim": { "branch": "main", "commit": "8f1d9966762e62fa8788e5fb1a5f6a86784221d9" },
|
"neotest-phpunit": { "branch": "main", "commit": "baae8dfa0a3aaacd9f0bb6845d6348f5bcdc48bb" },
|
||||||
|
"noice.nvim": { "branch": "main", "commit": "d580646db85f49b8226d52b143a458161f41954a" },
|
||||||
"none-ls-extras.nvim": { "branch": "main", "commit": "336e84b9e43c0effb735b08798ffac382920053b" },
|
"none-ls-extras.nvim": { "branch": "main", "commit": "336e84b9e43c0effb735b08798ffac382920053b" },
|
||||||
"none-ls.nvim": { "branch": "main", "commit": "f1b438ab1709cf9d8875843559d20265013ac755" },
|
"none-ls.nvim": { "branch": "main", "commit": "f1b438ab1709cf9d8875843559d20265013ac755" },
|
||||||
"nui.nvim": { "branch": "main", "commit": "a0fd35fcbb4cb479366f1dc5f20145fd718a3733" },
|
"nui.nvim": { "branch": "main", "commit": "a0fd35fcbb4cb479366f1dc5f20145fd718a3733" },
|
||||||
|
@ -37,7 +38,7 @@
|
||||||
"nvim-colorizer.lua": { "branch": "master", "commit": "85855b38011114929f4058efc97af1059ab3e41d" },
|
"nvim-colorizer.lua": { "branch": "master", "commit": "85855b38011114929f4058efc97af1059ab3e41d" },
|
||||||
"nvim-dap": { "branch": "master", "commit": "5ba8ceace596360321cf33fa4b56d9d46e057ce9" },
|
"nvim-dap": { "branch": "master", "commit": "5ba8ceace596360321cf33fa4b56d9d46e057ce9" },
|
||||||
"nvim-dap-ui": { "branch": "master", "commit": "f7d75cca202b52a60c520ec7b1ec3414d6e77b0f" },
|
"nvim-dap-ui": { "branch": "master", "commit": "f7d75cca202b52a60c520ec7b1ec3414d6e77b0f" },
|
||||||
"nvim-dap-vscode-js": { "branch": "main", "commit": "e7c05495934a658c8aa10afd995dacd796f76091" },
|
"nvim-lint": { "branch": "master", "commit": "941fa1220a61797a51f3af9ec6b7d74c8c7367ce" },
|
||||||
"nvim-lspconfig": { "branch": "master", "commit": "0b8165cf95806bc4bb8f745bb0c92021b2ed4b98" },
|
"nvim-lspconfig": { "branch": "master", "commit": "0b8165cf95806bc4bb8f745bb0c92021b2ed4b98" },
|
||||||
"nvim-material-icon": { "branch": "main", "commit": "2f1d6333bbec2e787774193c9fc7b447b878069a" },
|
"nvim-material-icon": { "branch": "main", "commit": "2f1d6333bbec2e787774193c9fc7b447b878069a" },
|
||||||
"nvim-navic": { "branch": "master", "commit": "8649f694d3e76ee10c19255dece6411c29206a54" },
|
"nvim-navic": { "branch": "master", "commit": "8649f694d3e76ee10c19255dece6411c29206a54" },
|
||||||
|
@ -62,7 +63,7 @@
|
||||||
"vim-startuptime": { "branch": "master", "commit": "97a88e688482a09c3c4b777d07b509b328a5ec29" },
|
"vim-startuptime": { "branch": "master", "commit": "97a88e688482a09c3c4b777d07b509b328a5ec29" },
|
||||||
"vim-visual-multi": { "branch": "master", "commit": "b84a6d42c1c10678928b0bf8327f378c8bc8af5a" },
|
"vim-visual-multi": { "branch": "master", "commit": "b84a6d42c1c10678928b0bf8327f378c8bc8af5a" },
|
||||||
"virt-column.nvim": { "branch": "master", "commit": "b62b4ef0774d19452d4ed18e473e824c7a756f2f" },
|
"virt-column.nvim": { "branch": "master", "commit": "b62b4ef0774d19452d4ed18e473e824c7a756f2f" },
|
||||||
"vscode-js-debug": { "branch": "main", "commit": "9fd0efd39d534304cffd970263148923b627be20" },
|
"vscode-php-debug": { "branch": "main", "commit": "3025d1f01b5b7725e7c1c213d63f3de45f0534b3" },
|
||||||
"which-key.nvim": { "branch": "main", "commit": "0539da005b98b02cf730c1d9da82b8e8edb1c2d2" },
|
"which-key.nvim": { "branch": "main", "commit": "0539da005b98b02cf730c1d9da82b8e8edb1c2d2" },
|
||||||
"yanky.nvim": { "branch": "main", "commit": "9268018e92d02650a94e39dd5f5903c542f7ea11" }
|
"yanky.nvim": { "branch": "main", "commit": "9268018e92d02650a94e39dd5f5903c542f7ea11" }
|
||||||
}
|
}
|
|
@ -156,10 +156,10 @@ pcode.active_javascript_config = {
|
||||||
jest_command = "npm test -- ",
|
jest_command = "npm test -- ",
|
||||||
jest_config = "jest.config.mjs",
|
jest_config = "jest.config.mjs",
|
||||||
}
|
}
|
||||||
pcode.active_php_config = false
|
pcode.active_php_config = true
|
||||||
pcode.active_golang_config = false
|
pcode.active_golang_config = false
|
||||||
pcode.active_python_config = false
|
pcode.active_python_config = false
|
||||||
pcode.active_cpp_config = false
|
pcode.active_cpp_config = true
|
||||||
pcode.active_java_config = {
|
pcode.active_java_config = {
|
||||||
active = false,
|
active = false,
|
||||||
project = "gradle", -- gradle or maven
|
project = "gradle", -- gradle or maven
|
||||||
|
|
|
@ -10,9 +10,9 @@ local cmd, _ = pcall(require, "user.autocommands")
|
||||||
if cmd then
|
if cmd then
|
||||||
require("user.autocommands")
|
require("user.autocommands")
|
||||||
end
|
end
|
||||||
local onsave, _ = pcall(require, "user.format_onsave")
|
-- local onsave, _ = pcall(require, "user.format_onsave")
|
||||||
if onsave then
|
-- if onsave then
|
||||||
require("user.format_onsave")
|
-- require("user.format_onsave")
|
||||||
end
|
-- end
|
||||||
vim.g.pcode_icons = require("user.icons")
|
vim.g.pcode_icons = require("user.icons")
|
||||||
return {}
|
return {}
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
return {
|
return {
|
||||||
|
{
|
||||||
|
"williamboman/mason-lspconfig.nvim",
|
||||||
|
dependencies = {
|
||||||
{
|
{
|
||||||
"neovim/nvim-lspconfig",
|
"neovim/nvim-lspconfig",
|
||||||
lazy = true,
|
lazy = true,
|
||||||
|
@ -15,7 +18,6 @@ return {
|
||||||
{
|
{
|
||||||
"williamboman/mason.nvim",
|
"williamboman/mason.nvim",
|
||||||
lazy = true,
|
lazy = true,
|
||||||
dependencies = { "williamboman/mason-lspconfig.nvim" },
|
|
||||||
cmd = {
|
cmd = {
|
||||||
"Mason",
|
"Mason",
|
||||||
"MasonInstall",
|
"MasonInstall",
|
||||||
|
@ -23,8 +25,86 @@ return {
|
||||||
"MasonUninstallAll",
|
"MasonUninstallAll",
|
||||||
"MasonLog",
|
"MasonLog",
|
||||||
},
|
},
|
||||||
config = function()
|
opts = function()
|
||||||
require("user.lsp")
|
local icons = vim.g.pcode_icons.ui
|
||||||
|
return {
|
||||||
|
ui = {
|
||||||
|
-- border = "none",
|
||||||
|
border = icons.Border,
|
||||||
|
icons = {
|
||||||
|
package_pending = icons.DotCircle,
|
||||||
|
package_installed = icons.CheckCircle,
|
||||||
|
package_uninstalled = icons.BlankCircle,
|
||||||
|
},
|
||||||
|
keymaps = {
|
||||||
|
-- Keymap to expand a server in the UI
|
||||||
|
toggle_server_expand = "<CR>",
|
||||||
|
-- Keymap to install the server under the current cursor position
|
||||||
|
install_server = "i",
|
||||||
|
-- Keymap to reinstall/update the server under the current cursor position
|
||||||
|
update_server = "u",
|
||||||
|
-- Keymap to check for new version for the server under the current cursor position
|
||||||
|
check_server_version = "c",
|
||||||
|
-- Keymap to update all installed servers
|
||||||
|
update_all_servers = "U",
|
||||||
|
-- Keymap to check which installed servers are outdated
|
||||||
|
check_outdated_servers = "C",
|
||||||
|
-- Keymap to uninstall a server
|
||||||
|
uninstall_server = "X",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
log_level = vim.log.levels.INFO,
|
||||||
|
max_concurrent_installers = 4,
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
config = function(_, opts)
|
||||||
|
require("mason").setup(opts)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
event = "BufReadPre",
|
||||||
|
opts = function()
|
||||||
|
local servers = { "lua_ls" }
|
||||||
|
local mason_install = pcode.mason_ensure_installed or {}
|
||||||
|
vim.list_extend(servers, mason_install)
|
||||||
|
return {
|
||||||
|
ensure_installed = servers,
|
||||||
|
automatic_installation = true,
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
config = function(_, opts)
|
||||||
|
require("mason-lspconfig").setup(opts)
|
||||||
|
|
||||||
|
local option = {}
|
||||||
|
local unregis_lsp = pcode.unregister_lsp or {}
|
||||||
|
require("mason-lspconfig").setup_handlers({
|
||||||
|
function(server_name) -- default handler (optional)
|
||||||
|
local capabilities = require("user.lsp.handlers").capabilities
|
||||||
|
if server_name == "clangd" then
|
||||||
|
capabilities.offsetEncoding = { "utf-16" }
|
||||||
|
end
|
||||||
|
local is_skip = false
|
||||||
|
local my_index = idxOf(unregis_lsp, server_name)
|
||||||
|
if my_index ~= nil then
|
||||||
|
is_skip = true
|
||||||
|
end
|
||||||
|
if not is_skip then
|
||||||
|
option = {
|
||||||
|
on_attach = require("user.lsp.handlers").on_attach,
|
||||||
|
capabilities = capabilities,
|
||||||
|
}
|
||||||
|
|
||||||
|
server_name = vim.split(server_name, "@")[1]
|
||||||
|
|
||||||
|
local require_ok, conf_opts = pcall(require, "user.lsp.settings." .. server_name)
|
||||||
|
if require_ok then
|
||||||
|
option = vim.tbl_deep_extend("force", conf_opts, option)
|
||||||
|
end
|
||||||
|
require("lspconfig")[server_name].setup(option)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
require("user.lsp.handlers").setup()
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,8 +32,17 @@ return {
|
||||||
debug = false,
|
debug = false,
|
||||||
sources = sources,
|
sources = sources,
|
||||||
on_attach = function(client, bufnr)
|
on_attach = function(client, bufnr)
|
||||||
if client.supports_method("textDocument/formatting") then
|
|
||||||
vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr })
|
vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr })
|
||||||
|
local filetype = vim.bo.filetype
|
||||||
|
local n = require("null-ls")
|
||||||
|
local s = require("null-ls.sources")
|
||||||
|
local method = n.methods.FORMATTING
|
||||||
|
local available_formatters = s.get_available(filetype, method)
|
||||||
|
|
||||||
|
if
|
||||||
|
(#available_formatters > 0 and client.name == "null-ls")
|
||||||
|
or client.supports_method("textDocument/formatting")
|
||||||
|
then
|
||||||
vim.api.nvim_create_autocmd("BufWritePre", {
|
vim.api.nvim_create_autocmd("BufWritePre", {
|
||||||
group = augroup,
|
group = augroup,
|
||||||
buffer = bufnr,
|
buffer = bufnr,
|
||||||
|
@ -41,10 +50,24 @@ return {
|
||||||
vim.lsp.buf.format({ bufnr = bufnr, timeout_ms = pcode.format_timeout_ms or 5000 })
|
vim.lsp.buf.format({ bufnr = bufnr, timeout_ms = pcode.format_timeout_ms or 5000 })
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
else
|
||||||
|
vim.api.nvim_create_autocmd("BufWritePre", {
|
||||||
|
group = augroup,
|
||||||
|
buffer = bufnr,
|
||||||
|
callback = function()
|
||||||
|
vim.lsp.buf.format({ bufnr = bufnr, timeout_ms = pcode.format_timeout_ms or 5000, filter = nil })
|
||||||
|
end,
|
||||||
|
})
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
vim.schedule(function()
|
||||||
|
pcall(function()
|
||||||
|
vim.api.nvim_clear_autocmds({ group = "LspFormatting" })
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
debug = false,
|
debug = false,
|
||||||
sources = sources,
|
sources = sources,
|
||||||
|
|
|
@ -28,6 +28,15 @@ _G.all_trim = function(s)
|
||||||
return s:match("^%s*(.-)%s*$")
|
return s:match("^%s*(.-)%s*$")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
_G.idxOf = function(array, value)
|
||||||
|
for i, v in ipairs(array) do
|
||||||
|
if v == value then
|
||||||
|
return i
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
-- run if rust config true
|
-- run if rust config true
|
||||||
if pcode.active_rust_config then
|
if pcode.active_rust_config then
|
||||||
table.insert(pcode.mason_ensure_installed, "rust_analyzer")
|
table.insert(pcode.mason_ensure_installed, "rust_analyzer")
|
||||||
|
|
|
@ -1,17 +1,45 @@
|
||||||
local run = 0
|
-- local run = 0
|
||||||
local frmt = pcode.format_on_save or 0
|
-- local frmt = pcode.format_on_save or 0
|
||||||
if frmt == 1 then
|
-- if frmt == 1 then
|
||||||
run = 1
|
-- run = 1
|
||||||
else
|
-- else
|
||||||
run = 0
|
-- run = 0
|
||||||
end
|
-- end
|
||||||
|
--
|
||||||
local buf_clients = vim.lsp.get_clients()
|
-- local buf_clients = vim.lsp.get_clients()
|
||||||
if next(buf_clients) == nil then
|
-- if next(buf_clients) == nil then
|
||||||
run = 0
|
-- run = 0
|
||||||
end
|
-- end
|
||||||
|
--
|
||||||
if run == 1 then
|
-- if run == 1 then
|
||||||
|
-- -- function FORMAT_FILTER(client)
|
||||||
|
-- -- local filetype = vim.bo.filetype
|
||||||
|
-- -- local n = require("null-ls")
|
||||||
|
-- -- local s = require("null-ls.sources")
|
||||||
|
-- -- local method = n.methods.FORMATTING
|
||||||
|
-- -- local available_formatters = s.get_available(filetype, method)
|
||||||
|
-- --
|
||||||
|
-- -- if #available_formatters > 0 then
|
||||||
|
-- -- return client.name == "null-ls"
|
||||||
|
-- -- elseif client.supports_method("textDocument/formatting") then
|
||||||
|
-- -- return true
|
||||||
|
-- -- else
|
||||||
|
-- -- return false
|
||||||
|
-- -- end
|
||||||
|
-- -- end
|
||||||
|
-- --
|
||||||
|
-- -- vim.cmd([[
|
||||||
|
-- -- augroup _lsp
|
||||||
|
-- -- autocmd!
|
||||||
|
-- -- " autocmd BufWritePre * lua vim.lsp.buf.format{timeout_ms =200, filter=format_filter}
|
||||||
|
-- -- autocmd BufWritePre * lua vim.lsp.buf.format{timeout_ms=pcode.format_timeout_ms or 5000 ,filter=FORMAT_FILTER}
|
||||||
|
-- -- augroup end
|
||||||
|
-- -- ]])
|
||||||
|
--
|
||||||
|
-- ---filter passed to vim.lsp.buf.format
|
||||||
|
-- ---always selects null-ls if it's available and caches the value per buffer
|
||||||
|
-- ---@param client table client attached to a buffer
|
||||||
|
-- ---@return boolean if client matches
|
||||||
-- function FORMAT_FILTER(client)
|
-- function FORMAT_FILTER(client)
|
||||||
-- local filetype = vim.bo.filetype
|
-- local filetype = vim.bo.filetype
|
||||||
-- local n = require("null-ls")
|
-- local n = require("null-ls")
|
||||||
|
@ -27,45 +55,17 @@ if run == 1 then
|
||||||
-- return false
|
-- return false
|
||||||
-- end
|
-- end
|
||||||
-- end
|
-- end
|
||||||
--
|
-- vim.api.nvim_create_autocmd("BufWritePre", {
|
||||||
-- vim.cmd([[
|
-- group = "lsp_format_on_save",
|
||||||
-- augroup _lsp
|
-- pattern = "*",
|
||||||
-- autocmd!
|
-- callback = function()
|
||||||
-- " autocmd BufWritePre * lua vim.lsp.buf.format{timeout_ms =200, filter=format_filter}
|
-- vim.lsp.buf.format({ timeout_ms = pcode.format_timeout_ms or 5000, filter = FORMAT_FILTER })
|
||||||
-- autocmd BufWritePre * lua vim.lsp.buf.format{timeout_ms=pcode.format_timeout_ms or 5000 ,filter=FORMAT_FILTER}
|
-- end,
|
||||||
-- augroup end
|
-- })
|
||||||
-- ]])
|
-- else
|
||||||
|
-- vim.schedule(function()
|
||||||
---filter passed to vim.lsp.buf.format
|
-- pcall(function()
|
||||||
---always selects null-ls if it's available and caches the value per buffer
|
-- vim.api.nvim_clear_autocmds({ group = "lsp_format_on_save" })
|
||||||
---@param client table client attached to a buffer
|
-- end)
|
||||||
---@return boolean if client matches
|
-- end)
|
||||||
function FORMAT_FILTER(client)
|
-- end
|
||||||
local filetype = vim.bo.filetype
|
|
||||||
local n = require("null-ls")
|
|
||||||
local s = require("null-ls.sources")
|
|
||||||
local method = n.methods.FORMATTING
|
|
||||||
local available_formatters = s.get_available(filetype, method)
|
|
||||||
|
|
||||||
if #available_formatters > 0 then
|
|
||||||
return client.name == "null-ls"
|
|
||||||
elseif client.supports_method("textDocument/formatting") then
|
|
||||||
return true
|
|
||||||
else
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
vim.api.nvim_create_autocmd("BufWritePre", {
|
|
||||||
group = "lsp_format_on_save",
|
|
||||||
pattern = "*",
|
|
||||||
callback = function()
|
|
||||||
vim.lsp.buf.format({ timeout_ms = pcode.format_timeout_ms or 5000, filter = FORMAT_FILTER })
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
else
|
|
||||||
vim.schedule(function()
|
|
||||||
pcall(function()
|
|
||||||
vim.api.nvim_clear_autocmds({ group = "lsp_format_on_save" })
|
|
||||||
end)
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
local status_ok, _ = pcall(require, "lspconfig")
|
-- local status_ok, _ = pcall(require, "lspconfig")
|
||||||
if not status_ok then
|
-- if not status_ok then
|
||||||
return
|
-- return
|
||||||
end
|
-- end
|
||||||
|
--
|
||||||
require("user.lsp.mason_cfg")
|
-- require("user.lsp.mason_cfg")
|
||||||
--require("user.lsp.config") -- ini hanya untuk windows supaya jdtls jalan, kalau pakai linu x remark saja
|
-- --require("user.lsp.config") -- ini hanya untuk windows supaya jdtls jalan, kalau pakai linu x remark saja
|
||||||
require("user.lsp.handlers").setup()
|
-- require("user.lsp.handlers").setup()
|
||||||
--require("user.lsp.null-lscfg")
|
-- --require("user.lsp.null-lscfg")
|
||||||
|
|
|
@ -1,110 +1,110 @@
|
||||||
local servers = {
|
-- local servers = {
|
||||||
"lua_ls",
|
-- "lua_ls",
|
||||||
}
|
-- }
|
||||||
|
|
||||||
local function idxOf(array, value)
|
|
||||||
for i, v in ipairs(array) do
|
|
||||||
if v == value then
|
|
||||||
return i
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return nil
|
|
||||||
end
|
|
||||||
|
|
||||||
local mason_install = pcode.mason_ensure_installed or {}
|
|
||||||
for _, client in pairs(mason_install) do
|
|
||||||
table.insert(servers, client)
|
|
||||||
end
|
|
||||||
|
|
||||||
local unregis_lsp = pcode.unregister_lsp or {}
|
|
||||||
local icons = vim.g.pcode_icons.ui
|
|
||||||
|
|
||||||
local settings = {
|
|
||||||
ui = {
|
|
||||||
-- border = "none",
|
|
||||||
border = icons.Border,
|
|
||||||
icons = {
|
|
||||||
package_pending = icons.DotCircle,
|
|
||||||
package_installed = icons.CheckCircle,
|
|
||||||
package_uninstalled = icons.BlankCircle,
|
|
||||||
},
|
|
||||||
keymaps = {
|
|
||||||
-- Keymap to expand a server in the UI
|
|
||||||
toggle_server_expand = "<CR>",
|
|
||||||
-- Keymap to install the server under the current cursor position
|
|
||||||
install_server = "i",
|
|
||||||
-- Keymap to reinstall/update the server under the current cursor position
|
|
||||||
update_server = "u",
|
|
||||||
-- Keymap to check for new version for the server under the current cursor position
|
|
||||||
check_server_version = "c",
|
|
||||||
-- Keymap to update all installed servers
|
|
||||||
update_all_servers = "U",
|
|
||||||
-- Keymap to check which installed servers are outdated
|
|
||||||
check_outdated_servers = "C",
|
|
||||||
-- Keymap to uninstall a server
|
|
||||||
uninstall_server = "X",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
log_level = vim.log.levels.INFO,
|
|
||||||
max_concurrent_installers = 4,
|
|
||||||
}
|
|
||||||
|
|
||||||
require("mason").setup(settings)
|
|
||||||
-- * buka remark ini jika akan menggunakan list serverrs diatas dan remark config dibawah
|
|
||||||
require("mason-lspconfig").setup({
|
|
||||||
ensure_installed = servers,
|
|
||||||
automatic_installation = true,
|
|
||||||
})
|
|
||||||
--
|
--
|
||||||
-- * buka remark ini jika ingin menjalankan dengan cara install dan remark config diatas (pilih satu)
|
-- local function idxOf(array, value)
|
||||||
-- require("mason-lspconfig").setup()
|
-- for i, v in ipairs(array) do
|
||||||
|
-- if v == value then
|
||||||
local lspconfig_status_ok, lspconfig = pcall(require, "lspconfig")
|
-- return i
|
||||||
if not lspconfig_status_ok then
|
-- end
|
||||||
return
|
-- end
|
||||||
end
|
-- return nil
|
||||||
|
-- end
|
||||||
local opts = {}
|
--
|
||||||
|
-- local mason_install = pcode.mason_ensure_installed or {}
|
||||||
require("mason-lspconfig").setup_handlers({
|
-- for _, client in pairs(mason_install) do
|
||||||
function(server_name) -- default handler (optional)
|
-- table.insert(servers, client)
|
||||||
local capabilities = require("user.lsp.handlers").capabilities
|
-- end
|
||||||
if server_name == "clangd" then
|
--
|
||||||
capabilities.offsetEncoding = { "utf-16" }
|
-- local unregis_lsp = pcode.unregister_lsp or {}
|
||||||
end
|
-- local icons = vim.g.pcode_icons.ui
|
||||||
local is_skip = false
|
--
|
||||||
local my_index = idxOf(unregis_lsp, server_name)
|
-- local settings = {
|
||||||
if my_index ~= nil then
|
-- ui = {
|
||||||
is_skip = true
|
-- -- border = "none",
|
||||||
end
|
-- border = icons.Border,
|
||||||
if not is_skip then
|
-- icons = {
|
||||||
opts = {
|
-- package_pending = icons.DotCircle,
|
||||||
on_attach = require("user.lsp.handlers").on_attach,
|
-- package_installed = icons.CheckCircle,
|
||||||
capabilities = capabilities,
|
-- package_uninstalled = icons.BlankCircle,
|
||||||
}
|
-- },
|
||||||
|
-- keymaps = {
|
||||||
server_name = vim.split(server_name, "@")[1]
|
-- -- Keymap to expand a server in the UI
|
||||||
|
-- toggle_server_expand = "<CR>",
|
||||||
local require_ok, conf_opts = pcall(require, "user.lsp.settings." .. server_name)
|
-- -- Keymap to install the server under the current cursor position
|
||||||
if require_ok then
|
-- install_server = "i",
|
||||||
opts = vim.tbl_deep_extend("force", conf_opts, opts)
|
-- -- Keymap to reinstall/update the server under the current cursor position
|
||||||
end
|
-- update_server = "u",
|
||||||
lspconfig[server_name].setup(opts)
|
-- -- Keymap to check for new version for the server under the current cursor position
|
||||||
end
|
-- check_server_version = "c",
|
||||||
end,
|
-- -- Keymap to update all installed servers
|
||||||
-- Next, you can provide targeted overrides for specific servers.
|
-- update_all_servers = "U",
|
||||||
-- ["rust_analyzer"] = function()
|
-- -- Keymap to check which installed servers are outdated
|
||||||
-- require("rust-tools").setup({})
|
-- check_outdated_servers = "C",
|
||||||
-- end,
|
-- -- Keymap to uninstall a server
|
||||||
-- ["lua_ls"] = function()
|
-- uninstall_server = "X",
|
||||||
-- lspconfig.sumneko_lua.setup({
|
|
||||||
-- settings = {
|
|
||||||
-- Lua = {
|
|
||||||
-- diagnostics = {
|
|
||||||
-- globals = { "vim" },
|
|
||||||
-- },
|
|
||||||
-- },
|
-- },
|
||||||
-- },
|
-- },
|
||||||
|
-- log_level = vim.log.levels.INFO,
|
||||||
|
-- max_concurrent_installers = 4,
|
||||||
|
-- }
|
||||||
|
--
|
||||||
|
-- require("mason").setup(settings)
|
||||||
|
-- -- * buka remark ini jika akan menggunakan list serverrs diatas dan remark config dibawah
|
||||||
|
-- require("mason-lspconfig").setup({
|
||||||
|
-- ensure_installed = servers,
|
||||||
|
-- automatic_installation = true,
|
||||||
-- })
|
-- })
|
||||||
|
-- --
|
||||||
|
-- -- * buka remark ini jika ingin menjalankan dengan cara install dan remark config diatas (pilih satu)
|
||||||
|
-- -- require("mason-lspconfig").setup()
|
||||||
|
--
|
||||||
|
-- local lspconfig_status_ok, lspconfig = pcall(require, "lspconfig")
|
||||||
|
-- if not lspconfig_status_ok then
|
||||||
|
-- return
|
||||||
|
-- end
|
||||||
|
--
|
||||||
|
-- local opts = {}
|
||||||
|
--
|
||||||
|
-- require("mason-lspconfig").setup_handlers({
|
||||||
|
-- function(server_name) -- default handler (optional)
|
||||||
|
-- local capabilities = require("user.lsp.handlers").capabilities
|
||||||
|
-- if server_name == "clangd" then
|
||||||
|
-- capabilities.offsetEncoding = { "utf-16" }
|
||||||
|
-- end
|
||||||
|
-- local is_skip = false
|
||||||
|
-- local my_index = idxOf(unregis_lsp, server_name)
|
||||||
|
-- if my_index ~= nil then
|
||||||
|
-- is_skip = true
|
||||||
|
-- end
|
||||||
|
-- if not is_skip then
|
||||||
|
-- opts = {
|
||||||
|
-- on_attach = require("user.lsp.handlers").on_attach,
|
||||||
|
-- capabilities = capabilities,
|
||||||
|
-- }
|
||||||
|
--
|
||||||
|
-- server_name = vim.split(server_name, "@")[1]
|
||||||
|
--
|
||||||
|
-- local require_ok, conf_opts = pcall(require, "user.lsp.settings." .. server_name)
|
||||||
|
-- if require_ok then
|
||||||
|
-- opts = vim.tbl_deep_extend("force", conf_opts, opts)
|
||||||
|
-- end
|
||||||
|
-- lspconfig[server_name].setup(opts)
|
||||||
|
-- end
|
||||||
-- end,
|
-- end,
|
||||||
})
|
-- -- Next, you can provide targeted overrides for specific servers.
|
||||||
|
-- -- ["rust_analyzer"] = function()
|
||||||
|
-- -- require("rust-tools").setup({})
|
||||||
|
-- -- end,
|
||||||
|
-- -- ["lua_ls"] = function()
|
||||||
|
-- -- lspconfig.sumneko_lua.setup({
|
||||||
|
-- -- settings = {
|
||||||
|
-- -- Lua = {
|
||||||
|
-- -- diagnostics = {
|
||||||
|
-- -- globals = { "vim" },
|
||||||
|
-- -- },
|
||||||
|
-- -- },
|
||||||
|
-- -- },
|
||||||
|
-- -- })
|
||||||
|
-- -- end,
|
||||||
|
-- })
|
||||||
|
|
|
@ -1,84 +1,84 @@
|
||||||
local null_ls_status_ok, null_ls = pcall(require, "null-ls")
|
-- local null_ls_status_ok, null_ls = pcall(require, "null-ls")
|
||||||
if not null_ls_status_ok then
|
-- if not null_ls_status_ok then
|
||||||
return
|
-- return
|
||||||
end
|
-- end
|
||||||
|
--
|
||||||
-- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/formatting
|
-- -- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/formatting
|
||||||
local formatting = null_ls.builtins.formatting
|
-- local formatting = null_ls.builtins.formatting
|
||||||
-- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics
|
-- -- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics
|
||||||
local diagnostics = null_ls.builtins.diagnostics
|
-- local diagnostics = null_ls.builtins.diagnostics
|
||||||
|
--
|
||||||
local augroup = vim.api.nvim_create_augroup("LspFormatting", {})
|
-- local augroup = vim.api.nvim_create_augroup("LspFormatting", {})
|
||||||
|
--
|
||||||
local sources = {}
|
-- local sources = {}
|
||||||
local ensure_installed = {}
|
-- local ensure_installed = {}
|
||||||
|
--
|
||||||
local data_ok, data_sources = pcall(require, "custom.null-ls")
|
-- local data_ok, data_sources = pcall(require, "custom.null-ls")
|
||||||
if data_ok then
|
-- if data_ok then
|
||||||
for _, cfg in pairs(data_sources.sources) do
|
-- for _, cfg in pairs(data_sources.sources) do
|
||||||
table.insert(sources, cfg)
|
-- table.insert(sources, cfg)
|
||||||
end
|
-- end
|
||||||
end
|
-- end
|
||||||
|
--
|
||||||
-- load data null-ls
|
-- -- load data null-ls
|
||||||
local nullls_data = pcode.null_ls_ensure_installed or {}
|
-- local nullls_data = pcode.null_ls_ensure_installed or {}
|
||||||
for _, nullls in pairs(nullls_data) do
|
-- for _, nullls in pairs(nullls_data) do
|
||||||
table.insert(ensure_installed, nullls)
|
-- table.insert(ensure_installed, nullls)
|
||||||
end
|
-- end
|
||||||
|
--
|
||||||
local mason_ok, mason_null_ls = pcall(require, "mason-null-ls")
|
-- local mason_ok, mason_null_ls = pcall(require, "mason-null-ls")
|
||||||
if mason_ok then
|
-- if mason_ok then
|
||||||
mason_null_ls.setup({
|
-- mason_null_ls.setup({
|
||||||
ensure_installed = ensure_installed,
|
-- ensure_installed = ensure_installed,
|
||||||
})
|
-- })
|
||||||
end
|
-- end
|
||||||
|
--
|
||||||
local run = 0
|
-- local run = 0
|
||||||
local frmt = pcode.format_on_save or 0
|
-- local frmt = pcode.format_on_save or 0
|
||||||
if frmt == 1 then
|
-- if frmt == 1 then
|
||||||
run = 1
|
-- run = 1
|
||||||
end
|
-- end
|
||||||
|
--
|
||||||
if run == 1 then
|
-- if run == 1 then
|
||||||
null_ls.setup({
|
-- null_ls.setup({
|
||||||
debug = false,
|
-- debug = false,
|
||||||
ensure_installed = ensure_installed,
|
-- ensure_installed = ensure_installed,
|
||||||
sources = sources,
|
-- sources = sources,
|
||||||
--sources = {
|
-- --sources = {
|
||||||
--formatting.prettier.with({ extra_args = { "--no-semi", "--single-quote", "--jsx-single-quote" } }),
|
-- --formatting.prettier.with({ extra_args = { "--no-semi", "--single-quote", "--jsx-single-quote" } }),
|
||||||
--formatting.prettier,
|
-- --formatting.prettier,
|
||||||
-- formatting.prettierd,
|
-- -- formatting.prettierd,
|
||||||
-- formatting.black.with({ extra_args = { "--fast" } }),
|
-- -- formatting.black.with({ extra_args = { "--fast" } }),
|
||||||
-- formatting.stylua,
|
-- -- formatting.stylua,
|
||||||
-- formatting.eslint_d,
|
-- -- formatting.eslint_d,
|
||||||
-- formatting.google_java_format,
|
-- -- formatting.google_java_format,
|
||||||
-- formatting.phpcbf,
|
-- -- formatting.phpcbf,
|
||||||
-- formatting.clang_format,
|
-- -- formatting.clang_format,
|
||||||
-- diagnostics.flake8
|
-- -- diagnostics.flake8
|
||||||
-- diagnostics.eslint_d,
|
-- -- diagnostics.eslint_d,
|
||||||
--},
|
-- --},
|
||||||
|
--
|
||||||
on_attach = function(client, bufnr)
|
-- on_attach = function(client, bufnr)
|
||||||
--if client.resolved_capabilities.document_formatting then
|
-- --if client.resolved_capabilities.document_formatting then
|
||||||
--vim.cmd("autocmd BufWritePre <buffer> lua vim.lsp.buf.format{async=true}")
|
-- --vim.cmd("autocmd BufWritePre <buffer> lua vim.lsp.buf.format{async=true}")
|
||||||
|
-- --end
|
||||||
|
-- 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()
|
||||||
|
-- vim.lsp.buf.format({ bufnr = bufnr })
|
||||||
|
-- -- vim.lsp.buf.formatting_sync()
|
||||||
|
-- end,
|
||||||
|
-- })
|
||||||
|
-- end
|
||||||
|
-- end,
|
||||||
|
-- })
|
||||||
|
-- else
|
||||||
|
-- null_ls.setup({
|
||||||
|
-- debug = false,
|
||||||
|
-- ensure_installed = ensure_installed,
|
||||||
|
-- sources = sources,
|
||||||
|
-- })
|
||||||
-- end
|
-- end
|
||||||
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()
|
|
||||||
vim.lsp.buf.format({ bufnr = bufnr })
|
|
||||||
-- vim.lsp.buf.formatting_sync()
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
else
|
|
||||||
null_ls.setup({
|
|
||||||
debug = false,
|
|
||||||
ensure_installed = ensure_installed,
|
|
||||||
sources = sources,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
|
@ -122,6 +122,8 @@ return {
|
||||||
table.insert(buf_client_names, "lsp_fmt")
|
table.insert(buf_client_names, "lsp_fmt")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
elseif not status and supported_formatters and #supported_formatters == 0 then
|
||||||
|
table.insert(buf_client_names, "lsp_fmt")
|
||||||
end
|
end
|
||||||
|
|
||||||
-- add linter
|
-- add linter
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue