local use_google = require("utils").use_google local flags = require("utils").flags return { -- { -- "ray-x/lsp_signature.nvim", -- event = "VeryLazy", -- opts = { -- floating_window = true, -- hint_prefix = "󰡱 ", -- }, -- config = function(_, opts) -- require("lsp_signature").setup(opts) -- end, -- }, { "kosayoda/nvim-lightbulb", commit = "1cae7b7153ae98dcf1b11173a443ac1b6d8e3d49", event = { "LspAttach" }, opts = { autocmd = { enabled = true }, virtual_text = { enabled = true, text = " 󱐋", hl = "DiagnosticWarn", }, sign = { enabled = false }, }, }, { "L3MON4D3/LuaSnip", build = "make install_jsregexp", config = function() require("luasnip.loaders.from_vscode").lazy_load() end, dependencies = { "rafamadriz/friendly-snippets" }, }, { "ray-x/go.nvim", dependencies = { -- optional packages "ray-x/guihua.lua", "neovim/nvim-lspconfig", "nvim-treesitter/nvim-treesitter", }, -- cond = not use_google(), config = function() local capabilities = flags.blink and require("blink.cmp").get_lsp_capabilities(vim.lsp.protocol.make_client_capabilities()) or require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities()) capabilities.offsetEncoding = { "utf-16" } require("go").setup({ lsp_cfg = { capabilities = capabilities }, lsp_keymaps = false, lsp_inlay_hints = { enable = not use_google(), -- doesn't work with ciderlsp }, }) -- Run gofmt + goimports on save local format_sync_grp = vim.api.nvim_create_augroup("goimports", {}) vim.api.nvim_create_autocmd("BufWritePre", { pattern = "*.go", callback = function() require("go.format").goimports() end, group = format_sync_grp, }) end, ft = { "go", "gomod" }, build = ':lua require("go.install").update_all_sync()', -- if you need to install/update all binaries }, { "neovim/nvim-lspconfig", dependencies = { "hrsh7th/nvim-cmp", "saghen/blink.cmp", "saghen/blink.compat", "nvim-lua/lsp-status.nvim", "VonHeikemen/lsp-zero.nvim", }, keys = { { "F", ":lua vim.lsp.buf.format()" }, { "rn", ":lua vim.lsp.buf.rename()" }, { "L", ":lua vim.lsp.buf.hover()" }, { "gr", ":Telescope lsp_references" }, { "gd", ":lua vim.lsp.buf.definition()" }, -- { "gd", "Telescope lsp_definitions" }, { "gD", ":tab split | lua vim.lsp.buf.definition()" }, { "gi", ":lua vim.lsp.buf.implementation()" }, { "gI", ":lua vim.lsp.buf.implementation()" }, { "gR", ":lua vim.lsp.buf.references()" }, { "gt", ":lua vim.lsp.buf.type_definition()" }, { "", ":lua vim.lsp.buf.signature_help()" }, { "", ":lua vim.lsp.buf.signature_help()", mode = "i" }, }, config = function() local lsp_status = require("lsp-status") lsp_status.register_progress() local capabilities = flags.blink and require("blink.cmp").get_lsp_capabilities(vim.lsp.protocol.make_client_capabilities()) or require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities()) capabilities = vim.tbl_extend("keep", capabilities or {}, lsp_status.capabilities) capabilities.offsetEncoding = { "utf-16" } local lspconfig = require("lspconfig") local configs = require("lspconfig.configs") local nvim_lspconfig = require("lspconfig") local lsp_configs = require("lspconfig.configs") lsp_configs.ciderlsp = { default_config = { cmd = { "/google/bin/releases/cider/ciderlsp/ciderlsp", "--tooltag=nvim-lsp", "--noforward_sync_responses", }, filetypes = { "c", "cpp", "java", "kotlin", "objc", "proto", "textproto", "go", "python", "bzl", "typescript", }, offset_encoding = "utf-8", root_dir = nvim_lspconfig.util.root_pattern(".citc"), settings = {}, }, } nvim_lspconfig.ciderlsp.setup({}) -- Godot lspconfig.gdscript.setup({ -- flags = { -- debounce_text_changes = 2000, -- Wait 5 seconds before sending didChange -- }, }) vim.cmd([[autocmd FileType gdscript setlocal commentstring=#\ %s]]) vim.cmd([[autocmd FileType gdscript setlocal autoindent noexpandtab tabstop=4 shiftwidth=4]]) end, }, }