add: move config to individual file

This commit is contained in:
asep komarudin 2024-03-01 15:19:53 +07:00
parent 554d68c7ae
commit 549a63a3da
9 changed files with 291 additions and 187 deletions

View file

@ -23,12 +23,12 @@
"mason-lspconfig.nvim": { "branch": "main", "commit": "56e435e09f8729af2d41973e81a0db440f8fe9c9" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "56e435e09f8729af2d41973e81a0db440f8fe9c9" },
"mason-null-ls.nvim": { "branch": "main", "commit": "e270134d83ba59425edc53356c6fd337b61bb8dd" }, "mason-null-ls.nvim": { "branch": "main", "commit": "e270134d83ba59425edc53356c6fd337b61bb8dd" },
"mason.nvim": { "branch": "main", "commit": "c43eeb5614a09dc17c03a7fb49de2e05de203924" }, "mason.nvim": { "branch": "main", "commit": "c43eeb5614a09dc17c03a7fb49de2e05de203924" },
"mini.animate": { "branch": "main", "commit": "626c51eba5d344572d6da0938044a73369de8b8b" }, "mini.animate": { "branch": "main", "commit": "82519630b2760ffc516ebc387bef632f9c07b9f5" },
"mini.indentscope": { "branch": "main", "commit": "cf07f19e718ebb0bcc5b00999083ce11c37b8d40" }, "mini.indentscope": { "branch": "main", "commit": "cf07f19e718ebb0bcc5b00999083ce11c37b8d40" },
"neoscroll.nvim": { "branch": "master", "commit": "6e3546751076890304428150e53bd59198a4505d" }, "neoscroll.nvim": { "branch": "master", "commit": "6e3546751076890304428150e53bd59198a4505d" },
"noice.nvim": { "branch": "main", "commit": "92433164e2f7118d4122c7674c3834d9511722ba" }, "noice.nvim": { "branch": "main", "commit": "92433164e2f7118d4122c7674c3834d9511722ba" },
"none-ls-extras.nvim": { "branch": "main", "commit": "c226aca7a506dd4325fb96188bffe804d24bbf18" }, "none-ls-extras.nvim": { "branch": "main", "commit": "c226aca7a506dd4325fb96188bffe804d24bbf18" },
"none-ls.nvim": { "branch": "main", "commit": "2236d2bf621b64ccbceebc452137b25ecc7f6228" }, "none-ls.nvim": { "branch": "main", "commit": "e6d3abffa77597dac35de723e11daaee2fafce77" },
"nui.nvim": { "branch": "main", "commit": "a0fd35fcbb4cb479366f1dc5f20145fd718a3733" }, "nui.nvim": { "branch": "main", "commit": "a0fd35fcbb4cb479366f1dc5f20145fd718a3733" },
"nvim-autopairs": { "branch": "master", "commit": "c6139ca0d5ad7af129ea6c89cb4c56093f2c034a" }, "nvim-autopairs": { "branch": "master", "commit": "c6139ca0d5ad7af129ea6c89cb4c56093f2c034a" },
"nvim-cmp": { "branch": "main", "commit": "04e0ca376d6abdbfc8b52180f8ea236cbfddf782" }, "nvim-cmp": { "branch": "main", "commit": "04e0ca376d6abdbfc8b52180f8ea236cbfddf782" },
@ -46,7 +46,7 @@
"nvim-ts-rainbow2": { "branch": "master", "commit": "b3120cd5ae9ca524af9cb602f41e12e301fa985f" }, "nvim-ts-rainbow2": { "branch": "master", "commit": "b3120cd5ae9ca524af9cb602f41e12e301fa985f" },
"nvim-web-devicons": { "branch": "master", "commit": "a55b801b7ef5719ca25692c3a0a5447fdfb692ed" }, "nvim-web-devicons": { "branch": "master", "commit": "a55b801b7ef5719ca25692c3a0a5447fdfb692ed" },
"plenary.nvim": { "branch": "master", "commit": "50012918b2fc8357b87cff2a7f7f0446e47da174" }, "plenary.nvim": { "branch": "master", "commit": "50012918b2fc8357b87cff2a7f7f0446e47da174" },
"smart-splits.nvim": { "branch": "master", "commit": "e1e1e6ca3754bd8ef971fb69673cc17965eb9e37" }, "smart-splits.nvim": { "branch": "master", "commit": "1339ffe7426d1b20f179ffc03f858eaab38376c0" },
"telescope.nvim": { "branch": "master", "commit": "5f5fc3aa75e9fc824d4fbbb5de31f172b43f620d" }, "telescope.nvim": { "branch": "master", "commit": "5f5fc3aa75e9fc824d4fbbb5de31f172b43f620d" },
"toggleterm.nvim": { "branch": "main", "commit": "193786e0371e3286d3bc9aa0079da1cd41beaa62" }, "toggleterm.nvim": { "branch": "main", "commit": "193786e0371e3286d3bc9aa0079da1cd41beaa62" },
"tokyonight.nvim": { "branch": "main", "commit": "67c6050e1ca41260c919236a098ba278472c7520" }, "tokyonight.nvim": { "branch": "main", "commit": "67c6050e1ca41260c919236a098ba278472c7520" },

