feat: sync .config dotfiles, transition Node to mise, integrate 1Password CLI/SSH Agent, and add optional AI CLI tools
This commit is contained in:
+29
-28
@@ -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" }
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
})
|
||||
|
||||
@@ -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,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -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' },
|
||||
},
|
||||
},
|
||||
|
||||
@@ -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,5 +1,5 @@
|
||||
-- ============================================================================
|
||||
-- Neo-tree - File Explorer (ASCII Mode - Keine Nerd Font Icons benötigt)
|
||||
-- Neo-tree - File Explorer
|
||||
-- ============================================================================
|
||||
|
||||
return {
|
||||
|
||||
@@ -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,
|
||||
}
|
||||
@@ -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')
|
||||
|
||||
@@ -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!
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user