95 lines
3.6 KiB
Lua
95 lines
3.6 KiB
Lua
return {
|
|
-- Mason.
|
|
{
|
|
"williamboman/mason.nvim",
|
|
config = function()
|
|
require("mason").setup()
|
|
end,
|
|
},
|
|
-- Mason LSP Config.
|
|
{
|
|
"williamboman/mason-lspconfig.nvim",
|
|
config = function()
|
|
require("lspconfig").gdscript.setup({})
|
|
require("mason-lspconfig").setup({
|
|
ensure_installed = {
|
|
"clangd",
|
|
"neocmake",
|
|
"jdtls",
|
|
"ts_ls",
|
|
"lua_ls",
|
|
"pyright",
|
|
"omnisharp",
|
|
"html",
|
|
"cssls",
|
|
"glsl_analyzer",
|
|
"biome",
|
|
"somesass_ls",
|
|
"ocamllsp",
|
|
},
|
|
})
|
|
end,
|
|
},
|
|
-- NeoVim LSP Config.
|
|
{
|
|
"neovim/nvim-lspconfig",
|
|
config = function()
|
|
-- Autocomplete and snippets stuff.
|
|
local capabilities = require("cmp_nvim_lsp").default_capabilities()
|
|
-- Setting up languages.
|
|
local lspconfig = require("lspconfig")
|
|
lspconfig.clangd.setup({ capabilities = capabilities })
|
|
lspconfig.jdtls.setup({ capabilities = capabilities })
|
|
lspconfig.lua_ls.setup({ capabilities = capabilities })
|
|
lspconfig.ts_ls.setup({ capabilities = capabilities })
|
|
lspconfig.pyright.setup({ capabilities = capabilities })
|
|
lspconfig.html.setup({
|
|
capabilities = capabilities,
|
|
filetypes = { "html", "jinja.html" },
|
|
})
|
|
lspconfig.cssls.setup({ capabilities = capabilities })
|
|
lspconfig.glsl_analyzer.setup({ capabilities = capabilities })
|
|
lspconfig.somesass_ls.setup({ capabilities = capabilities })
|
|
|
|
-- Specific stuff for CMake.
|
|
local cmakeCapabilities = vim.lsp.protocol.make_client_capabilities()
|
|
cmakeCapabilities.textDocument.completion.completionItem.snippetSupport = true
|
|
lspconfig.neocmake.setup({ capabilities = cmakeCapabilities })
|
|
|
|
-- Specific stuff to C# omnisharp
|
|
lspconfig.omnisharp.setup({
|
|
capabilities = capabilities,
|
|
cmd = { "dotnet", vim.fn.stdpath("data") .. "/mason/packages/omnisharp/libexec/OmniSharp.dll" },
|
|
enable_import_completion = true,
|
|
organize_imports_on_format = true,
|
|
enable_roslyn_analyzers = true,
|
|
root_dir = function()
|
|
return vim.loop.cwd() -- Current Working Directory
|
|
end,
|
|
-- Settings stuff
|
|
settings = {
|
|
FormattingOptions = {
|
|
EnableEditorConfigSupport = true,
|
|
OrganizeImports = true,
|
|
},
|
|
MsBuild = {
|
|
LoadProjectsOnDemand = false,
|
|
},
|
|
RoslynExtensionsOptions = {
|
|
EnableAnalyzersSupport = true,
|
|
EnableImportCompletion = true,
|
|
AnalyzeOpenDocumentsOnly = false,
|
|
},
|
|
Sdk = {
|
|
IncludePrereleases = true,
|
|
},
|
|
},
|
|
})
|
|
-- Setting up keybinds.
|
|
vim.keymap.set("n", "K", vim.lsp.buf.hover, {})
|
|
vim.keymap.set("n", "gd", vim.lsp.buf.definition, {})
|
|
vim.keymap.set({ "n", "v" }, "<leader>ca", vim.lsp.buf.code_action, {})
|
|
end,
|
|
},
|
|
}
|