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,35 @@
-- Autocmds are automatically loaded on the VeryLazy event
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
--
-- Add any additional autocmds here
-- with `vim.api.nvim_create_autocmd`
--
-- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults)
-- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell")
vim.api.nvim_create_autocmd("FileType", {
pattern = { "python" },
callback = function()
vim.opt_local.colorcolumn = "88" -- Black's default line length
vim.opt_local.tabstop = 4
vim.opt_local.shiftwidth = 4
end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = { "php" },
callback = function()
vim.opt_local.colorcolumn = "120"
vim.opt_local.tabstop = 4
vim.opt_local.shiftwidth = 4
end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = { "typescript", "javascript", "typescriptreact", "javascriptreact" },
callback = function()
vim.opt_local.colorcolumn = "80"
vim.opt_local.tabstop = 2
vim.opt_local.shiftwidth = 2
end,
})

View File

@@ -0,0 +1,16 @@
-- Keymaps are automatically loaded on the VeryLazy event
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
-- Add any additional keymaps here
-- Keymaps are automatically loaded on the VeryLazy event
local function map(mode, lhs, rhs, opts)
local keys = require("lazy.core.handler").handlers.keys
if not keys.active[keys.parse({ lhs, mode = mode }).id] then
opts = opts or {}
opts.silent = opts.silent ~= false
vim.keymap.set(mode, lhs, rhs, opts)
end
end
-- Nützliche Keymaps
map("n", "<leader>bo", "<cmd>%bd|e#<cr>", { desc = "Close all buffers but the current one" })

View File

@@ -0,0 +1,61 @@
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable",
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
require("lazy").setup({
spec = {
-- LazyVim Kern
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
-- Sprachunterstützung
{ import = "lazyvim.plugins.extras.lang.typescript" },
{ import = "lazyvim.plugins.extras.lang.json" },
{ import = "lazyvim.plugins.extras.lang.docker" },
{ import = "lazyvim.plugins.extras.lang.yaml" },
{ import = "lazyvim.plugins.extras.lang.tailwind" },
-- Linting & Formatting
{ import = "lazyvim.plugins.extras.linting.eslint" },
{ import = "lazyvim.plugins.extras.formatting.prettier" },
{ import = "lazyvim.plugins.extras.lsp.none-ls" },
-- Editor-Verbesserungen
-- { import = "lazyvim.plugins.extras.editor.mini-files" },
{ import = "lazyvim.plugins.extras.coding.yanky" },
{ import = "lazyvim.plugins.extras.util.mini-hipatterns" },
-- Debugging & Testing
{ import = "lazyvim.plugins.extras.dap.core" },
-- { import = "lazyvim.plugins.extras.test.core" },
-- Benutzerdefinierte Plugins
{ import = "plugins" },
},
defaults = {
lazy = false,
version = false,
},
install = { colorscheme = { "tokyonight", "catppuccin" } },
checker = { enabled = true },
performance = {
rtp = {
disabled_plugins = {
"gzip",
"tarPlugin",
"tohtml",
"tutor",
"zipPlugin",
},
},
},
})

View File

@@ -0,0 +1,13 @@
-- Options are automatically loaded before lazy.nvim startup
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
--- Options are automatically loaded before lazy.nvim startup
-- Allgemeine Einstellungen
vim.opt.listchars = "tab:▸ ,trail:·,nbsp:␣,extends:,precedes:"
vim.opt.relativenumber = false
vim.opt.scrolloff = 10
vim.opt.tabstop = 2
vim.opt.shiftwidth = 2
vim.opt.expandtab = true
vim.opt.smartindent = true
vim.lsp.inlay_hint.enable = false

View File

@@ -0,0 +1,43 @@
return {
-- Code-Runner
{
"CRAG666/code_runner.nvim",
config = function()
require("code_runner").setup({
focus = false,
filetype = {
python = "python3 -u",
typescript = "deno run",
javascript = "node",
php = "php",
},
})
end,
keys = { { "<leader>rf", "<cmd>RunFile term<cr>", desc = "Run file" } },
},
-- TypeScript-Tooling
{
"pmizio/typescript-tools.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
"neovim/nvim-lspconfig",
},
opts = {
settings = {
tsserver_file_preferences = {
importModuleSpecifierPreference = "relative",
},
},
},
},
-- Markdown-Vorschau
{
"iamcco/markdown-preview.nvim",
ft = "markdown",
build = function()
vim.fn["mkdp#util#install"]()
end,
},
}

