return { -- adds lsp functionality and api for included languages { "neovim/nvim-lspconfig", dependencies = { { "mason-org/mason.nvim", config = true }, -- The "App Store" { "mason-org/mason-lspconfig.nvim", config = true }, -- The "Bridge" { 'saghen/blink.cmp', version = '*', -- Downloads pre-built binaries (fast!) opts = { keymap = { preset = 'none', [''] = { 'select_next', 'fallback' }, [''] = { 'select_prev', 'fallback' }, [''] = { 'accept', 'fallback' }, [''] = { 'show', 'show_documentation', 'hide_documentation' }, }, sources = { default = { 'lsp', 'path', 'snippets', 'buffer' }, }, }, }, { 'MeanderingProgrammer/render-markdown.nvim', dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-mini/mini.nvim' }, -- if you use the mini.nvim suite ---@module 'render-markdown' }, config = function() local lspconfig = require('lspconfig') -- Since you are using blink.cmp, extract its capabilities local capabilities = require('blink.cmp').get_lsp_capabilities() -- Configure OmniSharp for C# / nanoFramework development lspconfig.omnisharp.setup({ capabilities = capabilities, cmd = { "omnisharp" }, settings = { FormattingOptions = { EnableEditorConfigSupport = true, }, MsBuild = { LoadProjectsOnDemand = false, }, }, on_attach = function(client, bufnr) local opts = { buffer = bufnr, remap = false } vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts) vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, opts) vim.keymap.set("n", "ca", function() vim.lsp.buf.code_action() end, opts) end, }) end }, }, { "folke/lazydev.nvim", ft = "lua", -- only load on lua files opts = { library = { -- Only load luvit types when the `vim.uv` word is found { path = "${3rd}/luv/library", words = { "vim%.uv" } }, -- always load the LazyVim library "LazyVim", -- Only load the lazyvim library when the `LazyVim` global is found { path = "LazyVim", words = { "LazyVim" } }, -- Load the wezterm types when the `wezterm` module is required -- Needs `DrKJeff16/wezterm-types` to be installed { path = "wezterm-types", mods = { "wezterm" } }, -- Load the xmake types when opening file named `xmake.lua` -- Needs `LelouchHe/xmake-luals-addon` to be installed { path = "xmake-luals-addon/library", files = { "xmake.lua" } }, }, -- disable when a .luarc.json file is found enabled = function(root_dir) return not vim.uv.fs_stat(root_dir .. "/.luarc.json") end, }, }, }