visually updated by A LOT! made it readable and "modifiable"

This commit is contained in:
rattatwinko
2025-06-13 11:24:20 +02:00
parent 968d061fa3
commit 2ae62e2359

203
init.lua
View File

@@ -5,7 +5,7 @@
vim.g.mapleader = " " vim.g.mapleader = " "
vim.g.maplocalleader = " " vim.g.maplocalleader = " "
-- Editor Settings (unchanged from previous) -- Editor Settings
vim.opt.number = true vim.opt.number = true
vim.opt.relativenumber = true vim.opt.relativenumber = true
vim.opt.mouse = "a" vim.opt.mouse = "a"
@@ -36,6 +36,9 @@ vim.opt.swapfile = false
vim.opt.backup = false vim.opt.backup = false
vim.opt.writebackup = false vim.opt.writebackup = false
-- Smoother scrolling
vim.opt.smoothscroll = true
-- ====================== -- ======================
-- 2. Plugin Management -- 2. Plugin Management
-- ====================== -- ======================
@@ -54,7 +57,7 @@ end
vim.opt.rtp:prepend(lazypath) vim.opt.rtp:prepend(lazypath)
-- ====================== -- ======================
-- 3. Plugin Specifications -- 3. Plugin Specifications (Updated)
-- ====================== -- ======================
local plugins = { local plugins = {
@@ -108,29 +111,7 @@ local plugins = {
{ {
"windwp/nvim-autopairs", "windwp/nvim-autopairs",
event = "InsertEnter", event = "InsertEnter",
config = function() config = true,
require("nvim-autopairs").setup({
check_ts = true,
ts_config = {
lua = { "string", "source" },
javascript = { "string", "template_string" },
typescript = { "string", "template_string" },
},
disable_filetype = { "TelescopePrompt", "spectre_panel" },
fast_wrap = {
map = "<M-e>",
chars = { "{", "[", "(", '"', "'", "<" },
pattern = [=[[%'%"%)%>%]%)%}%,]]=],
end_key = "$",
highlight = "Search",
highlight_grey = "Comment",
},
})
local cmp_autopairs = require("nvim-autopairs.completion.cmp")
local cmp = require("cmp")
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done())
end,
}, },
-- Git Integration -- Git Integration
@@ -140,9 +121,89 @@ local plugins = {
{ "akinsho/git-conflict.nvim", version = "*" }, { "akinsho/git-conflict.nvim", version = "*" },
-- UI Enhancements -- UI Enhancements
{ "nvim-lualine/lualine.nvim", dependencies = { "nvim-tree/nvim-web-devicons" } }, {
{ "akinsho/bufferline.nvim", version = "*", dependencies = "nvim-tree/nvim-web-devicons" }, "nvim-lualine/lualine.nvim",
{ "lukas-reineke/indent-blankline.nvim", main = "ibl", opts = {} }, dependencies = { "nvim-tree/nvim-web-devicons" },
opts = {
options = {
theme = "palenight",
component_separators = { left = '', right = '' },
section_separators = { left = '', right = '' },
}
},
},
-- Modern tab/bufferline with animations
{
"akinsho/bufferline.nvim",
version = "*",
dependencies = "nvim-tree/nvim-web-devicons",
opts = {
options = {
mode = "tabs",
diagnostics = "nvim_lsp",
always_show_bufferline = true,
show_close_icon = false,
color_icons = true,
offsets = {
{
filetype = "neo-tree",
text = "File Explorer",
highlight = "Directory",
text_align = "left",
},
},
hover = {
enabled = true,
delay = 200,
reveal = { 'close' }
},
}
}
},
-- Better split resizing with animations
{
"anuvyklack/windows.nvim",
dependencies = {
"anuvyklack/middleclass",
"anuvyklack/animation.nvim"
},
config = function()
vim.o.winwidth = 10
vim.o.winminwidth = 10
vim.o.equalalways = false
require('windows').setup({
autowidth = {
enable = true,
winwidth = 10,
filetype = {
help = 2,
},
},
ignore = {
buftype = { 'quickfix' },
filetype = { 'NvimTree', 'neo-tree', 'undotree', 'gundo' }
},
animation = {
enable = true,
duration = 300,
fps = 30,
easing = 'in_out_sine'
}
})
end
},
-- Better indent guides
{
"lukas-reineke/indent-blankline.nvim",
main = "ibl",
opts = {
indent = { char = "" },
scope = { enabled = true },
}
},
-- Syntax & Editing -- Syntax & Editing
{ "nvim-treesitter/nvim-treesitter", build = ":TSUpdate" }, { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate" },
@@ -153,6 +214,17 @@ local plugins = {
{ "folke/which-key.nvim", event = "VimEnter" }, { "folke/which-key.nvim", event = "VimEnter" },
{ "stevearc/conform.nvim" }, { "stevearc/conform.nvim" },
{ "mfussenegger/nvim-lint", event = { "BufReadPre", "BufNewFile" } }, { "mfussenegger/nvim-lint", event = { "BufReadPre", "BufNewFile" } },
-- Smooth scrolling
{ "karb94/neoscroll.nvim", config = true },
-- Better notifications
{
"rcarriga/nvim-notify",
config = function()
vim.notify = require("notify")
end
}
} }
-- ====================== -- ======================
@@ -173,12 +245,12 @@ require("lazy").setup(plugins, {
source = "📄", source = "📄",
start = "🚀", start = "🚀",
task = "📌", task = "📌",
lazy = "💤", lazy = "💤 ",
}, },
}, },
}) })
-- Neo-tree Configuration with Keymaps -- Neo-tree Configuration
require("neo-tree").setup({ require("neo-tree").setup({
close_if_last_window = false, close_if_last_window = false,
popup_border_style = "rounded", popup_border_style = "rounded",
@@ -193,7 +265,7 @@ require("neo-tree").setup({
position = "right", position = "right",
width = 30, width = 30,
mappings = { mappings = {
["<space>"] = "none", -- disable space as it's our leader key ["<space>"] = "none",
["o"] = "open", ["o"] = "open",
["<CR>"] = "open", ["<CR>"] = "open",
["t"] = "open_tabnew", ["t"] = "open_tabnew",
@@ -209,7 +281,7 @@ require("neo-tree").setup({
}, },
}) })
-- Telescope Configuration with Keymaps -- Telescope Configuration
require("telescope").setup({ require("telescope").setup({
defaults = { defaults = {
mappings = { mappings = {
@@ -225,6 +297,20 @@ require("telescope").setup({
["<C-c>"] = "close", ["<C-c>"] = "close",
}, },
}, },
layout_strategy = "flex",
layout_config = {
horizontal = {
preview_width = 0.6,
},
},
},
pickers = {
find_files = {
theme = "dropdown",
},
live_grep = {
theme = "dropdown",
},
}, },
}) })
@@ -313,7 +399,7 @@ cmp.setup({
}) })
-- ====================== -- ======================
-- 5. Key Mappings -- 5. Key Mappings (Enhanced)
-- ====================== -- ======================
-- 🚀 General Keybinds -- 🚀 General Keybinds
@@ -340,11 +426,31 @@ vim.keymap.set("n", "<leader>wa", vim.lsp.buf.add_workspace_folder)
vim.keymap.set("n", "<leader>wr", vim.lsp.buf.remove_workspace_folder) vim.keymap.set("n", "<leader>wr", vim.lsp.buf.remove_workspace_folder)
vim.keymap.set("n", "<leader>wl", function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end) vim.keymap.set("n", "<leader>wl", function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end)
-- 💾 Buffer Management -- 💾 Buffer/Tab Management
vim.keymap.set("n", "<leader>bd", ":bdelete<CR>") vim.keymap.set("n", "<leader>bd", ":bdelete<CR>")
vim.keymap.set("n", "<leader>bn", ":bnext<CR>") vim.keymap.set("n", "<leader>bn", ":BufferLineCycleNext<CR>")
vim.keymap.set("n", "<leader>bp", ":bprevious<CR>") vim.keymap.set("n", "<leader>bp", ":BufferLineCyclePrev<CR>")
vim.keymap.set("n", "<leader>bl", ":Telescope buffers<CR>") vim.keymap.set("n", "<leader>bl", ":Telescope buffers<CR>")
vim.keymap.set("n", "<leader>1", ":BufferLineGoToBuffer 1<CR>")
vim.keymap.set("n", "<leader>2", ":BufferLineGoToBuffer 2<CR>")
vim.keymap.set("n", "<leader>3", ":BufferLineGoToBuffer 3<CR>")
vim.keymap.set("n", "<leader>4", ":BufferLineGoToBuffer 4<CR>")
vim.keymap.set("n", "<leader>5", ":BufferLineGoToBuffer 5<CR>")
-- 🖥️ Window Management
vim.keymap.set("n", "<C-h>", "<C-w>h")
vim.keymap.set("n", "<C-j>", "<C-w>j")
vim.keymap.set("n", "<C-k>", "<C-w>k")
vim.keymap.set("n", "<C-l>", "<C-w>l")
-- Split resizing with Ctrl+Arrow keys
vim.keymap.set("n", "<C-Up>", ":resize +2<CR>")
vim.keymap.set("n", "<C-Down>", ":resize -2<CR>")
vim.keymap.set("n", "<C-Left>", ":vertical resize -2<CR>")
vim.keymap.set("n", "<C-Right>", ":vertical resize +2<CR>")
-- Maximize current split
vim.keymap.set("n", "<leader>wm", ":WindowsMaximize<CR>")
-- 🐱 Git -- 🐱 Git
vim.keymap.set("n", "<leader>gc", ":Git commit<CR>") vim.keymap.set("n", "<leader>gc", ":Git commit<CR>")
@@ -354,8 +460,8 @@ vim.keymap.set("n", "<leader>gd", ":Gdiff<CR>")
vim.keymap.set("n", "<leader>gb", ":Git blame<CR>") vim.keymap.set("n", "<leader>gb", ":Git blame<CR>")
-- 🔄 Terminal -- 🔄 Terminal
vim.keymap.set("t", "<C-\\>", "<C-\\><C-n>") -- Escape terminal mode vim.keymap.set("t", "<C-\\>", "<C-\\><C-n>")
vim.keymap.set("t", "<Esc><Esc>", "<C-\\><C-n>") -- Alternative escape vim.keymap.set("t", "<Esc><Esc>", "<C-\\><C-n>")
vim.keymap.set("n", "<leader>tt", ":ToggleTerm<CR>") vim.keymap.set("n", "<leader>tt", ":ToggleTerm<CR>")
vim.keymap.set("n", "<leader>tf", ":ToggleTerm direction=float<CR>") vim.keymap.set("n", "<leader>tf", ":ToggleTerm direction=float<CR>")
@@ -381,4 +487,25 @@ require("nvim-treesitter.configs").setup({
ensure_installed = { "lua", "python", "javascript", "typescript", "html", "css", "bash", "json", "yaml" }, ensure_installed = { "lua", "python", "javascript", "typescript", "html", "css", "bash", "json", "yaml" },
highlight = { enable = true }, highlight = { enable = true },
indent = { enable = true }, indent = { enable = true },
incremental_selection = {
enable = true,
keymaps = {
init_selection = "gnn",
node_incremental = "grn",
scope_incremental = "grc",
node_decremental = "grm",
},
},
}) })
-- Enable smooth scrolling
require('neoscroll').setup({
mappings = { '<C-u>', '<C-d>', '<C-b>', '<C-f>' },
hide_cursor = true,
stop_eof = true,
respect_scrolloff = false,
cursor_scrolls_alone = true,
})
-- Enable better window management
require('windows').setup()