WIP: Switch to NixOS #5

Draft
FunctionalHacker wants to merge 1349 commits from nix into main
2 changed files with 36 additions and 23 deletions
Showing only changes of commit 6c6ce53837 - Show all commits

View file

@ -2,6 +2,7 @@ local nvim_local_dir = vim.fn.expand("~/.local/share/nvim")
local lombok_jar = nvim_local_dir .. "/mason/packages/jdtls/lombok.jar" local lombok_jar = nvim_local_dir .. "/mason/packages/jdtls/lombok.jar"
local project_name = vim.fn.fnamemodify(vim.fn.getcwd(), ":p:h:t") local project_name = vim.fn.fnamemodify(vim.fn.getcwd(), ":p:h:t")
local workspace_dir = nvim_local_dir .. "/jdtls-workspaces/" .. project_name local workspace_dir = nvim_local_dir .. "/jdtls-workspaces/" .. project_name
local mason = require("plugins.mason")
require("jdtls").start_or_attach({ require("jdtls").start_or_attach({
cmd = { cmd = {
@ -41,10 +42,13 @@ require("jdtls").start_or_attach({
path = "/usr/lib/jvm/java-19-openjdk-amd64/", path = "/usr/lib/jvm/java-19-openjdk-amd64/",
}, },
}, },
handlers = {
["language/status"] = function() end,
},
capabilities = mason.get_capabilities(),
on_attach = mason.on_attach,
}) })
require("plugins.mason").map_keys()
function RunJava() function RunJava()
local function show_output(output) local function show_output(output)
vim.cmd("split") vim.cmd("split")

View file

@ -1,34 +1,16 @@
local m = {} local m = {}
function m.setup() function m.setup()
local function on_attach(client, bufnr)
-- Attach navic
require("nvim-navic").attach(client, bufnr)
-- Setup keybinds
m.map_keys()
end
-- Inform lsp about completion capabilities from cmp
local capabilities = require("cmp_nvim_lsp").default_capabilities()
-- Neovim hasn't added foldingRange to default capabilities, users must add it manually
-- for ufo
capabilities.textDocument.foldingRange = {
dynamicRegistration = false,
lineFoldingOnly = true,
}
require("mason").setup() require("mason").setup()
local mason_lsp = require("mason-lspconfig") local mason_lsp = require("mason-lspconfig")
mason_lsp.setup() mason_lsp.setup()
local capabilities = m.get_capabilities()
mason_lsp.setup_handlers({ mason_lsp.setup_handlers({
-- Default handler -- Default handler
function(server_name) function(server_name)
require("lspconfig")[server_name].setup({ require("lspconfig")[server_name].setup({
on_attach = on_attach, on_attach = m.on_attach,
capabilities = capabilities, capabilities = capabilities,
}) })
end, end,
@ -36,7 +18,7 @@ function m.setup()
-- Override lua_ls settings -- Override lua_ls settings
["lua_ls"] = function() ["lua_ls"] = function()
require("lspconfig").lua_ls.setup({ require("lspconfig").lua_ls.setup({
on_attach = on_attach, on_attach = m.on_attach,
capabilities = capabilities, capabilities = capabilities,
settings = { settings = {
Lua = { Lua = {
@ -101,4 +83,31 @@ function m.map_keys()
}) })
end end
function m.on_attach(client, bufnr)
-- Attach navic if document symbols are available
if client.server_capabilities.documentSymbolProvider then
require("nvim-navic").attach(client, bufnr)
end
-- Setup keybinds
m.map_keys()
end
function m.get_capabilities()
-- Combine built-in LSP and cmp cabaibilities
local capabilities = vim.tbl_deep_extend(
"force",
vim.lsp.protocol.make_client_capabilities(),
require("cmp_nvim_lsp").default_capabilities()
)
-- Neovim hasn't added foldingRange to default capabilities, users must add it manually
-- for ufo
--capabilities.textDocument.foldingRange = {
-- dynamicRegistration = false,
-- lineFoldingOnly = true,
--}
return capabilities
end
return m return m