vim.lsp.config("ts_ls", { on_attach = function(client, bufnr) local opts = { noremap = true, silent = true, buffer = bufnr } vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts) vim.keymap.set("n", "K", vim.lsp.buf.hover, opts) vim.keymap.set("n", "rn", vim.lsp.buf.rename, opts) end, filetypes = { "typescript", "typescriptreact", "javascript", "javascriptreact", }, cmd = { "typescript-language-server", "--stdio" }, root_dir = vim.fs.root(0, { "package.json", "tsconfig.json", "jsconfig.json", ".git", }), settings = { format = { enable = true, insertSpaceAfterCommaDelimiter = true, insertSpaceAfterSemicolon = true, insertSpaceBeforeAndAfterOperator = true, indentStyle = "smart", indentSize = 2, wrapLineLength = 120, }, diagnostics = { enable = true, }, completions = { enable = true, }, }, })