From b06773b680d3c4a48a41414201af10e7cb6c7514 Mon Sep 17 00:00:00 2001 From: Filip Wandzio Date: Tue, 9 Sep 2025 01:50:08 +0200 Subject: Style the completion window to match the minimal settings, adjust color scheme, rewrite vexplore function Signed-off-by: Filip Wandzio --- init.lua | 153 +++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 79 insertions(+), 74 deletions(-) (limited to 'init.lua') diff --git a/init.lua b/init.lua index 389f8ab..f91aa0f 100644 --- a/init.lua +++ b/init.lua @@ -19,48 +19,69 @@ vim.opt.smartindent = true vim.opt.ruler = false vim.opt.wrap = false vim.opt.swapfile = false +vim.opt.wildmenu = true +vim.opt.path:append("**") vim.opt.hlsearch = true vim.opt.incsearch = true vim.opt.updatetime = 50 vim.opt.laststatus = 0 +-- vim.opt.termguicolors = true vim.opt.signcolumn = "number" vim.opt.clipboard = "unnamedplus" -vim.opt.termguicolors = true vim.opt.fillchars = "eob: " vim.opt.autoindent = true vim.opt.lazyredraw = false 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 }) + 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, +}) --- Format on save -vim.api.nvim_create_autocmd( - "BufWritePre", + +local run_on_save = vim.api.nvim_create_augroup("RunPfOnSave", { clear = true }) +local formatters = { { - callback = function() - vim.lsp.buf.format({silent = true}) + patterns = { "*.js", "*.ts", "*.jsx", "*.json", "*.tsx", "*.css", "*.html", "*.yaml", "*.md", "*.svelte", "*.lua" }, + command = function(file) + vim.fn.system({ "prettier", "--write", file }) end - } -) - -vim.api.nvim_create_augroup("RunPfOnSave", {clear = true}) -vim.api.nvim_create_autocmd( - "BufWritePost", + }, { - group = "RunPfOnSave", - pattern = {"*.js", "*.ts", "*.jsx", "*.json", "*.tsx", "*.css", "*.html", "*.yaml", "*.md", "*.svelte, *.lua"}, - command = "silent! !prettier --write %" - } -) -vim.api.nvim_create_autocmd( - "BufWritePost", + patterns = { "*.tex" }, + command = function(file) + vim.fn.system({ "pdflatex", "--shell-escape", file }) + end + }, { - group = "RunPfOnSave", - pattern = "*.tex", - command = "silent! !pdflatex --shell-escape %" + patterns = { "*.c", "*.h" }, + command = function(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, + }) +end -- Auto-delete Netrw hidden buffers vim.api.nvim_create_augroup("AutoDeleteNetrwHiddenBuffers", {clear = true}) @@ -76,31 +97,20 @@ vim.api.nvim_create_autocmd( } ) --- Toggle VExplorer function ToggleVExplorer() - if vim.t.expl_buf_num then - local expl_win_num = vim.fn.bufwinnr(vim.t.expl_buf_num) - if expl_win_num ~= -1 then - if vim.fn.winnr('$') > 1 then - local cur_win_id = vim.fn.win_getid() - vim.cmd(expl_win_num .. "windo close") - local prev_win_num = vim.fn.win_id2win(cur_win_id) - if prev_win_num ~= 0 then - vim.cmd(prev_win_num .. "wincmd w") - end - else - vim.cmd("enew") - end - end + local expl_buf = vim.t.expl_buf_num + local expl_win = expl_buf and vim.fn.bufwinnr(expl_buf) or -1 + + if expl_win ~= -1 then + vim.cmd(expl_win .. "wincmd c") vim.t.expl_buf_num = nil else - vim.cmd("topleft " .. vim.g.netrw_winsize .. "vsplit") + vim.cmd("topleft " .. (vim.g.netrw_winsize or 30) .. "vsplit") vim.cmd("Explore") - vim.t.expl_buf_num = vim.fn.bufnr("%") - vim.cmd("wincmd h") + vim.t.expl_buf_num = vim.fn.bufnr('%') end end -local function setup_autopairs() + local autopairs = { ["("] = ")", ["["] = "]", @@ -111,7 +121,6 @@ local function setup_autopairs() for open, close in pairs(autopairs) do vim.api.nvim_set_keymap("i", open, open .. close .. "", {noremap = true, silent = true}) end -end function set_highlights() local highlights = { @@ -152,7 +161,7 @@ function set_highlights() end end -vim.cmd("colorscheme default") +vim.cmd("colorscheme quiet") vim.api.nvim_set_hl(0, "Normal", { bg = "#000c18" }) vim.o.background = "dark" @@ -166,7 +175,6 @@ function color_mode() set_highlights() end -setup_autopairs() local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not vim.loop.fs_stat(lazypath) then @@ -191,7 +199,6 @@ require("lazy").setup( opts = {} }, {"airblade/vim-gitgutter"}, - {"norcalli/nvim-colorizer.lua"}, { "neovim/nvim-lspconfig", lazy = false, @@ -201,51 +208,49 @@ require("lazy").setup( }, init = function() vim.g.coq_settings = { - auto_start = "shut-up" + auto_start = "shut-up", + display = { + icons = { + mode="none" + }, + ghost_text = { + enabled = false + } + } } end } } ) -require("colorizer").setup() - -vim.api.nvim_create_autocmd( - "BufWritePre", - { - callback = function() - vim.lsp.buf.format() - end - } -) - local lsp_servers = { - clangd = { filetypes = {"c", "cpp", "objc", "objcpp"} }, - 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 server_maps = function(opts) +local function server_maps(opts) + local buf = opts.buffer end -for lsp, settings in pairs(lsp_servers) do - require("lspconfig")[lsp].setup( +for server_name, config in pairs(lsp_servers) do + require("lspconfig")[server_name].setup( coq.lsp_ensure_capabilities({ - on_attach = function(_, buffer) - server_maps({buffer = buffer}) + on_attach = function(client, bufnr) + server_maps({ buffer = bufnr }) end, - settings = settings + filetypes = config.filetypes, + settings = config.settings or {}, }) ) end + set_highlights() vim.g.mapleader = " " - - vim.keymap.set("n", "e", ToggleVExplorer, {desc = "Toggle VExplorer"}) vim.keymap.set("n", "z", [[:%s/\<\>//gI]]) vim.keymap.set("n", "a", "ggVG") @@ -258,10 +263,10 @@ 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, opts) -vim.keymap.set("n", "df", function() vim.diagnostic.open_float() end, opts) -vim.keymap.set("n", "k", vim.lsp.buf.hover, opts) -vim.keymap.set("n", "ca", function() vim.lsp.buf.code_action() end, opts) +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") -- cgit v1.2.3