diff --git a/ftplugin/kotlin.lua b/ftplugin/kotlin.lua index c753d86..b0881dc 100644 --- a/ftplugin/kotlin.lua +++ b/ftplugin/kotlin.lua @@ -3,57 +3,57 @@ vim.opt_local.shiftwidth = 4 vim.opt_local.tabstop = 4 vim.opt_local.softtabstop = 4 -local lspconfig_status_ok, lspconfig = pcall(require, "lspconfig") -if not lspconfig_status_ok then - return -end +-- local status_ok, configs = pcall(require, "nvim-treesitter.configs") +-- if not status_ok then +-- return +-- end -local status_ok, configs = pcall(require, "nvim-treesitter.configs") -if not status_ok then - return -end +-- local lspconfig_status_ok, lspconfig = pcall(require, "lspconfig") +-- if not lspconfig_status_ok then +-- return +-- end -local mason_ok, mason_lsp = pcall(require, "mason-lspconfig") -if not mason_ok then - return -end +-- local mason_ok, mason_lsp = pcall(require, "mason-lspconfig") +-- if not mason_ok then +-- return +-- end -mason_lsp.setup({ - ensure_installed = { "kotlin_language_server" }, - automatic_installation = true, -}) +-- mason_lsp.setup({ +-- ensure_installed = { "kotlin_language_server" }, +-- automatic_installation = true, +-- }) -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" - ), -}) +-- 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" +-- ), +-- }) -configs.setup({ - ensure_installed = { "kotlin" }, -- pastikan parser TypeScript terinstal - highlight = { - enable = true, -- aktifkan highlight berbasis treesitter - additional_vim_regex_highlighting = false, - }, - rainbow = { - enable = false, - }, - incremental_selection = { enable = true }, - indent = { enable = true, disable = { "python", "css" } }, - autopairs = { - enable = true, - }, -}) - -require("nvim-ts-autotag").setup() +-- configs.setup({ +-- ensure_installed = { "kotlin" }, -- pastikan parser TypeScript terinstal +-- highlight = { +-- enable = true, -- aktifkan highlight berbasis treesitter +-- additional_vim_regex_highlighting = false, +-- }, +-- rainbow = { +-- enable = false, +-- }, +-- incremental_selection = { enable = true }, +-- indent = { enable = true, disable = { "python", "css" } }, +-- autopairs = { +-- enable = true, +-- }, +-- }) +-- +-- require("nvim-ts-autotag").setup() diff --git a/ftplugin/typescriptreact.lua b/ftplugin/typescriptreact.lua index ee27db9..0001ba8 100644 --- a/ftplugin/typescriptreact.lua +++ b/ftplugin/typescriptreact.lua @@ -1,89 +1,89 @@ -local lspconfig_status_ok, lspconfig = pcall(require, "lspconfig") -if not lspconfig_status_ok then - return -end +-- local lspconfig_status_ok, lspconfig = pcall(require, "lspconfig") +-- if not lspconfig_status_ok then +-- return +-- end -local function idxOf(array, value) - for i, v in ipairs(array) do - if v == value then - return i - end - end - return nil -end +-- local function idxOf(array, value) +-- for i, v in ipairs(array) do +-- if v == value then +-- return i +-- end +-- end +-- return nil +-- 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 -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 +-- end -local idxts = idxOf(unregis_lsp, "tsserver") -if idxts ~= nil then - 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 +-- local idxts = idxOf(unregis_lsp, "tsserver") +-- if idxts ~= nil then +-- 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 -local idxemmet = idxOf(unregis_lsp, "emmet_ls") -if idxemmet ~= nil then - 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", - }, - -- add dynamic root dir support - root_dir = require("lspconfig.util").root_pattern("package.json", "tsconfig.json", "jsconfig.json", ".git"), - }) -end +-- local idxemmet = idxOf(unregis_lsp, "emmet_ls") +-- if idxemmet ~= nil then +-- 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", +-- }, +-- -- add dynamic root dir support +-- root_dir = require("lspconfig.util").root_pattern("package.json", "tsconfig.json", "jsconfig.json", ".git"), +-- }) +-- end -local idxeslint = idxOf(unregis_lsp, "eslint") -if idxeslint ~= nil then - 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 +-- local idxeslint = idxOf(unregis_lsp, "eslint") +-- if idxeslint ~= nil then +-- 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 local status_ok, configs = pcall(require, "nvim-treesitter.configs") if not status_ok then diff --git a/lua/user/lsp/mason.lua b/lua/user/lsp/mason.lua index 97a9322..0609247 100644 --- a/lua/user/lsp/mason.lua +++ b/lua/user/lsp/mason.lua @@ -115,4 +115,106 @@ require("mason-lspconfig").setup_handlers({ -- }, -- }) -- 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, })