return { -- Java -- For checksums: https://github.com/mfussenegger/nvim-jdtls/discussions/249#discussioncomment-3159367 -- It's here first because it needs to have load before lspconfig apparently { "nvim-java/nvim-java", dependencies = { "neovim/nvim-lspconfig", }, config = function() require("java").setup() require("lspconfig").jdtls.setup({}) end }, -- -- https://github.com/williamboman/mason.nvim?tab=readme-ov-file#configuration for more information -- https://github.com/williamboman/mason-lspconfig.nvim?tab=readme-ov-file#setup for more info { "williamboman/mason.nvim", dependencies = { "williamboman/mason-lspconfig.nvim", "neovim/nvim-lspconfig", -- https://github.com/neovim/nvim-lspconfig for more information }, opts = function() require("mason").setup({ registries = { "github:nvim-java/mason-registry", "github:mason-org/mason-registry" } }) require("mason-lspconfig").setup({ ensure_installed = { -- Language Servers "lua_ls", "pylsp", "clangd", "bashls", "ts_ls", "eslint", "cssls", "html", "tailwindcss", -- Formatters "prettier", "stylua", "black" } }) local capabilities = require('cmp_nvim_lsp').default_capabilities() local config = require("lspconfig") -- LSP Servers config.lua_ls.setup { capabilities = capabilities } -- FOR bashls -- Make sure to install 'shellcheck', :MasonInstall shellcheck -- Make sure to install 'shfmt', :MasonInstall shfmt config.bashls.setup { capabilities = capabilities } config.pylsp.setup { capabilities = capabilities } config.clangd.setup { cmd = { "clangd", "--background-index", "--clang-tidy", "--log=verbose", "--query-driver=/usr/bin/c++", "--suggest-missing-includes", "--all-scopes-completion", "--completion-style=detailed" }, init_options = { fallback_flags = { "-std=c++17" }, }, capabilities = capabilities } config.ts_ls.setup { capabilities = capabilities, init_options = { preferences = { disableSuggestions = false } }, } config.eslint.setup { capabilities = capabilities, settings = { autoFixOnSave = true } } config.html.setup { capabilities = capabilities, } config.cssls.setup { capabilities = capabilities, settings = { css = { lint = { unknownAtRules = "ignore" } }, scss = { lint = { unknownAtRules = "ignore" } } } } config.tailwindcss.setup { } end }, }