Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- return {
- { -- LSP Configuration & Plugins
- "neovim/nvim-lspconfig",
- dependencies = {
- { "williamboman/mason.nvim", config = true, name = "mason" }, -- NOTE: Must be loaded before dependants
- { "williamboman/mason-lspconfig.nvim", dependencies = "mason", name = "mason-lsp" },
- {
- "WhoIsSethDaniel/mason-tool-installer.nvim",
- config = function()
- require("mason-tool-installer").setup({}) -- Or your specific config
- end,
- dependencies = { "mason", "mason-lsp" }, -- Explicit dependency
- },
- { "j-hui/fidget.nvim" }, -- notifications
- { "folke/neodev.nvim", opts = {} },
- { "saghen/blink.cmp" }, -- completion engine
- },
- config = function()
- vim.diagnostic.config({ -- some diagnostics configs like showing warnings inline etc
- virtual_text = true,
- -- signs = true,
- underline = true,
- update_in_insert = false,
- severity_sort = true,
- })
- vim.api.nvim_create_autocmd("LspAttach", {
- group = vim.api.nvim_create_augroup("kickstart-lsp-attach", { clear = true }),
- callback = function(event)
- local client = vim.lsp.get_client_by_id(event.data.client_id)
- if client and client.server_capabilities.documentHighlightProvider then
- local highlight_augroup = vim.api.nvim_create_augroup("kickstart-lsp-highlight", { clear = false })
- vim.api.nvim_create_autocmd({
- "CursorHold",
- "CursorHoldI",
- }, {
- buffer = event.buf,
- group = highlight_augroup,
- callback = vim.lsp.buf.document_highlight,
- })
- vim.api.nvim_create_autocmd({
- "CursorMoved",
- "CursorMovedI",
- }, {
- buffer = event.buf,
- group = highlight_augroup,
- callback = vim.lsp.buf.clear_references,
- })
- vim.api.nvim_create_autocmd("LspDetach", {
- group = vim.api.nvim_create_augroup("kickstart-lsp-detach", { clear = true }),
- callback = function(event2)
- vim.lsp.buf.clear_references()
- vim.api.nvim_clear_autocmds({
- group = "kickstart-lsp-highlight",
- buffer = event2.buf,
- })
- end,
- })
- end
- end,
- })
- local capabilities = vim.lsp.protocol.make_client_capabilities()
- capabilities = require("blink.cmp").get_lsp_capabilities(capabilities)
- local servers = {
- }
- require("mason").setup()
- local ensure_installed = vim.tbl_keys(servers or {})
- vim.list_extend(ensure_installed, {
- -- i dumped all the mason installed stuff here, lsp, daps, linters, formatters etc,
- -- TODO: refactor this stuff to a separate mason file
- "stylua", -- Used to format Lua code
- "bash-language-server",
- "black",
- "chrome-debug-adapter",
- "cpplint",
- "css-lsp",
- "css-variables-language-server",
- "cssmodules-language-server",
- "delve",
- "emmet-ls",
- "eslint-lsp",
- "html-lsp",
- "htmlhint",
- "js-debug-adapter",
- "json-lsp",
- "jsonlint",
- "lua-language-server",
- "luacheck",
- "markdownlint",
- "mdformat",
- "nextls",
- "prettierd",
- "rust-analyzer",
- "shellcheck",
- "stylelint",
- "stylua",
- "systemd-language-server",
- "tailwindcss-language-server",
- "typescript-language-server",
- "typos",
- "vim-language-server",
- })
- require("mason-tool-installer").setup({
- ensure_installed = ensure_installed,
- })
- require("mason-lspconfig").setup({
- handlers = {
- function(server_name)
- local server = servers[server_name] or {}
- server.capabilities = vim.tbl_deep_extend("force", {}, capabilities, server.capabilities or {})
- server.capabilities = require("blink.cmp").get_lsp_capabilities(server.capabilities)
- require("lspconfig")[server_name].setup(server)
- end,
- },
- })
- end,
- },
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement