Files
monovim/lua/config/dashboard.lua
2026-04-08 03:51:58 +02:00

68 lines
1.7 KiB
Lua

local M = {}
-- Hilfsfunktion zum Zeichnen des Menüs
local function draw_menu(lines, keymaps)
local buf = vim.api.nvim_create_buf(false, true)
vim.api.nvim_buf_set_lines(buf, 0, -1, false, lines)
vim.api.nvim_set_current_buf(buf)
-- Lokale Einstellungen für das Menü-Fenster
vim.opt_local.number = false
vim.opt_local.relativenumber = false
vim.opt_local.buftype = "nofile"
vim.opt_local.bufhidden = "wipe"
vim.opt_local.cursorline = true
-- Keymaps für dieses Menü setzen
local opts = { buffer = buf, noremap = true, silent = true }
for key, cmd in pairs(keymaps) do
vim.keymap.set("n", key, cmd, opts)
end
end
-- Das Plugin-Untermenü (wird bei 'p' aufgerufen)
function M.open_plugins_menu()
local lines = {
" PLUGINS VERWALTEN",
"========================",
"",
" [u] Update (Sync)",
" [i] Install",
" [a] Add (Öffne Liste)",
" [b] Zurück",
"",
"========================",
}
local keys = {
u = ":PaqSync<CR>",
i = ":PaqInstall<CR>",
a = ":edit ~/.config/nvim/lua/plugins.lua<CR>",
b = function() M.open() end, -- Geht zurück zum Hauptmenü
}
draw_menu(lines, keys)
end
-- Das Hauptmenü
function M.open()
local lines = {
" Mono VIM - 0.17",
"========================",
"",
" [n] New File",
" [r] Recent Files",
" [p] Plugins...",
" [q] Quit",
"",
"========================",
}
local keys = {
n = ":ene | startinsert<CR>",
r = ":oldfiles<CR>",
p = function() M.open_plugins_menu() end,
q = ":q!<CR>",
}
draw_menu(lines, keys)
end
return M