]> Arthur Taft Gitweb - nvim.git/blob - lua/plugins/lsp.lua
Change tab indent to 4 spaces
[nvim.git] / lua / plugins / lsp.lua
1 return {
2         { "williamboman/mason.nvim", opts = {} },
3
4         {
5                 "williamboman/mason-lspconfig.nvim",
6                 dependencies = { "williamboman/mason.nvim", "neovim/nvim-lspconfig" },
7                 opts = {
8                         ensure_installed = {
9                                 "pyright",
10                                 "ruff",
11                                 "bashls",
12                                 "lua_ls",
13                                 "texlab",
14                                 "dockerls",
15                                 "yamlls",
16                                 "marksman",
17                         },
18                         -- v2 can auto-enable; installation still happens via Mason
19                         automatic_enable = true,
20                 },
21         },
22
23         {
24                 "neovim/nvim-lspconfig",
25                 dependencies = { "hrsh7th/cmp-nvim-lsp" },
26                 config = function()
27                         local caps = require("cmp_nvim_lsp").default_capabilities()
28
29                         vim.diagnostic.config({
30                                 virtual_text = { spacing = 2, prefix = "●" },
31                                 float = { border = "rounded" },
32                                 severity_sort = true,
33                         })
34
35                         local function on_attach(_, _) end
36
37                         vim.lsp.config("pyright", { capabilities = caps, on_attach = on_attach })
38                         vim.lsp.config(
39                                 "ruff",
40                                 { capabilities = caps, on_attach = on_attach, init_options = { settings = { args = {} } } }
41                         )
42                         vim.lsp.config("bashls", { capabilities = caps, on_attach = on_attach })
43                         vim.lsp.config("lua_ls", {
44                                 capabilities = caps,
45                                 on_attach = on_attach,
46                                 settings = {
47                                         Lua = {
48                                                 diagnostics = { globals = { "vim" } },
49                                                 workspace = { checkThirdParty = false },
50                                                 format = { enable = false },
51                                         },
52                                 },
53                         })
54                         vim.lsp.config("texlab", { capabilities = caps, on_attach = on_attach })
55                         vim.lsp.config("dockerls", { capabilities = caps, on_attach = on_attach })
56                         vim.lsp.config("yamlls", { capabilities = caps, on_attach = on_attach })
57                         vim.lsp.config("marksman", { capabilities = caps, on_attach = on_attach })
58                 end,
59         },
60 }