Newest version of dotfiles with Ghostty, Fish, kickstart vim and zsh updates

This commit is contained in:
2025-06-04 16:33:07 +02:00
parent ee2a3a74ca
commit 778d39833c
132 changed files with 6177 additions and 5317 deletions

View File

@@ -0,0 +1,449 @@
return {
-- Fuzzy Finder
{
'nvim-telescope/telescope.nvim',
dependencies = {
'nvim-lua/plenary.nvim',
'nvim-telescope/telescope-fzf-native.nvim',
},
},
-- LSP & Completion
{
'neovim/nvim-lspconfig',
dependencies = {
'williamboman/mason.nvim',
'williamboman/mason-lspconfig.nvim',
'hrsh7th/nvim-cmp',
'hrsh7th/cmp-nvim-lsp',
'hrsh7th/cmp-buffer',
'hrsh7th/cmp-path',
'L3MON4D3/LuaSnip',
'saadparwaiz1/cmp_luasnip',
'j-hui/fidget.nvim',
},
config = function()
-- Nichts hier definieren - wir laden die Konfiguration aus der lsp.lua
require("custom.lsp")
end,
},
-- Snipped
{
"rafamadriz/friendly-snippets",
dependencies = {
"L3MON4D3/LuaSnip",
},
config = function()
require("luasnip.loaders.from_vscode").lazy_load()
end,
},
-- Syntax Highlighting
{
'nvim-treesitter/nvim-treesitter',
build = ':TSUpdate',
dependencies = {
'nvim-treesitter/nvim-treesitter-textobjects',
},
},
-- Datei-Explorer
{
"nvim-neo-tree/neo-tree.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-tree/nvim-web-devicons", -- Für Datei-Icons
"MunifTanjim/nui.nvim", -- UI-Komponenten-Bibliothek
},
config = function()
-- Standardkonfiguration deaktivieren
vim.g.neo_tree_remove_legacy_commands = 1
require("neo-tree").setup({
close_if_last_window = false, -- Neovim schließen, wenn nur noch Neo-tree offen ist?
popup_border_style = "rounded", -- Stil für Popup-Fenster
enable_git_status = true, -- Git-Integration aktivieren
enable_diagnostics = true, -- Zeige Diagnostik-Informationen (LSP)
default_component_configs = {
container = {
enable_character_fade = true, -- Schöne Übergänge bei Textlängen
width = "100%",
right_padding = 0,
},
indent = {
indent_size = 2,
padding = 1,
with_markers = true,
indent_marker = "",
last_indent_marker = "",
highlight = "NeoTreeIndentMarker",
with_expanders = true, -- Klick-/Tastatur-expandierbare Ordner
expander_collapsed = "",
expander_expanded = "",
expander_highlight = "NeoTreeExpander",
},
icon = {
folder_closed = "",
folder_open = "",
folder_empty = "󰜌",
default = "*",
highlight = "NeoTreeFileIcon"
},
modified = {
symbol = "[+]",
highlight = "NeoTreeModified",
},
name = {
trailing_slash = false,
use_git_status_colors = true,
highlight = "NeoTreeFileName",
},
git_status = {
symbols = {
-- Symbole für Git-Status
added = "", -- oder "✚"
modified = "", -- oder "✹"
deleted = "", -- oder ""
renamed = "", -- oder ""
untracked = "", -- oder "✭"
ignored = "", -- oder "◌"
unstaged = "", -- oder "✗"
staged = "", -- oder "✓"
conflict = "", -- oder "≠"
}
},
},
-- Welche Ansichten verfügbar sein sollen
source_selector = {
winbar = true, -- Zeige Auswahl in der Fensterleiste
statusline = false, -- Nicht in der Statuszeile anzeigen
content_layout = "center",
sources = { -- Verfügbare Quellen
{ source = "filesystem", display_name = " Dateien " },
{ source = "buffers", display_name = " Buffer " },
{ source = "git_status", display_name = " Git " },
},
tabs_layout = "equal", -- "equal", "focus"
},
-- Dateisystemansicht
filesystem = {
filtered_items = {
visible = true, -- Gefilterte Elemente mit anderen Stil anzeigen
hide_dotfiles = false, -- Versteckte Dateien anzeigen
hide_gitignored = false, -- Git-ignorierte Dateien anzeigen
hide_hidden = false, -- Versteckte Dateien unter Windows anzeigen
hide_by_name = {
-- "node_modules", -- Auskommentieren, um zu verstecken
},
hide_by_pattern = {
-- "*.meta", -- Auskommentieren, um zu verstecken
},
always_show = { -- Immer anzeigen, auch wenn sie sonst gefiltert würden
".gitignored",
".env",
},
never_show = { -- Dateien, die immer ausgeblendet werden
".DS_Store",
},
never_show_by_pattern = { -- Regex-Muster für Dateien, die nie angezeigt werden
-- ".*\\.meta$",
},
},
follow_current_file = {
enabled = true, -- Hervorheben der aktuellen Datei im Explorer
leave_dirs_open = false, -- Ordner öffnen, wenn Datei darin
},
group_empty_dirs = false, -- Leere Unterordner unter Elternordner gruppieren
hijack_netrw_behavior = "open_default", -- Netrw ersetzen
use_libuv_file_watcher = true, -- Effiziente Dateiüberwachung (bemerkt Änderungen)
window = {
mappings = {
-- Tastenkombinationen im Dateisystem-Fenster
["<space>"] = "none", -- Space für andere Funktionen freigeben
["<2-LeftMouse>"] = "open",
["<cr>"] = "open",
["S"] = "open_split", -- In horizontales Split öffnen
["s"] = "open_vsplit", -- In vertikales Split öffnen
["t"] = "open_tabnew", -- In neuem Tab öffnen
["C"] = "close_node", -- Knoten schließen
["z"] = "close_all_nodes", -- Alle Knoten schließen
["R"] = "refresh", -- Aktualisieren
["a"] = {
"add", -- Neue Datei/Ordner erstellen
config = {
show_path =
"relative" -- Relativen Pfad beim Erstellen anzeigen
}
},
["d"] = "delete", -- Löschen
["r"] = "rename", -- Umbenennen
["y"] = "copy_to_clipboard", -- In Zwischenablage kopieren
["x"] = "cut_to_clipboard", -- Ausschneiden
["p"] = "paste_from_clipboard", -- Einfügen
["c"] = "copy", -- Kopieren (mit Ziel-Auswahl)
["m"] = "move", -- Verschieben (mit Ziel-Auswahl)
["/"] = "filter_on_submit", -- Filtern
["<esc>"] = "clear_filter", -- Filter löschen
["f"] = "filter_on_submit", -- Filtern (Alternative)
["<c-x>"] = "clear_filter", -- Filter löschen (Alternative)
["?"] = "show_help", -- Hilfe anzeigen
}
},
},
-- Buffer-Ansicht (Geöffnete Dateien)
buffers = {
follow_current_file = {
enabled = true, -- Aktuelle Datei hervorheben
},
group_empty_dirs = true, -- Leere Ordner gruppieren
show_unloaded = true, -- Auch nicht geladene Buffer anzeigen
},
-- Git-Status-Ansicht
git_status = {
window = {
mappings = {
["A"] = "git_add_all", -- Alle Änderungen stagen
["u"] = "git_unstage_file", -- Datei unstagen
["a"] = "git_add_file", -- Datei stagen
["r"] = "git_revert_file", -- Änderungen zurücksetzen
["c"] = "git_commit", -- Commit erstellen
["p"] = "git_push", -- Push
["gg"] = "git_commit_and_push", -- Commit und Push
}
}
},
-- Hauptfenster-Konfiguration
window = {
position = "right", -- Explorer auf der rechten Seite
width = 35, -- Breite des Explorers
mapping_options = {
noremap = true,
nowait = true,
},
mappings = {
["<space>"] = "none", -- Space für andere Funktionen freigeben
["<2-LeftMouse>"] = "open",
["<cr>"] = "open",
["S"] = "open_split",
["s"] = "open_vsplit",
["t"] = "open_tabnew",
["w"] = "open_with_window_picker", -- Mit Fensterauswahl öffnen
["C"] = "close_node",
["z"] = "close_all_nodes",
["R"] = "refresh",
["a"] = {
"add",
config = {
show_path = "relative"
}
},
["d"] = "delete",
["r"] = "rename",
["y"] = "copy_to_clipboard",
["x"] = "cut_to_clipboard",
["p"] = "paste_from_clipboard",
["c"] = "copy",
["m"] = "move",
["q"] = "close_window", -- Fenster schließen
["?"] = "show_help",
}
}
})
-- Tastenkombination zum Öffnen des Explorers
vim.keymap.set("n", "<leader>e", ":Neotree toggle right<CR>",
{ silent = true, desc = "Explorer ein/aus" })
-- Tastenkombination für Dateiansicht
vim.keymap.set("n", "<leader>ef", ":Neotree focus filesystem right<CR>",
{ silent = true, desc = "Datei-Explorer" })
-- Tastenkombination für Buffer-Liste
vim.keymap.set("n", "<leader>eb", ":Neotree focus buffers right<CR>",
{ silent = true, desc = "Buffer-Liste" })
-- Tastenkombination für Git-Status
vim.keymap.set("n", "<leader>eg", ":Neotree focus git_status right<CR>",
{ silent = true, desc = "Git-Status" })
end,
},
-- Schnellwechsel zwischen Dateien (wie Harpoon)
{
'ThePrimeagen/harpoon',
dependencies = {
'nvim-lua/plenary.nvim',
},
config = function()
-- Basiseinstellungen für Harpoon
require("harpoon").setup()
-- Einfache, direkte Keybindings
vim.keymap.set("n", "<leader>a", require("harpoon.mark").add_file, { desc = "Datei markieren" })
vim.keymap.set("n", "<leader>h", require("harpoon.ui").toggle_quick_menu,
{ desc = "Harpoon-Menü" })
vim.keymap.set("n", "<C-j>", function() require("harpoon.ui").nav_file(1) end)
vim.keymap.set("n", "<C-k>", function() require("harpoon.ui").nav_file(2) end)
vim.keymap.set("n", "<C-l>", function() require("harpoon.ui").nav_file(3) end)
vim.keymap.set("n", "<C-;>", function() require("harpoon.ui").nav_file(4) end)
end,
},
-- Git-Integration
{
'lewis6991/gitsigns.nvim',
config = true,
},
-- Formatierung
{
'stevearc/conform.nvim',
},
-- Framework-Unterstützung
-- PHP/Symfony
{
'phpactor/phpactor',
ft = 'php',
build = 'composer install --no-dev -o',
},
-- TypeScript/JavaScript/React/Vue/NestJS
{
'pmizio/typescript-tools.nvim',
dependencies = {
'nvim-lua/plenary.nvim',
'neovim/nvim-lspconfig',
},
config = function()
require("typescript-tools").setup({
settings = {
tsserver_file_preferences = {
importModuleSpecifierPreference = "relative",
},
},
})
end,
},
-- Vue.js
-- {
-- 'neovim/nvim-lspconfig',
-- opts = function(_, opts)
-- -- Füge Volar als Server hinzu
-- opts.servers = opts.servers or {}
-- opts.servers.volar = {
-- filetypes = { 'vue', 'typescript', 'javascript' }
-- }
-- end,
-- },
-- Playwright Testing
{
'mxsdev/nvim-dap',
dependencies = {
'rcarriga/nvim-dap-ui',
'mfussenegger/nvim-dap-python',
},
},
-- YAML und JSON Unterstützung
'b0o/schemastore.nvim',
-- Für Zen-Modus
{
"folke/zen-mode.nvim",
cmd = "ZenMode",
opts = {
window = {
width = 90,
options = {
number = false,
relativenumber = false,
},
},
},
},
-- Für Git-Integration
{
"sindrets/diffview.nvim",
dependencies = { "nvim-lua/plenary.nvim" },
},
-- Für Neogit
{
"NeogitOrg/neogit",
dependencies = {
"nvim-lua/plenary.nvim",
"sindrets/diffview.nvim",
},
cmd = "Neogit",
},
-- Für Farbvorschau in Code
{
"norcalli/nvim-colorizer.lua",
cmd = "ColorizerToggle",
config = true,
},
-- Leap/Lightspeed
{
"ggandor/leap.nvim",
config = function()
require('leap').add_default_mappings()
end,
},
-- Hydra für kontextbezogene Tastaturmodi
{
"anuvyklack/hydra.nvim",
event = "VeryLazy",
config = function()
-- Die Konfigurationen folgen im nächsten Schritt
require("custom.hydra")
end,
},
-- Window-Picker
{
"s1n7ax/nvim-window-picker",
version = "v2.*",
config = function()
require("window-picker").setup({
filter_rules = {
-- Filtere diese Fenstertypen aus
bo = {
filetype = { "neo-tree", "neo-tree-popup", "notify", "quickfix" },
buftype = { "terminal" },
},
},
highlights = {
statusline = {
focused = {
fg = "#000000",
bg = "#E35E4F",
},
unfocused = {
fg = "#000000",
bg = "#44CC41",
},
},
},
picker_config = {
statusline_winbar_picker = {
-- Verwende Buchstaben des Alphabets für die Fensterauswahl
selection_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
},
},
})
end,
}
}