View file

@ -1,68 +1,68 @@
local servers = { local servers = {
"lua_ls", "lua_ls",
} }
local function idxOf(array, value) local function idxOf(array, value)
for i, v in ipairs(array) do for i, v in ipairs(array) do
if v == value then if v == value then
return i return i
end end
end end
return nil return nil
end end
local data_exists, custom_lsp = pcall(require, "core.config") local data_exists, custom_lsp = pcall(require, "core.config")
if data_exists then if data_exists then
for _, client in pairs(custom_lsp.mason_ensure_installed) do for _, client in pairs(custom_lsp.mason_ensure_installed) do
table.insert(servers, client) table.insert(servers, client)
end end
end end
local unregis_lsp = {} local unregis_lsp = {}
local data_ok, unregis = pcall(require, "core.config") local data_ok, unregis = pcall(require, "core.config")
if data_ok then if data_ok then
if unregis.unregister_lsp ~= nil then if unregis.unregister_lsp ~= nil then
unregis_lsp = unregis.unregister_lsp unregis_lsp = unregis.unregister_lsp
end end
end end
local settings = { local settings = {
ui = { ui = {
border = "none", border = "none",
icons = { icons = {
-- package_installed = "◍", -- package_installed = "◍",
-- package_pending = "◍", -- package_pending = "◍",
-- package_uninstalled = "◍", -- package_uninstalled = "◍",
package_pending = "", package_pending = "",
package_installed = "", package_installed = "",
package_uninstalled = "", package_uninstalled = "",
}, },
keymaps = { keymaps = {
-- Keymap to expand a server in the UI -- Keymap to expand a server in the UI
toggle_server_expand = "<CR>", toggle_server_expand = "<CR>",
-- Keymap to install the server under the current cursor position -- Keymap to install the server under the current cursor position
install_server = "i", install_server = "i",
-- Keymap to reinstall/update the server under the current cursor position -- Keymap to reinstall/update the server under the current cursor position
update_server = "u", update_server = "u",
-- Keymap to check for new version for the server under the current cursor position -- Keymap to check for new version for the server under the current cursor position
check_server_version = "c", check_server_version = "c",
-- Keymap to update all installed servers -- Keymap to update all installed servers
update_all_servers = "U", update_all_servers = "U",
-- Keymap to check which installed servers are outdated -- Keymap to check which installed servers are outdated
check_outdated_servers = "C", check_outdated_servers = "C",
-- Keymap to uninstall a server -- Keymap to uninstall a server
uninstall_server = "X", uninstall_server = "X",
}, },
}, },
log_level = vim.log.levels.INFO, log_level = vim.log.levels.INFO,
max_concurrent_installers = 4, max_concurrent_installers = 4,
} }
require("mason").setup(settings) require("mason").setup(settings)
-- * buka remark ini jika akan menggunakan list serverrs diatas dan remark config dibawah -- * buka remark ini jika akan menggunakan list serverrs diatas dan remark config dibawah
require("mason-lspconfig").setup({ require("mason-lspconfig").setup({
ensure_installed = servers, ensure_installed = servers,
automatic_installation = true, automatic_installation = true,
}) })
-- --
-- * buka remark ini jika ingin menjalankan dengan cara install dan remark config diatas (pilih satu) -- * buka remark ini jika ingin menjalankan dengan cara install dan remark config diatas (pilih satu)
@ -70,151 +70,151 @@ require("mason-lspconfig").setup({
local lspconfig_status_ok, lspconfig = pcall(require, "lspconfig") local lspconfig_status_ok, lspconfig = pcall(require, "lspconfig")
if not lspconfig_status_ok then if not lspconfig_status_ok then
return return
end end
local opts = {} local opts = {}
require("mason-lspconfig").setup_handlers({ require("mason-lspconfig").setup_handlers({
function(server_name) -- default handler (optional) function(server_name) -- default handler (optional)
local is_skip = false local is_skip = false
local my_index = idxOf(unregis_lsp, server_name) local my_index = idxOf(unregis_lsp, server_name)
if my_index ~= nil then if my_index ~= nil then
is_skip = true is_skip = true
end end
if not is_skip then if not is_skip then
-- if server_name == "lua_ls" then -- if server_name == "lua_ls" then
-- server_name = "sumneko_lua" -- server_name = "sumneko_lua"
-- end -- end
opts = { opts = {
on_attach = require("user.lsp.handlers").on_attach, on_attach = require("user.lsp.handlers").on_attach,
capabilities = require("user.lsp.handlers").capabilities, capabilities = require("user.lsp.handlers").capabilities,
} }
server_name = vim.split(server_name, "@")[1] server_name = vim.split(server_name, "@")[1]
local require_ok, conf_opts = pcall(require, "user.lsp.settings." .. server_name) local require_ok, conf_opts = pcall(require, "user.lsp.settings." .. server_name)
if require_ok then if require_ok then
opts = vim.tbl_deep_extend("force", conf_opts, opts) opts = vim.tbl_deep_extend("force", conf_opts, opts)
end end
lspconfig[server_name].setup(opts) lspconfig[server_name].setup(opts)
end end
end, end,
-- Next, you can provide targeted overrides for specific servers. -- Next, you can provide targeted overrides for specific servers.
-- ["rust_analyzer"] = function() -- ["rust_analyzer"] = function()
-- require("rust-tools").setup({}) -- require("rust-tools").setup({})
-- end, -- end,
-- ["lua_ls"] = function() -- ["lua_ls"] = function()
-- lspconfig.sumneko_lua.setup({ -- lspconfig.sumneko_lua.setup({
-- settings = { -- settings = {
-- Lua = { -- Lua = {
-- diagnostics = { -- diagnostics = {
-- globals = { "vim" }, -- globals = { "vim" },
-- }, -- },
-- }, -- },
-- }, -- },
-- }) -- })
-- end, -- end,
["tsserver"] = function() -- ["tsserver"] = function()
lspconfig.tsserver.setup({ -- lspconfig.tsserver.setup({
on_attach = require("user.lsp.handlers").on_attach, -- on_attach = require("user.lsp.handlers").on_attach,
capabilities = require("user.lsp.handlers").capabilities, -- capabilities = require("user.lsp.handlers").capabilities,
-- add cmd -- -- add cmd
cmd = { "typescript-language-server", "--stdio" }, -- cmd = { "typescript-language-server", "--stdio" },
-- add file type support -- -- add file type support
filetypes = { -- filetypes = {
"javascript", -- "javascript",
"javascriptreact", -- "javascriptreact",
"javascript.jsx", -- "javascript.jsx",
"typescript", -- "typescript",
"typescriptreact", -- "typescriptreact",
"typescript.tsx", -- "typescript.tsx",
}, -- },
-- add dynamic root dir support -- -- add dynamic root dir support
root_dir = require("lspconfig.util").root_pattern("package.json", "tsconfig.json", "jsconfig.json", ".git"), -- root_dir = require("lspconfig.util").root_pattern("package.json", "tsconfig.json", "jsconfig.json", ".git"),
init_options = { -- init_options = {
hostInfo = "neovim", -- hostInfo = "neovim",
}, -- },
}) -- })
end, -- end,
["emmet_ls"] = function() -- ["emmet_ls"] = function()
lspconfig.emmet_ls.setup({ -- lspconfig.emmet_ls.setup({
on_attach = require("user.lsp.handlers").on_attach, -- on_attach = require("user.lsp.handlers").on_attach,
capabilities = require("user.lsp.handlers").capabilities, -- capabilities = require("user.lsp.handlers").capabilities,
-- add cmd -- -- add cmd
cmd = { "emmet-ls", "-c", "--stdio" }, -- cmd = { "emmet-ls", "-c", "--stdio" },
-- add file type support -- -- add file type support
-- filetypes = { -- -- filetypes = {
-- "javascript", -- -- "javascript",
-- "javascriptreact", -- -- "javascriptreact",
-- "javascript.jsx", -- -- "javascript.jsx",
-- "typescript", -- -- "typescript",
-- "typescriptreact", -- -- "typescriptreact",
-- "typescript.tsx", -- -- "typescript.tsx",
-- "astro", -- -- "astro",
-- "css", -- -- "css",
-- "eruby", -- -- "eruby",
-- "html", -- -- "html",
-- "htmldjango", -- -- "htmldjango",
-- "less", -- -- "less",
-- "pug", -- -- "pug",
-- "sass", -- -- "sass",
-- "scss", -- -- "scss",
-- "svelte", -- -- "svelte",
-- "vue" -- }, -- -- "vue" -- },
-- add dynamic root dir support -- -- add dynamic root dir support
root_dir = require("lspconfig.util").root_pattern("package.json", "tsconfig.json", "jsconfig.json", ".git"), -- root_dir = require("lspconfig.util").root_pattern("package.json", "tsconfig.json", "jsconfig.json", ".git"),
}) -- })
end, -- end,
["eslint"] = function() -- ["eslint"] = function()
lspconfig.eslint.setup({ -- lspconfig.eslint.setup({
on_attach = require("user.lsp.handlers").on_attach, -- on_attach = require("user.lsp.handlers").on_attach,
capabilities = require("user.lsp.handlers").capabilities, -- capabilities = require("user.lsp.handlers").capabilities,
-- add cmd -- -- add cmd
cmd = { "vscode-eslint-language-server", "--stdio" }, -- add file type support -- cmd = { "vscode-eslint-language-server", "--stdio" }, -- add file type support
filetypes = { -- filetypes = {
"javascript", -- "javascript",
"javascriptreact", -- "javascriptreact",
"javascript.jsx", -- "javascript.jsx",
"typescript", -- "typescript",
"typescriptreact", -- "typescriptreact",
"typescript.tsx", -- "typescript.tsx",
}, -- },
-- add dynamic root dir support -- -- add dynamic root dir support
root_dir = require("lspconfig.util").root_pattern("package.json", "tsconfig.json", "jsconfig.json", ".git"), -- root_dir = require("lspconfig.util").root_pattern("package.json", "tsconfig.json", "jsconfig.json", ".git"),
}) -- })
end, -- end,
["kotlin_language_server"] = function() -- ["kotlin_language_server"] = function()
lspconfig.kotlin_language_server.setup({ -- lspconfig.kotlin_language_server.setup({
on_attach = require("user.lsp.handlers").on_attach, -- on_attach = require("user.lsp.handlers").on_attach,
capabilities = require("user.lsp.handlers").capabilities, -- capabilities = require("user.lsp.handlers").capabilities,
cmd = { "kotlin-language-server" }, -- cmd = { "kotlin-language-server" },
filetypes = { "kotlin" }, -- filetypes = { "kotlin" },
root_dir = require("lspconfig.util").root_pattern( -- root_dir = require("lspconfig.util").root_pattern(
"build.gradle.kts", -- "build.gradle.kts",
"build.gradle", -- "build.gradle",
"settings.gradle", -- "settings.gradle",
"gradlew", -- "gradlew",
"pom.xml", -- "pom.xml",
"build.gradle.kts", -- "build.gradle.kts",
"build.kts", -- "build.kts",
".git" -- ".git"
), -- ),
}) -- })
end, -- end,
["clangd"] = function() -- ["clangd"] = function()
lspconfig.clangd.setup({ -- lspconfig.clangd.setup({
on_attach = require("user.lsp.handlers").on_attach, -- on_attach = require("user.lsp.handlers").on_attach,
capabilities = require("user.lsp.handlers").capabilities, -- capabilities = require("user.lsp.handlers").capabilities,
root_dir = require("lspconfig.util").root_pattern( -- root_dir = require("lspconfig.util").root_pattern(
"build", -- "build",
"compile_commands.json", -- "compile_commands.json",
".git", -- ".git",
"mvnw", -- "mvnw",
"gradlew", -- "gradlew",
"pom.xml", -- "pom.xml",
"build.gradle" -- "build.gradle"
) or vim.loop.cwd() or vim.fn.getcwd(), -- ) or vim.loop.cwd() or vim.fn.getcwd(),
}) -- })
end, -- end,
}) })

View file

@ -0,0 +1,11 @@
return {
root_dir = require("lspconfig.util").root_pattern(
"build",
"compile_commands.json",
".git",
"mvnw",
"gradlew",
"pom.xml",
"build.gradle"
) or vim.loop.cwd() or vim.fn.getcwd(),
}

View file

@ -0,0 +1,24 @@
return {
cmd = { "emmet-ls", "-c", "--stdio" },
-- add file type support
-- filetypes = {
-- "javascript",
-- "javascriptreact",
-- "javascript.jsx",
-- "typescript",
-- "typescriptreact",
-- "typescript.tsx",
-- "astro",
-- "css",
-- "eruby",
-- "html",
-- "htmldjango",
-- "less",
-- "pug",
-- "sass",
-- "scss",
-- "svelte",
-- "vue" -- },
-- add dynamic root dir support
root_dir = require("lspconfig.util").root_pattern("package.json", "tsconfig.json", "jsconfig.json", ".git"),
}

View file

@ -0,0 +1,13 @@
return {
cmd = { "vscode-eslint-language-server", "--stdio" }, -- add file type support
filetypes = {
"javascript",
"javascriptreact",
"javascript.jsx",
"typescript",
"typescriptreact",
"typescript.tsx",
},
-- add dynamic root dir support
root_dir = require("lspconfig.util").root_pattern("package.json", "tsconfig.json", "jsconfig.json", ".git"),
}

View file

@ -0,0 +1,14 @@
return {
cmd = { "kotlin-language-server" },
filetypes = { "kotlin" },
root_dir = require("lspconfig.util").root_pattern(
"build.gradle.kts",
"build.gradle",
"settings.gradle",
"gradlew",
"pom.xml",
"build.gradle.kts",
"build.kts",
".git"
),
}

View file

@ -9,7 +9,13 @@ return {
library = { library = {
[vim.fn.expand("$VIMRUNTIME/lua")] = true, [vim.fn.expand("$VIMRUNTIME/lua")] = true,
[vim.fn.stdpath("config") .. "/lua"] = true, [vim.fn.stdpath("config") .. "/lua"] = true,
[vim.fn.expand("$VIMRUNTIME")] = true,
["${3rd}/busted/library"] = true,
["${3rd}/luassert/library"] = true,
["${3rd}/luv/library"] = true,
}, },
maxPreload = 5000,
preloadFileSize = 10000,
}, },
}, },
}, },

