neovim: fix LSP

This commit is contained in:
TheGeneralist 2025-06-30 20:59:09 +02:00
parent 04bea73b6a
commit 00c3f83961
Signed by: thegeneralist01
SSH key fingerprint: SHA256:pp9qddbCNmVNoSjevdvQvM5z0DHN7LTa8qBMbcMq/R4
2 changed files with 143 additions and 144 deletions

View file

@ -1,84 +1,84 @@
return { return {
{ {
"saghen/blink.cmp", "saghen/blink.cmp",
dependencies = { "rafamadriz/friendly-snippets" }, dependencies = { "rafamadriz/friendly-snippets" },
version = "1.*", version = "1.*",
opts = { opts = {
-- 'default' (recommended) for mappings similar to built-in completions (C-y to accept) -- 'default' (recommended) for mappings similar to built-in completions (C-y to accept)
-- 'super-tab' for mappings similar to vscode (tab to accept) -- 'super-tab' for mappings similar to vscode (tab to accept)
-- 'enter' for enter to accept -- 'enter' for enter to accept
-- 'none' for no mappings -- 'none' for no mappings
-- --
-- All presets have the following mappings: -- All presets have the following mappings:
-- C-space: Open menu or open docs if already open -- C-space: Open menu or open docs if already open
-- C-n/C-p or Up/Down: Select next/previous item -- C-n/C-p or Up/Down: Select next/previous item
-- C-e: Hide menu -- C-e: Hide menu
-- C-k: Toggle signature help (if signature.enabled = true) -- C-k: Toggle signature help (if signature.enabled = true)
-- --
-- See :h blink-cmp-config-keymap for defining your own keymap -- See :h blink-cmp-config-keymap for defining your own keymap
keymap = { preset = "default" }, keymap = { preset = "default" },
appearance = { appearance = {
nerd_font_variant = "mono", nerd_font_variant = "mono",
}, },
-- (Default) Only show the documentation popup when manually triggered -- (Default) Only show the documentation popup when manually triggered
completion = { documentation = { auto_show = true } }, completion = { documentation = { auto_show = false } },
-- Default list of enabled providers defined so that you can extend it -- Default list of enabled providers defined so that you can extend it
-- elsewhere in your config, without redefining it, due to `opts_extend` -- elsewhere in your config, without redefining it, due to `opts_extend`
sources = { sources = {
default = { "lsp", "path", "snippets", "buffer" }, default = { "lsp", "path", "snippets", "buffer" },
}, },
-- (Default) Rust fuzzy matcher for typo resistance and significantly better performance -- (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, -- 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"` -- when the Rust fuzzy matcher is not available, by using `implementation = "prefer_rust"`
-- --
-- See the fuzzy documentation for more information -- See the fuzzy documentation for more information
fuzzy = { implementation = "prefer_rust_with_warning" }, fuzzy = { implementation = "prefer_rust_with_warning" },
}, },
opts_extend = { "sources.default" }, opts_extend = { "sources.default" },
}, },
-- { -- {
-- 'neovim/nvim-lspconfig', -- 'neovim/nvim-lspconfig',
-- dependencies = { -- dependencies = {
-- 'saghen/blink.cmp', -- 'saghen/blink.cmp',
-- 'williamboman/mason.nvim', -- 'williamboman/mason.nvim',
-- 'mason-org/mason-registry', -- 'mason-org/mason-registry',
-- 'williamboman/mason-lspconfig.nvim', -- 'williamboman/mason-lspconfig.nvim',
-- 'L3MON4D3/LuaSnip', -- 'L3MON4D3/LuaSnip',
-- 'saadparwaiz1/cmp_luasnip', -- 'saadparwaiz1/cmp_luasnip',
-- 'j-hui/fidget.nvim', -- 'j-hui/fidget.nvim',
-- }, -- },
-- --
-- -- example using `opts` for defining servers -- -- example using `opts` for defining servers
-- opts = { -- opts = {
-- servers = { -- servers = {
-- lua_ls = {} -- lua_ls = {}
-- } -- }
-- }, -- },
-- config = function(_, opts) -- config = function(_, opts)
-- require("fidget").setup({}) -- require("fidget").setup({})
-- require("mason").setup() -- require("mason").setup()
-- --
-- local lspconfig = require('mason-lspconfig') -- local lspconfig = require('mason-lspconfig')
-- for server, config in pairs(opts.servers) do -- for server, config in pairs(opts.servers) do
-- -- passing config.capabilities to blink.cmp merges with the capabilities in your -- -- passing config.capabilities to blink.cmp merges with the capabilities in your
-- -- `opts[server].capabilities, if you've defined it -- -- `opts[server].capabilities, if you've defined it
-- print('configuring server:', server) -- print('configuring server:', server)
-- config.capabilities = require('blink.cmp').get_lsp_capabilities(config.capabilities) -- config.capabilities = require('blink.cmp').get_lsp_capabilities(config.capabilities)
-- require("lspconfig")[server].setup(config) -- require("lspconfig")[server].setup(config)
-- end -- end
-- end -- end
-- --
-- example calling setup directly for each LSP -- example calling setup directly for each LSP
-- config = function() -- config = function()
-- local capabilities = require('blink.cmp').get_lsp_capabilities() -- local capabilities = require('blink.cmp').get_lsp_capabilities()
-- local lspconfig = require('lspconfig') -- local lspconfig = require('lspconfig')
-- --
-- lspconfig['lua_ls'].setup({ capabilities = capabilities }) -- lspconfig['lua_ls'].setup({ capabilities = capabilities })
-- end -- end
-- }, -- },
} }

View file

@ -30,8 +30,73 @@ return {
require("fidget").setup({}) require("fidget").setup({})
require("mason").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() 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", { vim.api.nvim_create_autocmd("LspAttach", {
callback = function(args) callback = function(args)
@ -52,72 +117,6 @@ return {
end, 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 } -- local cmp_select = { behavior = cmp.SelectBehavior.Select }
--- Select item next/prev, taking into account whether the cmp window is --- Select item next/prev, taking into account whether the cmp window is