diff --git a/modules/dotfiles/nvim/lua/thegeneralist/lazy/blink.lua b/modules/dotfiles/nvim/lua/thegeneralist/lazy/blink.lua index c6a6f85..3fc3e92 100644 --- a/modules/dotfiles/nvim/lua/thegeneralist/lazy/blink.lua +++ b/modules/dotfiles/nvim/lua/thegeneralist/lazy/blink.lua @@ -1,84 +1,84 @@ return { - { - "saghen/blink.cmp", - dependencies = { "rafamadriz/friendly-snippets" }, - version = "1.*", - opts = { - -- 'default' (recommended) for mappings similar to built-in completions (C-y to accept) - -- 'super-tab' for mappings similar to vscode (tab to accept) - -- 'enter' for enter to accept - -- 'none' for no mappings - -- - -- All presets have the following mappings: - -- C-space: Open menu or open docs if already open - -- C-n/C-p or Up/Down: Select next/previous item - -- C-e: Hide menu - -- C-k: Toggle signature help (if signature.enabled = true) - -- - -- See :h blink-cmp-config-keymap for defining your own keymap - keymap = { preset = "default" }, + { + "saghen/blink.cmp", + dependencies = { "rafamadriz/friendly-snippets" }, + version = "1.*", + opts = { + -- 'default' (recommended) for mappings similar to built-in completions (C-y to accept) + -- 'super-tab' for mappings similar to vscode (tab to accept) + -- 'enter' for enter to accept + -- 'none' for no mappings + -- + -- All presets have the following mappings: + -- C-space: Open menu or open docs if already open + -- C-n/C-p or Up/Down: Select next/previous item + -- C-e: Hide menu + -- C-k: Toggle signature help (if signature.enabled = true) + -- + -- See :h blink-cmp-config-keymap for defining your own keymap + keymap = { preset = "default" }, - appearance = { - nerd_font_variant = "mono", - }, + appearance = { + nerd_font_variant = "mono", + }, - -- (Default) Only show the documentation popup when manually triggered - completion = { documentation = { auto_show = true } }, + -- (Default) Only show the documentation popup when manually triggered + completion = { documentation = { auto_show = false } }, - -- Default list of enabled providers defined so that you can extend it - -- elsewhere in your config, without redefining it, due to `opts_extend` - sources = { - default = { "lsp", "path", "snippets", "buffer" }, - }, + -- Default list of enabled providers defined so that you can extend it + -- elsewhere in your config, without redefining it, due to `opts_extend` + sources = { + default = { "lsp", "path", "snippets", "buffer" }, + }, - -- (Default) Rust fuzzy matcher for typo resistance and significantly better performance - -- You may use a lua implementation instead by using `implementation = "lua"` or fallback to the lua implementation, - -- when the Rust fuzzy matcher is not available, by using `implementation = "prefer_rust"` - -- - -- See the fuzzy documentation for more information - fuzzy = { implementation = "prefer_rust_with_warning" }, - }, - opts_extend = { "sources.default" }, - }, + -- (Default) Rust fuzzy matcher for typo resistance and significantly better performance + -- You may use a lua implementation instead by using `implementation = "lua"` or fallback to the lua implementation, + -- when the Rust fuzzy matcher is not available, by using `implementation = "prefer_rust"` + -- + -- See the fuzzy documentation for more information + fuzzy = { implementation = "prefer_rust_with_warning" }, + }, + opts_extend = { "sources.default" }, + }, - -- { - -- 'neovim/nvim-lspconfig', - -- dependencies = { - -- 'saghen/blink.cmp', - -- 'williamboman/mason.nvim', - -- 'mason-org/mason-registry', - -- 'williamboman/mason-lspconfig.nvim', - -- 'L3MON4D3/LuaSnip', - -- 'saadparwaiz1/cmp_luasnip', - -- 'j-hui/fidget.nvim', - -- }, - -- - -- -- example using `opts` for defining servers - -- opts = { - -- servers = { - -- lua_ls = {} - -- } - -- }, - -- config = function(_, opts) - -- require("fidget").setup({}) - -- require("mason").setup() - -- - -- local lspconfig = require('mason-lspconfig') - -- for server, config in pairs(opts.servers) do - -- -- passing config.capabilities to blink.cmp merges with the capabilities in your - -- -- `opts[server].capabilities, if you've defined it - -- print('configuring server:', server) - -- config.capabilities = require('blink.cmp').get_lsp_capabilities(config.capabilities) - -- require("lspconfig")[server].setup(config) - -- end - -- end - -- - -- example calling setup directly for each LSP - -- config = function() - -- local capabilities = require('blink.cmp').get_lsp_capabilities() - -- local lspconfig = require('lspconfig') - -- - -- lspconfig['lua_ls'].setup({ capabilities = capabilities }) - -- end - -- }, + -- { + -- 'neovim/nvim-lspconfig', + -- dependencies = { + -- 'saghen/blink.cmp', + -- 'williamboman/mason.nvim', + -- 'mason-org/mason-registry', + -- 'williamboman/mason-lspconfig.nvim', + -- 'L3MON4D3/LuaSnip', + -- 'saadparwaiz1/cmp_luasnip', + -- 'j-hui/fidget.nvim', + -- }, + -- + -- -- example using `opts` for defining servers + -- opts = { + -- servers = { + -- lua_ls = {} + -- } + -- }, + -- config = function(_, opts) + -- require("fidget").setup({}) + -- require("mason").setup() + -- + -- local lspconfig = require('mason-lspconfig') + -- for server, config in pairs(opts.servers) do + -- -- passing config.capabilities to blink.cmp merges with the capabilities in your + -- -- `opts[server].capabilities, if you've defined it + -- print('configuring server:', server) + -- config.capabilities = require('blink.cmp').get_lsp_capabilities(config.capabilities) + -- require("lspconfig")[server].setup(config) + -- end + -- end + -- + -- example calling setup directly for each LSP + -- config = function() + -- local capabilities = require('blink.cmp').get_lsp_capabilities() + -- local lspconfig = require('lspconfig') + -- + -- lspconfig['lua_ls'].setup({ capabilities = capabilities }) + -- end + -- }, } diff --git a/modules/dotfiles/nvim/lua/thegeneralist/lazy/lsp.lua b/modules/dotfiles/nvim/lua/thegeneralist/lazy/lsp.lua index f698c10..a3d523c 100644 --- a/modules/dotfiles/nvim/lua/thegeneralist/lazy/lsp.lua +++ b/modules/dotfiles/nvim/lua/thegeneralist/lazy/lsp.lua @@ -30,8 +30,73 @@ return { require("fidget").setup({}) require("mason").setup() + -- local vue_typescript_plugin = require("mason-registry") + -- .get_package("vue-language-server") + -- :get_install_path() .. "/node_modules/@vue/language-server" .. "/node_modules/@vue/typescript-plugin" + local capabilities = require("blink.cmp").get_lsp_capabilities() - require("lspconfig").lua_ls.setup({ capabilites = capabilities }) + require("mason-lspconfig").setup({ + automatic_enable = true, + ensure_installed = { + "lua_ls", + "rust_analyzer", + "ts_ls", + "cssls", + "tailwindcss", + "pyright", + }, + handlers = { + function(server_name) -- default handler (optional) + -- if server_name == "rust_analyzer" then + -- return + -- end + require("lspconfig")[server_name].setup({ + capabilities = capabilities, + }) + end, + + ["lua_ls"] = function() + local lspconfig = require("lspconfig") + lspconfig.lua_ls.setup({ + capabilities = capabilities, + settings = { + Lua = { + diagnostics = { + globals = { "vim", "it", "describe", "before_each", "after_each" }, + }, + }, + }, + }) + end, + + ["ts_ls"] = function() + local lspconfig = require("lspconfig") + lspconfig.ts_ls.setup({ + capabilities = capabilities, + -- settings = { + -- }, + -- init_options = { + -- plugins = { + -- { + -- name = "@vue/typescript-plugin", + -- location = vue_typescript_plugin, + -- languages = { "vue" }, + -- }, + -- }, + -- }, + filetypes = { + "javascript", + "javascriptreact", + "javascript.jsx", + "typescript", + "typescriptreact", + "typescript.tsx", + -- "vue", + }, + }) + end, + }, + }) vim.api.nvim_create_autocmd("LspAttach", { callback = function(args) @@ -52,72 +117,6 @@ return { end, }) - -- local vue_typescript_plugin = require("mason-registry") - -- .get_package("vue-language-server") - -- :get_install_path() .. "/node_modules/@vue/language-server" .. "/node_modules/@vue/typescript-plugin" - - -- require("mason-lspconfig").setup({ - -- ensure_installed = { - -- "lua_ls", - -- "rust_analyzer", - -- "ts_ls", - -- "cssls", - -- "tailwindcss", - -- "pyright", - -- }, - -- handlers = { - -- function(server_name) -- default handler (optional) - -- if server_name == "rust_analyzer" then - -- return - -- end - -- require("lspconfig")[server_name].setup({ - -- capabilities = capabilities, - -- }) - -- end, - -- - -- ["lua_ls"] = function() - -- local lspconfig = require("lspconfig") - -- lspconfig.lua_ls.setup({ - -- capabilities = capabilities, - -- settings = { - -- Lua = { - -- diagnostics = { - -- globals = { "vim", "it", "describe", "before_each", "after_each" }, - -- }, - -- }, - -- }, - -- }) - -- end, - -- - -- ["ts_ls"] = function() - -- local lspconfig = require("lspconfig") - -- lspconfig.ts_ls.setup({ - -- capabilities = capabilities, - -- -- settings = { - -- -- }, - -- init_options = { - -- plugins = { - -- { - -- name = "@vue/typescript-plugin", - -- location = vue_typescript_plugin, - -- languages = { "vue" }, - -- }, - -- }, - -- }, - -- filetypes = { - -- "javascript", - -- "javascriptreact", - -- "javascript.jsx", - -- "typescript", - -- "typescriptreact", - -- "typescript.tsx", - -- "vue", - -- }, - -- }) - -- end, - -- }, - -- }) - -- local cmp_select = { behavior = cmp.SelectBehavior.Select } --- Select item next/prev, taking into account whether the cmp window is