local lsp_attach = require "pi.lsp.attach" local lsp_flags = require "pi.lsp.flags" return function(ops) if ops.neodev == true then -- Setup neodev with explicit configuration for native LSP require("neodev").setup { library = { enabled = true, runtime = true, types = true, plugins = true, }, setup_jsonls = true, lspconfig = false, -- Don't let neodev override lspconfig setup } end local capabilities = require("blink.cmp").get_lsp_capabilities(vim.lsp.protocol.make_client_capabilities()) return vim.tbl_extend("force", { cmd = { "lua-language-server" }, filetypes = { "lua" }, capabilities = capabilities, 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, -- Disable some problematic hints that might cause position issues setType = false, paramType = true, paramName = "Disable", -- Can be "All", "Literal", "Disable" semicolon = "Disable", -- Can be "All", "SameLine", "Disable" arrayIndex = "Disable", -- Can be "All", "Auto", "Disable" }, completion = { callSnippet = "Replace", }, }, }, }, ops) end