local lspconfig = require("lspconfig") local on_attach = function(_, bufnr) local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc") local opts = { noremap = true, silent = true } buf_set_keymap("n", "K", ":lua vim.lsp.buf.hover()", opts) --> information about the symbol under the cursors in a floating window buf_set_keymap("n", "rn", ":lua vim.lsp.util.rename()", opts) --> rename old_fname to new_fname buf_set_keymap("n", "ca", ":lua vim.lsp.buf.code_action()", opts) --> selects a code action available at the current cursor position buf_set_keymap("n", "gd", ":lua vim.lsp.buf.definition()", opts) --> jumps to the definition of the symbol under the cursor buf_set_keymap("n", "gi", ":lua vim.lsp.buf.implementation()", opts) --> lists all the implementations for the symbol under the cursor in the quickfix window buf_set_keymap("n", "gr", ":lua vim.lsp.buf.references()", opts) --> lists all the references to the symbl under the cursor in the quickfix window buf_set_keymap("n", "ld", ":lua vim.diagnostic.open_float()", opts) buf_set_keymap("n", "[d", ":lua vim.diagnostic.goto_prev()", opts) buf_set_keymap("n", "]d", ":lua vim.diagnostic.goto_next()", opts) buf_set_keymap("n", "lq", ":lua vim.diagnostic.setloclist()", opts) buf_set_keymap("n", "lf", ":lua vim.lsp.buf.formatting()", opts) --> formats the current buffer end ---@diagnostic disable-next-line: undefined-global local capabilities = vim.lsp.protocol.make_client_capabilities() capabilities = require("cmp_nvim_lsp").default_capabilities(capabilities) --lspconfig x cmp_nvim_lsp -- Set up lspconfig. -- require("lspconfig")["clangd"].setup({ lspconfig.clangd.setup({ on_attach = on_attach, capabilities = capabilities, }) lspconfig.pyright.setup({ on_attach = on_attach, capabilities = capabilities, }) lspconfig.bashls.setup({ on_attach = on_attach, capabilities = capabilities, }) lspconfig.cssls.setup({ on_attach = on_attach, capabilities = capabilities, }) lspconfig.gopls.setup({ on_attach = on_attach, capabilities = capabilities, }) lspconfig.html.setup({ on_attach = on_attach, capabilities = capabilities, }) lspconfig.lua_ls.setup({ on_attach = on_attach, capabilities = capabilities, settings = { Lua = { runtime = { version = 'LuaJIT',}, diagnostics = { globals = {'vim','require',},}, workspace = { library = vim.api.nvim_get_runtime_file("", true),}, telemetry = {enable = false,}, }, }, }) lspconfig.marksman.setup({ on_attach = on_attach, capabilities = capabilities, }) lspconfig.rust_analyzer.setup({ on_attach = on_attach, capabilities = capabilities, }) lspconfig.tsserver.setup({ on_attach = on_attach, capabilities = capabilities, }) lspconfig.yamlls.setup({ on_attach = on_attach, capabilities = capabilities, })