View File

@@ -0,0 +1,43 @@
return {
-- Hauptfarbschema: Tokyo Night Storm
{
"folke/tokyonight.nvim",
lazy = false,
priority = 1000,
opts = {
style = "storm",
transparent = false,
styles = {
sidebars = "dark",
floats = "dark",
},
},
},
-- Alternative: Catppuccin
{
"catppuccin/nvim",
name = "catppuccin",
priority = 1000,
opts = {
flavour = "mocha",
transparent_background = false,
integrations = {
telescope = true,
gitsigns = true,
nvimtree = true,
indent_blankline = true,
which_key = true,
mini = true,
},
},
},
-- Aktiviere das Farbschema
{
"LazyVim/LazyVim",
opts = {
colorscheme = "tokyonight-storm",
},
},
}

View File

@@ -0,0 +1,191 @@
return {
-- LSP-Konfiguration
{
"neovim/nvim-lspconfig",
opts = {
servers = {
-- Python
pyright = {},
ruff_lsp = {},
-- TypeScript/JavaScript
tsserver = {
settings = {
typescript = {
inlayHints = {
includeInlayParameterNameHints = "all",
includeInlayParameterNameHintsWhenArgumentMatchesName = false,
includeInlayFunctionParameterTypeHints = true,
includeInlayVariableTypeHints = true,
includeInlayPropertyDeclarationTypeHints = true,
includeInlayFunctionLikeReturnTypeHints = true,
},
},
javascript = {
inlayHints = {
includeInlayParameterNameHints = "all",
includeInlayParameterNameHintsWhenArgumentMatchesName = false,
includeInlayFunctionParameterTypeHints = true,
includeInlayVariableTypeHints = true,
includeInlayPropertyDeclarationTypeHints = true,
includeInlayFunctionLikeReturnTypeHints = true,
},
},
},
},
-- PHP
intelephense = {
settings = {
intelephense = {
stubs = {
"bcmath",
"bz2",
"Core",
"curl",
"date",
"dom",
"fileinfo",
"filter",
"gd",
"gettext",
"hash",
"iconv",
"imap",
"intl",
"json",
"libxml",
"mbstring",
"mysqli",
"oci8",
"openssl",
"pcntl",
"pcre",
"PDO",
"pdo_mysql",
"Phar",
"readline",
"redis",
"Reflection",
"session",
"SimpleXML",
"SPL",
"standard",
"tokenizer",
"xml",
"xmlreader",
"xmlwriter",
"zip",
"zlib",
"wordpress",
"woocommerce",
"wordpress-globals",
"wp-cli",
},
environment = {
includePaths = {},
},
files = {
maxSize = 5000000,
},
},
},
},
-- Docker
dockerls = {},
docker_compose_language_service = {},
-- YAML
yamlls = {
settings = {
yaml = {
schemaStore = {
enable = true,
url = "https://www.schemastore.org/api/json/catalog.json",
},
format = { enable = true },
validate = true,
},
},
},
},
},
},
-- Mason für einfache Tool-Installation
{
"williamboman/mason.nvim",
opts = function(_, opts)
opts.ensure_installed = opts.ensure_installed or {}
vim.list_extend(opts.ensure_installed, {
-- Python
"pyright",
"ruff-lsp",
"black",
"mypy",
-- TypeScript/JavaScript
"typescript-language-server",
"eslint-lsp",
"prettier",
-- PHP
"intelephense",
"php-cs-fixer",
-- Docker
"dockerfile-language-server",
-- YAML
"yaml-language-server",
"yamllint",
"yamlfix",
-- Neue Tools für alle Frameworks
"css-lsp",
"tailwindcss-language-server",
"vue-language-server",
"typescript-language-server",
"eslint-lsp",
"prettier",
"stylelint-lsp",
"phpactor",
})
end,
},
-- Formatierung
{
"stevearc/conform.nvim",
opts = {
formatters_by_ft = {
lua = { "stylua" },
python = { "black" },
typescript = { "prettier" },
javascript = { "prettier" },
typescriptreact = { "prettier" },
javascriptreact = { "prettier" },
php = { "php_cs_fixer" },
yaml = { "yamlfix" },
json = { "prettier" },
markdown = { "prettier" },
},
},
},
-- Linting
{
"mfussenegger/nvim-lint",
opts = {
linters_by_ft = {
python = { "mypy", "ruff" },
typescript = { "eslint" },
javascript = { "eslint" },
typescriptreact = { "eslint" },
javascriptreact = { "eslint" },
yaml = { "yamllint" },
},
},
},
}

