return { "neovim/nvim-lspconfig", -- How to add an LSP for a specific programming language? -- 1. Use `:Mason` to install the corresponding LSP. -- 2. Add the configuration below. The syntax is `lspconfig..setup(...)` -- Hint (find here): https://github.com/neovim/nvim-lspconfig/blob/master/doc/configs.md config = function() -- Set different settings for different languages' LSP. -- Support List: https://github.com/neovim/nvim-lspconfig/blob/master/doc/configs.md local lspconfig = require("lspconfig") -- Case 1. For CMake Users -- $ cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON . -- Case 2. For Bazel Users, use https://github.com/hedronvision/bazel-compile-commands-extractor -- Case 3. If you don't use any build tool and all files in a project use the same build flags -- Place your compiler flags in the compile_flags.txt file, located in the root directory -- of your project. Each line in the file should contain a single compiler flag. -- src: https://clangd.llvm.org/installation#compile_commandsjson lspconfig.clangd.setup({}) lspconfig.gopls.setup({}) lspconfig.bashls.setup({}) lspconfig.zls.setup({}) -- src: https://docs.astral.sh/ruff/editors/setup/#neovim lspconfig.ruff.setup({}) lspconfig.pylsp.setup({ settings = { -- configure plugins in pylsp pylsp = { plugins = { pyflakes = { enabled = false }, pylint = { enabled = false }, pycodestyle = { enabled = false }, }, }, }, }) lspconfig.lua_ls.setup({ settings = { Lua = { runtime = { -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim). version = "LuaJIT", }, diagnostics = { -- Get the language server to recognize the `vim` global. globals = { "vim" }, }, workspace = { -- Make the server aware of Neovim runtime files. library = vim.api.nvim_get_runtime_file("", true), }, -- Do not send telemetry data containing a randomized but unique identifier. telemetry = { enable = false, }, }, }, }) end, }