View file

@ -0,0 +1,18 @@
return {
-- add cmd
cmd = { "typescript-language-server", "--stdio" },
-- add file type support
filetypes = {
"javascript",
"javascriptreact",
"javascript.jsx",
"typescript",
"typescriptreact",
"typescript.tsx",
},
-- add dynamic root dir support
root_dir = require("lspconfig.util").root_pattern("package.json", "tsconfig.json", "jsconfig.json", ".git"),
init_options = {
hostInfo = "neovim",
},
}

View file

@ -113,6 +113,18 @@ material_icon.setup({
web_devicons.setup({ web_devicons.setup({
override = material_icon.get_icons(), override = material_icon.get_icons(),
override_by_filename = { override_by_filename = {
[".profile"] = {
icon = "󰙄",
color = "#9C9C9C",
cterm_color = "240",
name = "profiledata",
},
[".eslint_d"] = {
icon = "󰱺",
color = "#4930bd",
cterm_color = "240",
name = "eslintd",
},
[".eslintrc.cjs"] = { [".eslintrc.cjs"] = {
icon = "󰱺", icon = "󰱺",
color = "#4930bd", color = "#4930bd",
@ -137,6 +149,12 @@ web_devicons.setup({
cterm_color = "240", cterm_color = "240",
name = "prettierrc", name = "prettierrc",
}, },
[".prettierd"] = {
icon = "",
color = "#ea5e5e",
cterm_color = "240",
name = "prettierd",
},
[".vscodeignore"] = { [".vscodeignore"] = {
icon = "", icon = "",
color = "#30A2FF", color = "#30A2FF",