Files
dotfiles/.config/nvim/lua/rocketcamel/plugins/lsp.lua
2026-01-18 23:37:26 -08:00

129 lines
2.4 KiB
Lua

local function setup_luau()
require("luau-lsp").setup({
platform = {
type = "roblox",
},
types = {
roblox_security_level = "PluginSecurity",
},
sourcemap = {
enabled = true,
autogenerate = true,
rojo_project_file = "default.project.json",
sourcemap_file = "sourcemap.json",
},
plugin = {
enabled = true,
port = 3667,
},
fflags = {
-- enable_new_solver = true,
sync = true,
},
})
vim.lsp.config("luau-lsp", {
settings = {
["luau-lsp"] = {
completion = {
autocompleteEnd = true,
imports = {
enabled = true,
suggestServices = true,
suggestRequires = true,
requireStyle = "alwaysAbsolute",
stringRequires = { enabled = true },
},
},
},
},
})
end
local function setup_lua()
require("lspconfig").lua_ls.setup({
settings = {
Lua = {
diagnostics = {
globals = { "vim" },
},
workspace = {
library = vim.api.nvim_get_runtime_file("", true),
checkThirdParty = false,
},
},
},
})
end
local function setup_ts()
require("lspconfig").ts_ls.setup({})
end
local function setup_nix()
require("lspconfig").nixd.setup({})
end
local function setup_java()
require("lspconfig").jdtls.setup({
root_markers = { "mise.toml", ".git", "gradlew", "gradle.properties", "settings.gradle.kts" },
})
end
local function setup_svelte()
require("lspconfig").svelte.setup({
root_dir = require("lspconfig.util").root_pattern("svelte.config.js", "svelte.config.ts", "package.json"),
})
end
local function setup_qml()
require("lspconfig").qmlls.setup({})
end
return {
{
"neovim/nvim-lspconfig",
dependencies = {
"williamboman/mason.nvim",
"williamboman/mason-lspconfig.nvim",
"j-hui/fidget.nvim",
"lopi-py/luau-lsp.nvim",
},
config = function()
require("mason").setup()
require("fidget").setup({
notification = {
window = {
winblend = 0,
},
},
})
require("mason-lspconfig").setup({
ensure_installed = {
"ts_ls",
"lua_ls",
"luau_lsp",
"rust_analyzer",
"tailwindcss",
"svelte",
"html",
"gopls",
"templ",
"jdtls",
"clangd",
"cmake",
"cssls",
"qmlls",
},
automatic_enable = { exclude = { "luau_lsp", "lua_ls", "svelte" } },
})
setup_luau()
setup_lua()
setup_ts()
setup_nix()
setup_java()
setup_svelte()
setup_qml()
end,
},
}