From 9ca5c72b7c16287f4279d5c5998e0df16a4354ae Mon Sep 17 00:00:00 2001 From: Filip Wandzio Date: Tue, 9 Sep 2025 13:54:03 +0200 Subject: Fix theme switching, optimize plugins, rewrite nested logic Signed-off-by: Filip Wandzio --- init.lua | 175 ++++++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 107 insertions(+), 68 deletions(-) diff --git a/init.lua b/init.lua index f91aa0f..b42faf2 100644 --- a/init.lua +++ b/init.lua @@ -35,52 +35,69 @@ vim.opt.updatetime = 300 vim.opt.timeoutlen = 500 -- -- Format on save if any attached LSP supports formatting -vim.api.nvim_create_autocmd("BufWritePre", { - callback = function() - local buf = vim.api.nvim_get_current_buf() - local clients = vim.lsp.get_clients({ bufnr = buf }) +vim.api.nvim_create_autocmd( + "BufWritePre", + { + callback = function() + local buf = vim.api.nvim_get_current_buf() + local clients = vim.lsp.get_clients({bufnr = buf}) - for _, client in ipairs(clients) do - if client.server_capabilities.documentFormattingProvider then - vim.lsp.buf.format({ silent = true }) - return + for _, client in ipairs(clients) do + if client.server_capabilities.documentFormattingProvider then + vim.lsp.buf.format({silent = true}) + return + end end + -- No formatting-capable client: do nothing end - -- No formatting-capable client: do nothing - end, -}) - + } +) -local run_on_save = vim.api.nvim_create_augroup("RunPfOnSave", { clear = true }) +local run_on_save = vim.api.nvim_create_augroup("RunPfOnSave", {clear = true}) local formatters = { { - patterns = { "*.js", "*.ts", "*.jsx", "*.json", "*.tsx", "*.css", "*.html", "*.yaml", "*.md", "*.svelte", "*.lua" }, + patterns = { + "*.js", + "*.ts", + "*.jsx", + "*.json", + "*.tsx", + "*.css", + "*.html", + "*.yaml", + "*.md", + "*.svelte", + "*.lua" + }, command = function(file) - vim.fn.system({ "prettier", "--write", file }) + vim.fn.system({"prettier", "--write", file}) end }, { - patterns = { "*.tex" }, + patterns = {"*.tex"}, command = function(file) - vim.fn.system({ "pdflatex", "--shell-escape", file }) + vim.fn.system({"pdflatex", "--shell-escape", file}) end }, { - patterns = { "*.c", "*.h" }, + patterns = {"*.c", "*.h"}, command = function(file) - vim.fn.system({ "clang-format", "-i", file }) + vim.fn.system({"clang-format", "-i", file}) end } } for _, fmt in ipairs(formatters) do - vim.api.nvim_create_autocmd("BufWritePost", { - group = run_on_save, - pattern = fmt.patterns, - callback = function(args) - local filepath = args.match or args.file - pcall(fmt.command, filepath) - end, - }) + vim.api.nvim_create_autocmd( + "BufWritePost", + { + group = run_on_save, + pattern = fmt.patterns, + callback = function(args) + local filepath = args.match or args.file + pcall(fmt.command, filepath) + end + } + ) end -- Auto-delete Netrw hidden buffers @@ -107,20 +124,20 @@ function ToggleVExplorer() else vim.cmd("topleft " .. (vim.g.netrw_winsize or 30) .. "vsplit") vim.cmd("Explore") - vim.t.expl_buf_num = vim.fn.bufnr('%') + vim.t.expl_buf_num = vim.fn.bufnr("%") end end - local autopairs = { - ["("] = ")", - ["["] = "]", - ["{"] = "}", - ["<"] = ">" - } +local autopairs = { + ["("] = ")", + ["["] = "]", + ["{"] = "}", + ["<"] = ">" +} - for open, close in pairs(autopairs) do - vim.api.nvim_set_keymap("i", open, open .. close .. "", {noremap = true, silent = true}) - end +for open, close in pairs(autopairs) do + vim.api.nvim_set_keymap("i", open, open .. close .. "", {noremap = true, silent = true}) +end function set_highlights() local highlights = { @@ -134,7 +151,6 @@ function set_highlights() {"SignColumn", {bg = "none"}}, {"StatusLine", {bg = "none", fg = "none"}}, {"StatusLineNc", {bg = "none", fg = "none"}}, - {"NvimTreeWinSeparator", {fg = "none"}}, {"CursorColumn", {fg = "none"}}, {"CursorLine", {bg = "none"}}, {"VertSplit", {bg = "none"}}, @@ -162,20 +178,19 @@ function set_highlights() end vim.cmd("colorscheme quiet") -vim.api.nvim_set_hl(0, "Normal", { bg = "#000c18" }) - vim.o.background = "dark" + function color_mode() if vim.o.background == "dark" then vim.o.background = "light" - vim.api.nvim_set_hl(0, "Normal", {bg = "none"}) + vim.cmd("colorscheme zellner") else vim.o.background = "dark" + vim.cmd("colorscheme quiet") end set_highlights() end - local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not vim.loop.fs_stat(lazypath) then vim.fn.system( @@ -211,7 +226,7 @@ require("lazy").setup( auto_start = "shut-up", display = { icons = { - mode="none" + mode = "none" }, ghost_text = { enabled = false @@ -223,12 +238,11 @@ require("lazy").setup( } ) - local lsp_servers = { - clangd = { filetypes = { "c", "h" } }, - svelte = { filetypes = { "svelte" } }, - ts_ls = { filetypes = { "typescript", "typescriptreact", "javascript", "javascriptreact" } }, - rust_analyzer = { filetypes = { "rust" } }, + clangd = {filetypes = {"c", "h"}}, + svelte = {filetypes = {"svelte"}}, + ts_ls = {filetypes = {"typescript", "typescriptreact", "javascript", "javascriptreact"}}, + rust_analyzer = {filetypes = {"rust"}} } local function server_maps(opts) @@ -237,17 +251,18 @@ end for server_name, config in pairs(lsp_servers) do require("lspconfig")[server_name].setup( - coq.lsp_ensure_capabilities({ - on_attach = function(client, bufnr) - server_maps({ buffer = bufnr }) - end, - filetypes = config.filetypes, - settings = config.settings or {}, - }) + coq.lsp_ensure_capabilities( + { + on_attach = function(client, bufnr) + server_maps({buffer = bufnr}) + end, + filetypes = config.filetypes, + settings = config.settings or {} + } + ) ) end - set_highlights() vim.g.mapleader = " " @@ -263,20 +278,44 @@ vim.keymap.set("n", "k", "5k") vim.keymap.set("n", "f", "FzfLua files") vim.keymap.set("n", "F", "FzfLua live_grep", {noremap = true, silent = true}) vim.keymap.set("n", "b", "FzfLua buffers") -vim.keymap.set("n", "d", vim.lsp.buf.definition, {silent=true}) -vim.keymap.set("n", "df", function() vim.diagnostic.open_float() end, {silent=true}) -vim.keymap.set("n", "k", vim.lsp.buf.hover, {silent=true}) -vim.keymap.set("n", "ca", function() vim.lsp.buf.code_action() end, {silent=true}) +vim.keymap.set("n", "d", vim.lsp.buf.definition, {silent = true}) +vim.keymap.set( + "n", + "df", + function() + vim.diagnostic.open_float() + end, + {silent = true} +) +vim.keymap.set("n", "k", vim.lsp.buf.hover, {silent = true}) +vim.keymap.set( + "n", + "ca", + function() + vim.lsp.buf.code_action() + end, + {silent = true} +) vim.keymap.set("n", "r", color_mode, {desc = "Change mode light/dark"}) -vim.keymap.set("n", "t", function() - vim.cmd("terminal") - vim.cmd("startinsert") -end, {desc = "Open terminal in current window"}) +vim.keymap.set( + "n", + "t", + function() + vim.cmd("terminal") + vim.cmd("startinsert") + end, + {desc = "Open terminal in current window"} +) vim.keymap.set("v", "J", ":m '>+1gv=gv") vim.keymap.set("v", "K", ":m '<-2gv=gv") -vim.keymap.set("t", "", function() - vim.cmd([[stopinsert]]) - vim.cmd([[b#]]) -end, {noremap = true, silent = true}) +vim.keymap.set( + "t", + "", + function() + vim.cmd([[stopinsert]]) + vim.cmd([[b#]]) + end, + {noremap = true, silent = true} +) -- cgit v1.2.3