feat: sync .config dotfiles, transition Node to mise, integrate 1Password CLI/SSH Agent, and add optional AI CLI tools

This commit is contained in:
2026-06-22 17:13:42 +02:00
parent 0379a21780
commit 6b09ba52b6
33 changed files with 837 additions and 1425 deletions
+29 -28
View File
@@ -1,38 +1,39 @@
{
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
"LuaSnip": { "branch": "master", "commit": "73813308abc2eaeff2bc0d3f2f79270c491be9d7" },
"better-escape.nvim": { "branch": "master", "commit": "19a38aab94961016430905ebec30d272a01e9742" },
"LuaSnip": { "branch": "master", "commit": "0abc8f390b278c3b4aabc4c004ac8a088b65cf24" },
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
"cmp-nvim-lsp": { "branch": "main", "commit": "bd5a7d6db125d4654b50eeae9f5217f24bb22fd3" },
"cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
"cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
"conform.nvim": { "branch": "master", "commit": "fbcb4fa7f34bfea9be702ffff481a8e336ebf6ed" },
"fidget.nvim": { "branch": "main", "commit": "3f5475949679953af6d78654db29b944fa826e6a" },
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
"gitsigns.nvim": { "branch": "main", "commit": "1ee5c1fd068c81f9dd06483e639c2aa4587dc197" },
"harpoon": { "branch": "harpoon2", "commit": "ed1f853847ffd04b2b61c314865665e1dadf22c7" },
"indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" },
"lazy.nvim": { "branch": "main", "commit": "1ea3c4085785f460fb0e46d2fe1ee895f5f9e7c1" },
"lualine.nvim": { "branch": "master", "commit": "b8c23159c0161f4b89196f74ee3a6d02cdc3a955" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "6bdb14f230de0904229ec367b410fb817e59b072" },
"mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" },
"neo-tree.nvim": { "branch": "main", "commit": "4c60a198e3f92098778a32a1c76d2bd7ba46a3b5" },
"conform.nvim": { "branch": "master", "commit": "619363c30309d29ffa631e67c8183f2a72caa373" },
"dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" },
"fidget.nvim": { "branch": "main", "commit": "6f793b2bcd2d35e201c09520f698bb763220908a" },
"friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
"gitsigns.nvim": { "branch": "main", "commit": "2038c666bd9d8a0b7349a0b6ee00dc83104b9ecf" },
"harpoon": { "branch": "harpoon2", "commit": "87b1a3506211538f460786c23f98ec63ad9af4e5" },
"indent-blankline.nvim": { "branch": "master", "commit": "d28a3f70721c79e3c5f6693057ae929f3d9c0a03" },
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
"lualine.nvim": { "branch": "master", "commit": "221ce6b2d999187044529f49da6554a92f740a96" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "21c5b3ebeaa0412e28096bb0701434c51c1fbf76" },
"mason.nvim": { "branch": "main", "commit": "2a6940af80375532e5e9e7c1f2fc6319a1b7a69d" },
"neo-tree.nvim": { "branch": "main", "commit": "83e7a2982fd12b9c3d35bc39dd5877cd91a02a61" },
"neodev.nvim": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" },
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
"nvim-autopairs": { "branch": "master", "commit": "7a2c97cccd60abc559344042fefb1d5a85b3e33b" },
"nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" },
"nvim-lspconfig": { "branch": "master", "commit": "ac98db2f9f06a56498ec890a96928774eae412c3" },
"nvim-surround": { "branch": "main", "commit": "a868c256c861044beb9794b4dd126480dcdfbdad" },
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "71385f191ec06ffc60e80e6b0c9a9d5daed4824c" },
"nvim-ts-context-commentstring": { "branch": "main", "commit": "1b212c2eee76d787bbea6aa5e92a2b534e7b4f8f" },
"nvim-web-devicons": { "branch": "master", "commit": "b8221e42cf7287c4dcde81f232f58d7b947c210d" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"schemastore.nvim": { "branch": "main", "commit": "caad5439cc80809be7475b625a5e36d1bb06cc7e" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" },
"nvim-autopairs": { "branch": "master", "commit": "7b9923abad60b903ece7c52940e1321d39eccc79" },
"nvim-cmp": { "branch": "main", "commit": "a1d504892f2bc56c2e79b65c6faded2fd21f3eca" },
"nvim-lspconfig": { "branch": "master", "commit": "bfcc0171a43f22afa61d927ffe9fcb6cb85dc99e" },
"nvim-surround": { "branch": "main", "commit": "2e93e154de9ff326def6480a4358bfc149d5da2c" },
"nvim-treesitter": { "branch": "master", "commit": "cf12346a3414fa1b06af75c79faebe7f76df080a" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "5ca4aaa6efdcc59be46b95a3e876300cfead05ef" },
"nvim-web-devicons": { "branch": "master", "commit": "dfbfaa967a6f7ec50789bead7ef87e336c1fa63c" },
"oil.nvim": { "branch": "master", "commit": "b73018b75affd13fa38e2fc94ef753b465f770d7" },
"plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" },
"schemastore.nvim": { "branch": "main", "commit": "c73e2b170a4927d1dc1b48e878bba6cf0ed9b07c" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "b25b749b9db64d375d782094e2b9dce53ad53a40" },
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
"telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
"tokyonight.nvim": { "branch": "main", "commit": "d14614cbfc63b6037bfccd48bb982d2ad2003352" },
"vim-fugitive": { "branch": "master", "commit": "61b51c09b7c9ce04e821f6cf76ea4f6f903e3cf4" },
"which-key.nvim": { "branch": "main", "commit": "b4177e3eaf15fe5eb8357ebac2286d488be1ed00" }
"tokyonight.nvim": { "branch": "main", "commit": "cdc07ac78467a233fd62c493de29a17e0cf2b2b6" },
"undotree": { "branch": "master", "commit": "6fa6b57cda8459e1e4b2ca34df702f55242f4e4d" },
"vim-fugitive": { "branch": "master", "commit": "3b753cf8c6a4dcde6edee8827d464ba9b8c4a6f0" },
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
}
+29
View File
@@ -26,6 +26,7 @@ opt.ignorecase = true
opt.smartcase = true
opt.hlsearch = true
opt.incsearch = true
opt.inccommand = 'split'
-- Aussehen
opt.termguicolors = true
@@ -59,3 +60,31 @@ opt.completeopt = 'menu,menuone,noselect'
-- Fold (erstmal aus)
opt.foldenable = false
-- ============================================================================
-- NEU: Automatischer Wechsel für QA vs. Speed (Hybrid Line Numbers)
-- ============================================================================
-- Normal Mode = Relative Nummern (zum schnellen Springen)
-- Insert Mode = Absolute Nummern (zum Ablesen für Tickets/Kollegen)
local augroup = vim.api.nvim_create_augroup("numbertoggle", {})
vim.api.nvim_create_autocmd({ "BufEnter", "FocusGained", "InsertLeave", "CmdlineLeave" }, {
group = augroup,
pattern = "*",
callback = function()
if vim.o.nu and vim.api.nvim_get_mode().mode ~= "i" then
vim.opt.relativenumber = true
end
end,
})
vim.api.nvim_create_autocmd({ "BufLeave", "FocusLost", "InsertEnter", "CmdlineEnter" }, {
group = augroup,
pattern = "*",
callback = function()
if vim.o.nu then
vim.opt.relativenumber = false
vim.cmd "redraw"
end
end,
})
+29 -39
View File
@@ -1,67 +1,57 @@
-- ============================================================================
-- Editor - Quality of Life Plugins
-- Editor Enhancements - Comment, Surround, etc.
-- ============================================================================
return {
-- Auto pairs
{
'windwp/nvim-autopairs',
event = 'InsertEnter',
config = true,
},
-- Comment.nvim
-- Comment.nvim - gc zum Kommentieren
{
'numToStr/Comment.nvim',
event = { 'BufReadPost', 'BufNewFile' },
dependencies = {
'JoosepAlviste/nvim-ts-context-commentstring',
},
event = 'VeryLazy',
config = function()
require('Comment').setup({
pre_hook = require('ts_context_commentstring.integrations.comment_nvim').create_pre_hook(),
-- LHS of toggle mappings in NORMAL mode
toggler = {
line = 'gcc', -- Line-comment toggle
block = 'gbc', -- Block-comment toggle
},
-- LHS of operator-pending mappings in NORMAL and VISUAL mode
opleader = {
line = 'gc', -- Line-comment operator
block = 'gb', -- Block-comment operator
},
})
end,
},
-- Surround
-- Surround - ys/cs/ds für quotes, brackets, etc.
{
'kylechui/nvim-surround',
version = '*',
event = 'VeryLazy',
config = true,
config = function()
require('nvim-surround').setup()
end,
},
-- Better escape
-- Auto-pairs
{
'max397574/better-escape.nvim',
'windwp/nvim-autopairs',
event = 'InsertEnter',
config = function()
require('better_escape').setup({
mapping = { 'jk', 'jj' },
timeout = 200,
})
require('nvim-autopairs').setup()
end,
},
-- Which-key (zeigt Keybindings)
-- Undo-tree - Visueller Undo-Verlauf
{
'folke/which-key.nvim',
event = 'VeryLazy',
init = function()
vim.o.timeout = true
vim.o.timeoutlen = 300
end,
opts = {
-- Deine Leader-Gruppen
spec = {
{ '<leader>f', group = 'Find' },
{ '<leader>g', group = 'Git' },
{ '<leader>h', group = 'Hunk' },
{ '<leader>t', group = 'Toggle' },
{ '<leader>c', group = 'Code' },
{ '<leader>w', group = 'Workspace' },
},
'mbbill/undotree',
cmd = 'UndotreeToggle',
keys = {
{ '<leader>u', '<cmd>UndotreeToggle<CR>', desc = 'Toggle Undotree' },
},
config = function()
vim.g.undotree_WindowLayout = 3
vim.g.undotree_SetFocusWhenToggle = 1
end,
},
}
+16 -6
View File
@@ -8,6 +8,14 @@ return {
'lewis6991/gitsigns.nvim',
event = { 'BufReadPre', 'BufNewFile' },
opts = {
current_line_blame = true,
current_line_blame_opts = {
virt_text = true,
virt_text_pos = 'eol',
delay = 100,
},
current_line_blame_formatter = ' <author> • <author_time:%d.%m.%Y> • <summary>',
signs = {
add = { text = '' },
change = { text = '' },
@@ -41,8 +49,10 @@ return {
-- Actions
map('n', '<leader>hs', gs.stage_hunk, { desc = 'Stage hunk' })
map('n', '<leader>hr', gs.reset_hunk, { desc = 'Reset hunk' })
map('v', '<leader>hs', function() gs.stage_hunk({ vim.fn.line('.'), vim.fn.line('v') }) end, { desc = 'Stage hunk' })
map('v', '<leader>hr', function() gs.reset_hunk({ vim.fn.line('.'), vim.fn.line('v') }) end, { desc = 'Reset hunk' })
map('v', '<leader>hs', function() gs.stage_hunk({ vim.fn.line('.'), vim.fn.line('v') }) end,
{ desc = 'Stage hunk' })
map('v', '<leader>hr', function() gs.reset_hunk({ vim.fn.line('.'), vim.fn.line('v') }) end,
{ desc = 'Reset hunk' })
map('n', '<leader>hS', gs.stage_buffer, { desc = 'Stage buffer' })
map('n', '<leader>hu', gs.undo_stage_hunk, { desc = 'Undo stage hunk' })
map('n', '<leader>hR', gs.reset_buffer, { desc = 'Reset buffer' })
@@ -61,11 +71,11 @@ return {
'tpope/vim-fugitive',
cmd = { 'Git', 'G', 'Gdiffsplit', 'Gread', 'Gwrite', 'Ggrep', 'GMove', 'GDelete', 'GBrowse', 'GRemove', 'GRename', 'Glgrep', 'Gedit' },
keys = {
{ '<leader>gs', '<cmd>Git<cr>', desc = 'Git status' },
{ '<leader>gs', '<cmd>Git<cr>', desc = 'Git status' },
{ '<leader>gc', '<cmd>Git commit<cr>', desc = 'Git commit' },
{ '<leader>gp', '<cmd>Git push<cr>', desc = 'Git push' },
{ '<leader>gl', '<cmd>Git log<cr>', desc = 'Git log' },
{ '<leader>gb', '<cmd>Git blame<cr>', desc = 'Git blame' },
{ '<leader>gp', '<cmd>Git push<cr>', desc = 'Git push' },
{ '<leader>gl', '<cmd>Git log<cr>', desc = 'Git log' },
{ '<leader>gb', '<cmd>Git blame<cr>', desc = 'Git blame' },
{ '<leader>gd', '<cmd>Gdiffsplit<cr>', desc = 'Git diff' },
},
},
+95 -35
View File
@@ -10,10 +10,10 @@ return {
-- Mason: LSP Server installer
'williamboman/mason.nvim',
'williamboman/mason-lspconfig.nvim',
-- Status updates für LSP
{ 'j-hui/fidget.nvim', opts = {} },
-- Neodev für Neovim config entwicklung
{ 'folke/neodev.nvim', opts = {} },
},
@@ -38,22 +38,26 @@ return {
require('mason-lspconfig').setup({
ensure_installed = {
-- Primary (TypeScript/Playwright)
'ts_ls', -- TypeScript/JavaScript
'ts_ls', -- TypeScript/JavaScript
-- Secondary (Go)
'gopls', -- Go
'gopls', -- Go
-- Python (für Scripts/Workflows)
'pyright', -- Python
'pyright', -- Python
-- LaTeX
'texlab',
-- Supporting
'lua_ls', -- Lua (für Neovim config)
'html', -- HTML
'cssls', -- CSS
'jsonls', -- JSON
'yamlls', -- YAML
'dockerls', -- Dockerfile
'lua_ls', -- Lua (für Neovim config)
'html', -- HTML
'cssls', -- CSS
'jsonls', -- JSON
'yamlls', -- YAML
'dockerls', -- Dockerfile
'docker_compose_language_service', -- Docker Compose
'eslint', -- Eslinter
},
})
@@ -98,11 +102,25 @@ return {
callback = vim.lsp.buf.clear_references,
})
end
end,
if client and client.name == 'eslint' then
vim.api.nvim_create_autocmd('BufWritePre', {
buffer = event.buf,
callback = function()
-- Statt vim.cmd('EslintFixAll') nutzen wir die direkte LSP-Aktion:
vim.lsp.buf.code_action({
context = { only = { "source.fixAll.eslint" } },
apply = true,
})
end,
desc = 'ESLint: Fixe alle Probleme beim Speichern (0.11 Style)',
})
end
end
})
-- ========== Server Configurations ==========
-- TypeScript/JavaScript (ts_ls)
vim.lsp.config('ts_ls', {
capabilities = capabilities,
@@ -203,6 +221,43 @@ return {
},
})
-- Eslinter
vim.lsp.config('eslint', {
capabilities = capabilities,
settings = {
workingDirectory = { mode = 'auto' },
},
})
vim.lsp.enable('eslint')
-- LaTeX (texlab)
vim.lsp.config('texlab', {
capabilities = capabilities,
settings = {
texlab = {
build = {
executable = 'pdflatex',
args = { '%f' },
onSave = true, -- Auto-compile beim Speichern
forwardSearchAfter = false,
},
forwardSearch = {
executable = 'open',
args = { '%p' },
},
chktex = {
onOpenAndSave = true,
},
diagnosticsDelay = 300,
latexFormatter = 'latexindent',
latexindent = {
modifyLineBreaks = false,
},
},
},
})
-- JSON mit Schema Support
vim.lsp.config('jsonls', {
capabilities = capabilities,
@@ -247,14 +302,22 @@ return {
capabilities = capabilities,
})
-- ========== Diagnostics Configuration ==========
-- ========== Diagnostics Configuration (Modern 0.11 Style) ==========
vim.diagnostic.config({
-- Hier werden die Zeichen jetzt direkt definiert (ersetzt sign_define)
signs = {
text = {
[vim.diagnostic.severity.ERROR] = '',
[vim.diagnostic.severity.WARN] = '',
[vim.diagnostic.severity.HINT] = '',
[vim.diagnostic.severity.INFO] = '»',
},
},
virtual_text = {
prefix = '',
source = 'if_many',
},
signs = true,
underline = true,
update_in_insert = false,
severity_sort = true,
@@ -266,24 +329,21 @@ return {
},
})
-- Diagnostic signs
local signs = { Error = '', Warn = '', Hint = '', Info = '»' }
for type, icon in pairs(signs) do
local hl = 'DiagnosticSign' .. type
vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = '' })
-- LSP Hover & Signature Help Styling
local handlers = {
['textDocument/hover'] = vim.lsp.with(vim.lsp.handlers.hover, { border = 'rounded' }),
['textDocument/signatureHelp'] = vim.lsp.with(vim.lsp.handlers.signature_help, { border = 'rounded' }),
}
-- Handlers registrieren
for method, handler in pairs(handlers) do
vim.lsp.handlers[method] = handler
end
-- LSP Hover border
vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(
vim.lsp.handlers.hover,
{ border = 'rounded' }
)
vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(
vim.lsp.handlers.signature_help,
{ border = 'rounded' }
)
end,
-- Hover Popup Styling (Highlights)
vim.api.nvim_set_hl(0, 'NormalFloat', { bg = '#1e1e1e', fg = '#ffffff' })
vim.api.nvim_set_hl(0, 'FloatBorder', { fg = '#61afef', bg = '#1e1e1e' })
end, -- Hier endet die config-Funktion des Plugins
},
-- SchemaStore für JSON/YAML
+1 -1
View File
@@ -1,5 +1,5 @@
-- ============================================================================
-- Neo-tree - File Explorer (ASCII Mode - Keine Nerd Font Icons benötigt)
-- Neo-tree - File Explorer
-- ============================================================================
return {
+13
View File
@@ -0,0 +1,13 @@
return {
'stevearc/oil.nvim',
dependencies = { "nvim-tree/nvim-web-devicons" },
config = function()
require("oil").setup({
view_options = {
show_hidden = true, -- Damit du auch .husky, .env etc. siehst
},
})
-- Der Primeagen-Shortcut: Einfach '-' drücken um den Ordner zu öffnen
vim.keymap.set("n", "-", "<CMD>Oil<CR>", { desc = "Open parent directory" })
end,
}
+1 -1
View File
@@ -17,7 +17,7 @@ return {
end,
},
{ 'nvim-telescope/telescope-ui-select.nvim' },
{ 'nvim-tree/nvim-web-devicons', enabled = vim.g.have_nerd_font },
{ 'nvim-tree/nvim-web-devicons', enabled = vim.g.have_nerd_font },
},
config = function()
local telescope = require('telescope')
+66 -35
View File
@@ -1,59 +1,73 @@
-- ============================================================================
-- UI - Colorscheme & Statusline
-- UI Enhancements - Colorscheme, Statusline, Which-Key
-- ============================================================================
return {
-- Tokyonight Theme
-- Colorscheme: Tokyo Night
{
'folke/tokyonight.nvim',
lazy = false,
priority = 1000,
config = function()
require('tokyonight').setup({
style = 'night',
transparent = true,
transparent = true, -- DEIN ALTER WERT!
terminal_colors = true,
styles = {
sidebars = 'transparent',
floats = 'transparent',
comments = { italic = true },
keywords = { italic = true },
sidebars = 'transparent', -- DEIN ALTER WERT!
floats = 'transparent', -- DEIN ALTER WERT!
},
on_colors = function(colors)
colors.bg_statusline = colors.none
end,
})
vim.cmd.colorscheme('tokyonight-night')
end,
},
-- Lualine Statusline
-- Statusline
{
'nvim-lualine/lualine.nvim',
dependencies = { 'nvim-tree/nvim-web-devicons' },
config = function()
require('lualine').setup({
options = {
theme = 'tokyonight',
component_separators = { left = '', right = '' },
section_separators = { left = '', right = '' },
},
sections = {
lualine_a = { 'mode' },
lualine_b = { 'branch', 'diff', 'diagnostics' },
lualine_c = {
{
'filename',
path = 1, -- Relativer Pfad
}
},
lualine_x = { 'encoding', 'fileformat', 'filetype' },
lualine_y = { 'progress' },
lualine_z = { 'location' }
},
})
end,
},
-- Which-Key: Zeigt verfügbare Keybindings
{
'folke/which-key.nvim',
event = 'VeryLazy',
opts = {
options = {
theme = 'tokyonight',
component_separators = { left = '', right = '' },
section_separators = { left = '', right = '' },
globalstatus = true,
preset = 'modern',
delay = 500,
win = {
border = 'rounded',
},
sections = {
lualine_a = { 'mode' },
lualine_b = { 'branch', 'diff', 'diagnostics' },
lualine_c = {
{
'filename',
path = 1, -- Relativer Pfad
symbols = {
modified = '[+]',
readonly = '[-]',
unnamed = '[No Name]',
}
}
},
lualine_x = { 'encoding', 'fileformat', 'filetype' },
lualine_y = { 'progress' },
lualine_z = { 'location' }
spec = {
{ '<leader>f', group = 'find' },
{ '<leader>g', group = 'git' },
{ '<leader>e', group = 'explorer' },
{ '<leader>c', group = 'code' },
{ '<leader>w', group = 'workspace' },
{ '<leader>a', group = 'avente/ai' },
},
},
},
@@ -61,15 +75,32 @@ return {
-- Indent guides
{
'lukas-reineke/indent-blankline.nvim',
event = { 'BufReadPost', 'BufNewFile' },
main = 'ibl',
event = { 'BufReadPost', 'BufNewFile' },
opts = {
indent = {
char = '',
},
scope = {
show_start = false,
show_end = false,
enabled = true,
},
},
},
{
'stevearc/dressing.nvim',
lazy = false, -- Wichtig, damit es sofort bereit ist
opts = {
input = {
enabled = true,
default_prompt = "",
border = "rounded",
relative = "editor",
prefer_width = 50,
},
select = {
enabled = true,
backend = { "nui", "builtin" }, -- Telescope hier bewusst rauslassen!
},
},
},