95 lines
2.6 KiB
Lua
95 lines
2.6 KiB
Lua
-- Explorer-Konfiguration (Neo-tree)
|
|
require('neo-tree').setup({
|
|
close_if_last_window = false,
|
|
popup_border_style = "rounded",
|
|
enable_git_status = true,
|
|
enable_diagnostics = true,
|
|
sources = {
|
|
"filesystem",
|
|
"buffers",
|
|
"git_status",
|
|
},
|
|
source_selector = {
|
|
winbar = true,
|
|
content_layout = "center",
|
|
tabs_layout = "equal",
|
|
},
|
|
filesystem = {
|
|
filtered_items = {
|
|
visible = true,
|
|
hide_dotfiles = false,
|
|
hide_gitignored = false,
|
|
},
|
|
follow_current_file = {
|
|
enabled = true,
|
|
},
|
|
use_libuv_file_watcher = true,
|
|
},
|
|
window = {
|
|
position = "right",
|
|
width = 35,
|
|
mapping_options = {
|
|
noremap = true,
|
|
nowait = true,
|
|
},
|
|
},
|
|
git_status = {
|
|
symbols = {
|
|
added = "✚",
|
|
modified = "",
|
|
deleted = "✖",
|
|
renamed = "➜",
|
|
untracked = "★",
|
|
ignored = "◌",
|
|
unstaged = "✗",
|
|
staged = "✓",
|
|
conflict = "",
|
|
},
|
|
},
|
|
})
|
|
|
|
-- Harpoon (Schnellwechsel zwischen Dateien)
|
|
local mark = require("harpoon.mark")
|
|
local ui = require("harpoon.ui")
|
|
|
|
vim.keymap.set("n", "<leader>a", mark.add_file, { desc = "Datei zu Harpoon hinzufügen" })
|
|
vim.keymap.set("n", "<leader>h", ui.toggle_quick_menu, { desc = "Harpoon-Menü anzeigen" })
|
|
|
|
-- Schnellzugriff auf die ersten 4 Dateien
|
|
vim.keymap.set("n", "<leader>1", function() ui.nav_file(1) end, { desc = "Harpoon Datei 1" })
|
|
vim.keymap.set("n", "<leader>2", function() ui.nav_file(2) end, { desc = "Harpoon Datei 2" })
|
|
vim.keymap.set("n", "<leader>3", function() ui.nav_file(3) end, { desc = "Harpoon Datei 3" })
|
|
vim.keymap.set("n", "<leader>4", function() ui.nav_file(4) end, { desc = "Harpoon Datei 4" })
|
|
|
|
-- Tastenkombinationen für Neo-tree
|
|
vim.keymap.set("n", "<leader>e", ":Neotree toggle right<CR>", { silent = true, desc = "Explorer öffnen" })
|
|
|
|
-- Git Signs
|
|
require('gitsigns').setup({
|
|
signs = {
|
|
add = { text = '+' },
|
|
change = { text = '~' },
|
|
delete = { text = '_' },
|
|
topdelete = { text = '‾' },
|
|
changedelete = { text = '~' },
|
|
untracked = { text = '┆' },
|
|
},
|
|
signcolumn = true,
|
|
on_attach = function(bufnr)
|
|
local gs = package.loaded.gitsigns
|
|
|
|
-- Navigation zwischen Änderungen
|
|
vim.keymap.set('n', ']c', function()
|
|
if vim.wo.diff then return ']c' end
|
|
vim.schedule(function() gs.next_hunk() end)
|
|
return '<Ignore>'
|
|
end, { expr = true, buffer = bufnr })
|
|
|
|
vim.keymap.set('n', '[c', function()
|
|
if vim.wo.diff then return '[c' end
|
|
vim.schedule(function() gs.prev_hunk() end)
|
|
return '<Ignore>'
|
|
end, { expr = true, buffer = bufnr })
|
|
end
|
|
})
|