81 lines
3.0 KiB
Lua
81 lines
3.0 KiB
Lua
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',
|
|
['<Down>'] = { 'select_next', 'fallback' },
|
|
['<Up>'] = { 'select_prev', 'fallback' },
|
|
['<Tab>'] = { 'accept', 'fallback' },
|
|
['<C-space>'] = { '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", "<leader>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,
|
|
},
|
|
},
|
|
}
|