return { { "lazydev.nvim", -- NOTE: if lazyloaded, blink will break as `lze` doesn't packadd this package... -- ft = "lua", after = function(_) -- NOTE: this is required to fix strange filtering in `lazydev.nvim` --- @diagnostic disable-next-line: duplicate-set-field require("lazydev.lsp").supports = function(client) local client_names = { -- Default client names from `lazydev.nvim` "lua_ls", "emmylua-analyzer-rust", -- NOTE: I have `lua-language-server` name which was not in list "lua-language-server", } return client and vim.tbl_contains(client_names, client.name) end require("lazydev").setup({ library = { { path = "${3rd}/luv/library", words = { "vim%.uv" } }, { path = "snacks.nvim", words = { "Snacks" } }, }, }) end, }, { "blink.cmp", event = "DeferredUIEnter", after = function(_) require("blink.cmp").setup({ appearance = { use_nvim_cmp_as_default = false, nerd_font_variant = "mono", }, completion = { documentation = { auto_show = true, auto_show_delay_ms = 500, }, ghost_text = { enabled = true }, }, cmdline = { completion = { ghost_text = { enabled = false }, }, }, sources = { default = { "lazydev", "lsp", "path", "snippets", "buffer" }, providers = { lazydev = { name = "LazyDev", module = "lazydev.integrations.blink", score_offset = 100, }, }, }, fuzzy = { sorts = { "exact", "score", "sort_text" }, }, keymap = { -- TODO: come up with more convenient keybinding -- [""] = { "show", "show_documentation", "hide_documentation" }, [""] = { "show", "show_documentation", "hide_documentation" }, [""] = { "hide", "fallback" }, [""] = { "accept", "fallback" }, [""] = { "snippet_forward", "fallback" }, [""] = { "snippet_backward", "fallback" }, [""] = { "select_prev", "fallback" }, [""] = { "select_next", "fallback" }, [""] = { "select_prev", "fallback_to_mappings" }, [""] = { "select_next", "fallback_to_mappings" }, [""] = { "scroll_documentation_up", "fallback" }, [""] = { "scroll_documentation_down", "fallback" }, }, }) -- NOTE: this is broken due to something -- local client_capabilities = vim.lsp.protocol.make_client_capabilities() -- local blink_capabilities = require("blink.cmp").get_lsp_capabilities() -- local capabilities = vim.tbl_deep_extend('force', client_capabilities, blink_capabilities) -- vim.lsp.config("*", { capabilities = capabilities }) end, }, }