View File

@@ -0,0 +1,54 @@
return {
"nvim-neo-tree/neo-tree.nvim",
cmd = "Neotree",
priority = 950, -- Höhere Priorität für korrekte Initialisierung
lazy = false, -- Verhindert lazy-loading
config = function()
-- Stelle sicher, dass die Konfiguration direkt angewendet wird
require("neo-tree").setup({
sources = { "filesystem", "buffers", "git_status" },
filesystem = {
filtered_items = {
visible = true, -- Zeigt gefilterte Elemente an
hide_dotfiles = false, -- Versteckte Dateien anzeigen
hide_gitignored = false, -- Git-ignorierte Dateien anzeigen
always_show = {
".gitignore",
".env",
".gitlab-ci.yml",
".php-cs-fixer.php",
},
},
follow_current_file = {
enabled = true, -- Folgt der aktuellen Datei
},
use_libuv_file_watcher = true,
},
window = {
position = "right", -- Position explizit auf rechts setzen
width = 35, -- Breite des Explorers
mappings = {
["<space>"] = "none", -- Deaktiviert die Space-Taste im Explorer
["H"] = "toggle_hidden", -- Tastenkombination zum Umschalten versteckter Dateien
},
},
default_component_configs = {
indent = {
with_expanders = true,
},
},
})
-- Starte Neotree explizit nach der Konfiguration neu
vim.defer_fn(function()
vim.cmd("Neotree close")
vim.cmd("Neotree position=right")
end, 100)
end,
init = function()
-- Führe diese Konfiguration sofort aus
vim.g.neo_tree_remove_legacy_commands = 1
end,
keys = {
{ "<leader>e", "<cmd>Neotree toggle show position=right<cr>", desc = "Explorer (rechts)" },
},
}

View File

@@ -0,0 +1,27 @@
return {
-- Telescope-Konfiguration
{
"nvim-telescope/telescope.nvim",
opts = {
defaults = {
file_ignore_patterns = {
"^.git/",
"^node_modules/",
"^vendor/",
"^.venv/",
"^__pycache__/",
},
},
},
dependencies = {
-- Fuzzy-Finder-Verbesserung
{
"nvim-telescope/telescope-fzf-native.nvim",
build = "make",
config = function()
require("telescope").load_extension("fzf")
end,
},
},
},
}

View File

@@ -0,0 +1,38 @@
return {
-- Auto-Pairs für schnelleres Schreiben
{
"windwp/nvim-autopairs",
event = "InsertEnter",
opts = {
enable_check_bracket_line = true,
},
},
-- Diffview für Git-Diffs
{
"sindrets/diffview.nvim",
dependencies = {
{ "nvim-lua/plenary.nvim" },
{ "nvim-tree/nvim-web-devicons" },
},
config = function()
vim.opt.fillchars = "diff:░"
require("diffview").setup({
enhanced_diff_hl = true,
})
end,
keys = {
{ "<leader>gdo", ":DiffviewOpen<CR>", desc = "Open Diffview" },
{ "<leader>gdc", ":DiffviewClose<CR>", desc = "Close Diffview" },
},
},
-- Undotree für detaillierte Änderungshistorie
{
"mbbill/undotree",
cmd = "UndotreeToggle",
keys = {
{ "<leader>fu", "<cmd>UndotreeToggle<cr>", desc = "Undo tree" },
},
},
}

View File

@@ -0,0 +1,46 @@
return {
{
"nvim-treesitter/nvim-treesitter",
opts = {
ensure_installed = {
"bash",
"css",
"dockerfile",
"html",
"javascript",
"json",
"lua",
"markdown",
"markdown_inline",
"php",
"python",
"regex",
"tsx",
"typescript",
"vim",
"yaml",
},
highlight = {
enable = true,
},
indent = {
enable = true,
},
autotag = {
enable = true,
},
},
},
-- Zusätzliche Treesitter-Erweiterungen
{
"nvim-treesitter/nvim-treesitter-context",
dependencies = { "nvim-treesitter/nvim-treesitter" },
},
-- Automatisches Hinzufügen/Schließen von HTML/JSX-Tags
{
"windwp/nvim-ts-autotag",
config = true,
},
}