diff --git a/lazy-lock.json b/lazy-lock.json index 6f01a64..a0a7b4c 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -23,12 +23,12 @@ "mason-lspconfig.nvim": { "branch": "main", "commit": "56e435e09f8729af2d41973e81a0db440f8fe9c9" }, "mason-null-ls.nvim": { "branch": "main", "commit": "e270134d83ba59425edc53356c6fd337b61bb8dd" }, "mason.nvim": { "branch": "main", "commit": "c43eeb5614a09dc17c03a7fb49de2e05de203924" }, - "mini.animate": { "branch": "main", "commit": "626c51eba5d344572d6da0938044a73369de8b8b" }, + "mini.animate": { "branch": "main", "commit": "82519630b2760ffc516ebc387bef632f9c07b9f5" }, "mini.indentscope": { "branch": "main", "commit": "cf07f19e718ebb0bcc5b00999083ce11c37b8d40" }, "neoscroll.nvim": { "branch": "master", "commit": "6e3546751076890304428150e53bd59198a4505d" }, "noice.nvim": { "branch": "main", "commit": "92433164e2f7118d4122c7674c3834d9511722ba" }, "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" }, "nvim-autopairs": { "branch": "master", "commit": "c6139ca0d5ad7af129ea6c89cb4c56093f2c034a" }, "nvim-cmp": { "branch": "main", "commit": "04e0ca376d6abdbfc8b52180f8ea236cbfddf782" }, @@ -46,7 +46,7 @@ "nvim-ts-rainbow2": { "branch": "master", "commit": "b3120cd5ae9ca524af9cb602f41e12e301fa985f" }, "nvim-web-devicons": { "branch": "master", "commit": "a55b801b7ef5719ca25692c3a0a5447fdfb692ed" }, "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" }, "toggleterm.nvim": { "branch": "main", "commit": "193786e0371e3286d3bc9aa0079da1cd41beaa62" }, "tokyonight.nvim": { "branch": "main", "commit": "67c6050e1ca41260c919236a098ba278472c7520" }, diff --git a/lua/user/lsp/mason.lua b/lua/user/lsp/mason.lua index 0609247..0a5e7f5 100644 --- a/lua/user/lsp/mason.lua +++ b/lua/user/lsp/mason.lua @@ -1,68 +1,68 @@ 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 + for i, v in ipairs(array) do + if v == value then + return i + end + end + return nil end local data_exists, custom_lsp = pcall(require, "core.config") if data_exists then - for _, client in pairs(custom_lsp.mason_ensure_installed) do - table.insert(servers, client) - end + for _, client in pairs(custom_lsp.mason_ensure_installed) do + table.insert(servers, client) + end end local unregis_lsp = {} local data_ok, unregis = pcall(require, "core.config") if data_ok then - if unregis.unregister_lsp ~= nil then - unregis_lsp = unregis.unregister_lsp - end + if unregis.unregister_lsp ~= nil then + unregis_lsp = unregis.unregister_lsp + end end local settings = { - ui = { - border = "none", - icons = { - -- package_installed = "◍", - -- package_pending = "◍", - -- package_uninstalled = "◍", - package_pending = " ", - package_installed = " ", - package_uninstalled = " ", - }, - keymaps = { - -- Keymap to expand a server in the UI - toggle_server_expand = "", - -- 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, + ui = { + border = "none", + icons = { + -- package_installed = "◍", + -- package_pending = "◍", + -- package_uninstalled = "◍", + package_pending = " ", + package_installed = " ", + package_uninstalled = " ", + }, + keymaps = { + -- Keymap to expand a server in the UI + toggle_server_expand = "", + -- 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, + ensure_installed = servers, + automatic_installation = true, }) -- -- * 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") if not lspconfig_status_ok then - return + return end local opts = {} require("mason-lspconfig").setup_handlers({ - function(server_name) -- default handler (optional) - 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 - -- if server_name == "lua_ls" then - -- server_name = "sumneko_lua" - -- end - opts = { - on_attach = require("user.lsp.handlers").on_attach, - capabilities = require("user.lsp.handlers").capabilities, - } + function(server_name) -- default handler (optional) + 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 + -- if server_name == "lua_ls" then + -- server_name = "sumneko_lua" + -- end + opts = { + on_attach = require("user.lsp.handlers").on_attach, + 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) - if require_ok then - opts = vim.tbl_deep_extend("force", conf_opts, opts) - end - lspconfig[server_name].setup(opts) - 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, - ["tsserver"] = function() - lspconfig.tsserver.setup({ - on_attach = require("user.lsp.handlers").on_attach, - capabilities = require("user.lsp.handlers").capabilities, - -- 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", - }, - }) - end, - ["emmet_ls"] = function() - lspconfig.emmet_ls.setup({ - on_attach = require("user.lsp.handlers").on_attach, - capabilities = require("user.lsp.handlers").capabilities, - -- add cmd - 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"), - }) - end, - ["eslint"] = function() - lspconfig.eslint.setup({ - on_attach = require("user.lsp.handlers").on_attach, - capabilities = require("user.lsp.handlers").capabilities, - -- add cmd - 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"), - }) - end, - ["kotlin_language_server"] = function() - lspconfig.kotlin_language_server.setup({ - on_attach = require("user.lsp.handlers").on_attach, - capabilities = require("user.lsp.handlers").capabilities, - 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" - ), - }) - end, - ["clangd"] = function() - lspconfig.clangd.setup({ - on_attach = require("user.lsp.handlers").on_attach, - capabilities = require("user.lsp.handlers").capabilities, - 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(), - }) - end, + 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, + -- 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, + -- ["tsserver"] = function() + -- lspconfig.tsserver.setup({ + -- on_attach = require("user.lsp.handlers").on_attach, + -- capabilities = require("user.lsp.handlers").capabilities, + -- -- 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", + -- }, + -- }) + -- end, + -- ["emmet_ls"] = function() + -- lspconfig.emmet_ls.setup({ + -- on_attach = require("user.lsp.handlers").on_attach, + -- capabilities = require("user.lsp.handlers").capabilities, + -- -- add cmd + -- 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"), + -- }) + -- end, + -- ["eslint"] = function() + -- lspconfig.eslint.setup({ + -- on_attach = require("user.lsp.handlers").on_attach, + -- capabilities = require("user.lsp.handlers").capabilities, + -- -- add cmd + -- 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"), + -- }) + -- end, + -- ["kotlin_language_server"] = function() + -- lspconfig.kotlin_language_server.setup({ + -- on_attach = require("user.lsp.handlers").on_attach, + -- capabilities = require("user.lsp.handlers").capabilities, + -- 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" + -- ), + -- }) + -- end, + -- ["clangd"] = function() + -- lspconfig.clangd.setup({ + -- on_attach = require("user.lsp.handlers").on_attach, + -- capabilities = require("user.lsp.handlers").capabilities, + -- 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(), + -- }) + -- end, }) diff --git a/lua/user/lsp/settings/clangd.lua b/lua/user/lsp/settings/clangd.lua new file mode 100644 index 0000000..e46126d --- /dev/null +++ b/lua/user/lsp/settings/clangd.lua @@ -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(), +} diff --git a/lua/user/lsp/settings/emmet_ls.lua b/lua/user/lsp/settings/emmet_ls.lua new file mode 100644 index 0000000..ae99f39 --- /dev/null +++ b/lua/user/lsp/settings/emmet_ls.lua @@ -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"), +} diff --git a/lua/user/lsp/settings/eslint.lua b/lua/user/lsp/settings/eslint.lua new file mode 100644 index 0000000..8f3aa92 --- /dev/null +++ b/lua/user/lsp/settings/eslint.lua @@ -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"), +} diff --git a/lua/user/lsp/settings/kotlin_language_server.lua b/lua/user/lsp/settings/kotlin_language_server.lua new file mode 100644 index 0000000..6be1ed9 --- /dev/null +++ b/lua/user/lsp/settings/kotlin_language_server.lua @@ -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" + ), +} diff --git a/lua/user/lsp/settings/lua_ls.lua b/lua/user/lsp/settings/lua_ls.lua index 0ac454a..9f5af6e 100644 --- a/lua/user/lsp/settings/lua_ls.lua +++ b/lua/user/lsp/settings/lua_ls.lua @@ -9,7 +9,13 @@ return { library = { [vim.fn.expand("$VIMRUNTIME/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, }, }, }, diff --git a/lua/user/lsp/settings/tsserver.lua b/lua/user/lsp/settings/tsserver.lua new file mode 100644 index 0000000..fc2aad7 --- /dev/null +++ b/lua/user/lsp/settings/tsserver.lua @@ -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", + }, +} diff --git a/lua/user/webdevicons.lua b/lua/user/webdevicons.lua index 960683f..71e3a90 100644 --- a/lua/user/webdevicons.lua +++ b/lua/user/webdevicons.lua @@ -113,6 +113,18 @@ material_icon.setup({ web_devicons.setup({ override = material_icon.get_icons(), override_by_filename = { + [".profile"] = { + icon = "󰙄", + color = "#9C9C9C", + cterm_color = "240", + name = "profiledata", + }, + [".eslint_d"] = { + icon = "󰱺", + color = "#4930bd", + cterm_color = "240", + name = "eslintd", + }, [".eslintrc.cjs"] = { icon = "󰱺", color = "#4930bd", @@ -137,6 +149,12 @@ web_devicons.setup({ cterm_color = "240", name = "prettierrc", }, + [".prettierd"] = { + icon = "", + color = "#ea5e5e", + cterm_color = "240", + name = "prettierd", + }, [".vscodeignore"] = { icon = "", color = "#30A2FF",