From f6bde784295f3b760ff634d65fef6b037f2aa017 Mon Sep 17 00:00:00 2001 From: "David T. Sadler" Date: Sat, 28 Feb 2026 12:48:10 +0000 Subject: Format lua files with stylelua --- nvim/.config/nvim/init.lua | 12 +- nvim/.config/nvim/lsp/intelephense.lua | 26 +- nvim/.config/nvim/lsp/lua_ls.lua | 70 ++--- nvim/.config/nvim/lua/config/autocmds.lua | 154 +++++------ nvim/.config/nvim/lua/config/globals.lua | 6 +- nvim/.config/nvim/lua/config/keymaps.lua | 317 +++++++++++++--------- nvim/.config/nvim/lua/config/lsp.lua | 18 +- nvim/.config/nvim/lua/config/options.lua | 114 ++++---- nvim/.config/nvim/lua/plugins/blink-cmp.lua | 64 ++--- nvim/.config/nvim/lua/plugins/init.lua | 14 +- nvim/.config/nvim/lua/plugins/mini.lua | 18 +- nvim/.config/nvim/lua/plugins/nord.lua | 26 +- nvim/.config/nvim/lua/plugins/nvim-treesitter.lua | 26 +- nvim/.config/nvim/lua/plugins/snacks-nvim.lua | 12 +- nvim/.config/nvim/lua/plugins/vim-obsession.lua | 2 +- 15 files changed, 470 insertions(+), 409 deletions(-) diff --git a/nvim/.config/nvim/init.lua b/nvim/.config/nvim/init.lua index 372bf48..01d2104 100644 --- a/nvim/.config/nvim/init.lua +++ b/nvim/.config/nvim/init.lua @@ -1,6 +1,6 @@ -require('config.globals') -require('config.options') -require('plugins') -require('config.keymaps') -require('config.autocmds') -require('config.lsp') +require("config.globals") +require("config.options") +require("plugins") +require("config.keymaps") +require("config.autocmds") +require("config.lsp") diff --git a/nvim/.config/nvim/lsp/intelephense.lua b/nvim/.config/nvim/lsp/intelephense.lua index a7f221f..6a263ce 100644 --- a/nvim/.config/nvim/lsp/intelephense.lua +++ b/nvim/.config/nvim/lsp/intelephense.lua @@ -1,15 +1,15 @@ return { - cmd = { 'intelephense', '--stdio' }, - filetypes = { 'php' }, - root_markers = { '.git', 'composer.json' }, - init_options = { - licenceKey = "/run/secrets/intelephense/licence", - }, - settings = { - intelephense = { - telemetry = { - enabled = false, - }, - }, - }, + cmd = { "intelephense", "--stdio" }, + filetypes = { "php" }, + root_markers = { ".git", "composer.json" }, + init_options = { + licenceKey = "/run/secrets/intelephense/licence", + }, + settings = { + intelephense = { + telemetry = { + enabled = false, + }, + }, + }, } diff --git a/nvim/.config/nvim/lsp/lua_ls.lua b/nvim/.config/nvim/lsp/lua_ls.lua index 8975a49..274634f 100644 --- a/nvim/.config/nvim/lsp/lua_ls.lua +++ b/nvim/.config/nvim/lsp/lua_ls.lua @@ -1,37 +1,37 @@ return { - cmd = { 'lua-language-server' }, - filetypes = { 'lua' }, - root_markers = { - { '.emmyrc.json', '.luarc.json', '.luarc.jsonc' }, - { '.luacheckrc', '.stylua.toml', 'stylua.toml', 'selene.toml', 'selene.yml' }, - { '.git' }, - }, - settings = { - Lua = { - codeLens = { - enable = true, - }, - hint = { - enable = true, - semicolon = 'Disable', - }, - diagnostics = { - globals = { 'vim' }, - }, - runtime = { - version = 'LuaJIT', - path = { - 'lua/?.lua', - 'lua/?/init.lua', - }, - }, - workspace = { - checkThirdParty = false, - library = { - vim.env.VIMRUNTIME, - vim.fn.expand("$HOME/.local/share/nvim/site/pack/core/opt/snacks.nvim/lua"), - }, - }, - }, - }, + cmd = { "lua-language-server" }, + filetypes = { "lua" }, + root_markers = { + { ".emmyrc.json", ".luarc.json", ".luarc.jsonc" }, + { ".luacheckrc", ".stylua.toml", "stylua.toml", "selene.toml", "selene.yml" }, + { ".git" }, + }, + settings = { + Lua = { + codeLens = { + enable = true, + }, + hint = { + enable = true, + semicolon = "Disable", + }, + diagnostics = { + globals = { "vim" }, + }, + runtime = { + version = "LuaJIT", + path = { + "lua/?.lua", + "lua/?/init.lua", + }, + }, + workspace = { + checkThirdParty = false, + library = { + vim.env.VIMRUNTIME, + vim.fn.expand("$HOME/.local/share/nvim/site/pack/core/opt/snacks.nvim/lua"), + }, + }, + }, + }, } diff --git a/nvim/.config/nvim/lua/config/autocmds.lua b/nvim/.config/nvim/lua/config/autocmds.lua index f93b92f..6ff1f4a 100644 --- a/nvim/.config/nvim/lua/config/autocmds.lua +++ b/nvim/.config/nvim/lua/config/autocmds.lua @@ -1,98 +1,98 @@ -- https://raw.githubusercontent.com/LazyVim/LazyVim/refs/heads/main/lua/lazyvim/config/autocmds.lua local function augroup(name) - return vim.api.nvim_create_augroup('dts_' .. name, { clear = true }) + return vim.api.nvim_create_augroup("dts_" .. name, { clear = true }) end -- Check if we need to reload the file when it changed. -vim.api.nvim_create_autocmd({ 'FocusGained', 'TermClose', 'TermLeave' }, { - group = augroup('checktime'), - callback = function() - if vim.o.buftype ~= 'nofile' then - vim.cmd('checktime') - end - end, +vim.api.nvim_create_autocmd({ "FocusGained", "TermClose", "TermLeave" }, { + group = augroup("checktime"), + callback = function() + if vim.o.buftype ~= "nofile" then + vim.cmd("checktime") + end + end, }) -- Highlight on yank. -vim.api.nvim_create_autocmd('TextYankPost', { - group = augroup('highlight_yank'), - callback = function() - (vim.hl or vim.highlight).on_yank() - end, +vim.api.nvim_create_autocmd("TextYankPost", { + group = augroup("highlight_yank"), + callback = function() + (vim.hl or vim.highlight).on_yank() + end, }) -- Resize splits if window got resized. -vim.api.nvim_create_autocmd({ 'VimResized' }, { - group = augroup('resize_splits'), - callback = function() - local current_tab = vim.fn.tabpagenr() - vim.cmd('tabdo wincmd =') - vim.cmd('tabnext ' .. current_tab) - end, +vim.api.nvim_create_autocmd({ "VimResized" }, { + group = augroup("resize_splits"), + callback = function() + local current_tab = vim.fn.tabpagenr() + vim.cmd("tabdo wincmd =") + vim.cmd("tabnext " .. current_tab) + end, }) -- Go to last loc when opening a buffer. -vim.api.nvim_create_autocmd('BufReadPost', { - group = augroup('last_loc'), - callback = function(event) - local exclude = { 'gitcommit' } - local buf = event.buf - if vim.tbl_contains(exclude, vim.bo[buf].filetype) or vim.b[buf].lazyvim_last_loc then - return - end - vim.b[buf].lazyvim_last_loc = true - local mark = vim.api.nvim_buf_get_mark(buf, '"') - local lcount = vim.api.nvim_buf_line_count(buf) - if mark[1] > 0 and mark[1] <= lcount then - pcall(vim.api.nvim_win_set_cursor, 0, mark) - end - end, +vim.api.nvim_create_autocmd("BufReadPost", { + group = augroup("last_loc"), + callback = function(event) + local exclude = { "gitcommit" } + local buf = event.buf + if vim.tbl_contains(exclude, vim.bo[buf].filetype) or vim.b[buf].lazyvim_last_loc then + return + end + vim.b[buf].lazyvim_last_loc = true + local mark = vim.api.nvim_buf_get_mark(buf, '"') + local lcount = vim.api.nvim_buf_line_count(buf) + if mark[1] > 0 and mark[1] <= lcount then + pcall(vim.api.nvim_win_set_cursor, 0, mark) + end + end, }) -- Close some filetypes with -vim.api.nvim_create_autocmd('FileType', { - group = augroup('close_with_q'), - pattern = { - 'man', - 'PlenaryTestPopup', - 'checkhealth', - 'dbout', - 'gitsigns-blame', - 'grug-far', - 'help', - 'lspinfo', - 'neotest-output', - 'neotest-output-panel', - 'neotest-summary', - 'notify', - 'qf', - 'spectre_panel', - 'startuptime', - 'tsplayground', - }, - callback = function(event) - vim.bo[event.buf].buflisted = false - vim.schedule(function() - vim.keymap.set('n', 'q', function() - vim.cmd('close') - pcall(vim.api.nvim_buf_delete, event.buf, { force = true }) - end, { - buffer = event.buf, - silent = true, - desc = 'Quit buffer', - }) - end) - end, +vim.api.nvim_create_autocmd("FileType", { + group = augroup("close_with_q"), + pattern = { + "man", + "PlenaryTestPopup", + "checkhealth", + "dbout", + "gitsigns-blame", + "grug-far", + "help", + "lspinfo", + "neotest-output", + "neotest-output-panel", + "neotest-summary", + "notify", + "qf", + "spectre_panel", + "startuptime", + "tsplayground", + }, + callback = function(event) + vim.bo[event.buf].buflisted = false + vim.schedule(function() + vim.keymap.set("n", "q", function() + vim.cmd("close") + pcall(vim.api.nvim_buf_delete, event.buf, { force = true }) + end, { + buffer = event.buf, + silent = true, + desc = "Quit buffer", + }) + end) + end, }) -- Auto create dir when saving a file, in case some intermediate directory does not exist. -vim.api.nvim_create_autocmd({ 'BufWritePre' }, { - group = augroup('auto_create_dir'), - callback = function(event) - if event.match:match('^%w%w+:[\\/][\\/]') then - return - end - local file = vim.uv.fs_realpath(event.match) or event.match - vim.fn.mkdir(vim.fn.fnamemodify(file, ':p:h'), 'p') - end, +vim.api.nvim_create_autocmd({ "BufWritePre" }, { + group = augroup("auto_create_dir"), + callback = function(event) + if event.match:match("^%w%w+:[\\/][\\/]") then + return + end + local file = vim.uv.fs_realpath(event.match) or event.match + vim.fn.mkdir(vim.fn.fnamemodify(file, ":p:h"), "p") + end, }) diff --git a/nvim/.config/nvim/lua/config/globals.lua b/nvim/.config/nvim/lua/config/globals.lua index 8058c12..ed61cfe 100644 --- a/nvim/.config/nvim/lua/config/globals.lua +++ b/nvim/.config/nvim/lua/config/globals.lua @@ -2,6 +2,6 @@ local g = vim.g -g.mapleader = ' ' -- Set leader key to space. -g.maplocalleader = ' ' -g.have_nerd_font = true -- I have a Nerd Font install and selected in the terminal. +g.mapleader = " " -- Set leader key to space. +g.maplocalleader = " " +g.have_nerd_font = true -- I have a Nerd Font install and selected in the terminal. diff --git a/nvim/.config/nvim/lua/config/keymaps.lua b/nvim/.config/nvim/lua/config/keymaps.lua index 8883425..308aca6 100644 --- a/nvim/.config/nvim/lua/config/keymaps.lua +++ b/nvim/.config/nvim/lua/config/keymaps.lua @@ -3,188 +3,249 @@ local set = vim.keymap.set -- Quickly source current file. -set('n', 'r', 'source %', { desc = 'Source Current File' }) +set("n", "r", "source %", { desc = "Source Current File" }) -- Better up/down though display lines instead of logical lines. -- But still allow count when jumping by logical lines. -set({ 'n', 'x' }, 'j', "v:count == 0 ? 'gj' : 'j'", { desc = 'Down', expr = true, silent = true }) -set({ 'n', 'x' }, '', "v:count == 0 ? 'gj' : 'j'", { desc = 'Down', expr = true, silent = true }) -set({ 'n', 'x' }, 'k', "v:count == 0 ? 'gk' : 'k'", { desc = 'Up', expr = true, silent = true }) -set({ 'n', 'x' }, '', "v:count == 0 ? 'gk' : 'k'", { desc = 'Up', expr = true, silent = true }) +set({ "n", "x" }, "j", "v:count == 0 ? 'gj' : 'j'", { desc = "Down", expr = true, silent = true }) +set({ "n", "x" }, "", "v:count == 0 ? 'gj' : 'j'", { desc = "Down", expr = true, silent = true }) +set({ "n", "x" }, "k", "v:count == 0 ? 'gk' : 'k'", { desc = "Up", expr = true, silent = true }) +set({ "n", "x" }, "", "v:count == 0 ? 'gk' : 'k'", { desc = "Up", expr = true, silent = true }) -- Window resizing using arrow keys. -set('n', '', 'resize +2', { desc = 'Increase Window Height' }) -set('n', '', 'resize -2', { desc = 'Decrease Window Height' }) -set('n', '', 'vertical resize -2', { desc = 'Decrease Window Width' }) -set('n', '', 'vertical resize +2', { desc = 'Increase Window Width' }) +set("n", "", "resize +2", { desc = "Increase Window Height" }) +set("n", "", "resize -2", { desc = "Decrease Window Height" }) +set("n", "", "vertical resize -2", { desc = "Decrease Window Width" }) +set("n", "", "vertical resize +2", { desc = "Increase Window Width" }) -- Move lines up/down. -set('n', '', "execute 'move .+' . v:count1==", { desc = 'Move Down' }) -set('n', '', "execute 'move .-' . (v:count1 + 1)==", { desc = 'Move Up' }) -set('v', '', ":execute \"'<,'>move '>+\" . v:count1gv=gv", { desc = 'Move Down' }) -set('v', '', ":execute \"'<,'>move '<-\" . (v:count1 + 1)gv=gv", { desc = 'Move Up' }) +set("n", "", "execute 'move .+' . v:count1==", { desc = "Move Down" }) +set("n", "", "execute 'move .-' . (v:count1 + 1)==", { desc = "Move Up" }) +set("v", "", ":execute \"'<,'>move '>+\" . v:count1gv=gv", { desc = "Move Down" }) +set("v", "", ":execute \"'<,'>move '<-\" . (v:count1 + 1)gv=gv", { desc = "Move Up" }) -- Buffer navigation. -set('n', '<,', 'bprevious', { desc = 'Prev Buffer' }) -set('n', '>.', 'bnext', { desc = 'Next Buffer' }) -set('n', '>b', 'bprevious', { desc = 'Prev Buffer' }) -set('n', 'bnext', { desc = 'Next Buffer' }) -set('n', 'bb', 'e #', { desc = 'Switch to Other Buffer' }) -set('n', '`', 'e #', { desc = 'Switch to Other Buffer' }) -set('n', 'bd', function() Snacks.bufdelete() end, { desc = 'Delete Buffer' }) -set('n', 'bo', function() Snacks.bufdelete.other() end, { desc = 'Delete Other Buffers' }) -set('n', 'bD', ':bd', { desc = 'Delete Buffer and Window' }) +set("n", "<,", "bprevious", { desc = "Prev Buffer" }) +set("n", ">.", "bnext", { desc = "Next Buffer" }) +set("n", ">b", "bprevious", { desc = "Prev Buffer" }) +set("n", "bnext", { desc = "Next Buffer" }) +set("n", "bb", "e #", { desc = "Switch to Other Buffer" }) +set("n", "`", "e #", { desc = "Switch to Other Buffer" }) +set("n", "bd", function() + Snacks.bufdelete() +end, { desc = "Delete Buffer" }) +set("n", "bo", function() + Snacks.bufdelete.other() +end, { desc = "Delete Other Buffers" }) +set("n", "bD", ":bd", { desc = "Delete Buffer and Window" }) -- https://github.com/mhinz/vim-galore#saner-behavior-of-n-and-n -- Saner search behavior: n always goes forward, N always goes backward. -- Added 'zz' to keep the result centered. -set('n', 'n', "'Nn'[v:searchforward].'zzzv'", { expr = true, desc = 'Next Search Result' }) -set('x', 'n', "'Nn'[v:searchforward]", { expr = true, desc = 'Next Search Result' }) -set('o', 'n', "'Nn'[v:searchforward]", { expr = true, desc = 'Next Search Result' }) -set('n', 'N', "'nN'[v:searchforward].'zzzv'", { expr = true, desc = 'Prev Search Result' }) -set('x', 'N', "'nN'[v:searchforward]", { expr = true, desc = 'Prev Search Result' }) -set('o', 'N', "'nN'[v:searchforward]", { expr = true, desc = 'Prev Search Result' }) +set("n", "n", "'Nn'[v:searchforward].'zzzv'", { expr = true, desc = "Next Search Result" }) +set("x", "n", "'Nn'[v:searchforward]", { expr = true, desc = "Next Search Result" }) +set("o", "n", "'Nn'[v:searchforward]", { expr = true, desc = "Next Search Result" }) +set("n", "N", "'nN'[v:searchforward].'zzzv'", { expr = true, desc = "Prev Search Result" }) +set("x", "N", "'nN'[v:searchforward]", { expr = true, desc = "Prev Search Result" }) +set("o", "N", "'nN'[v:searchforward]", { expr = true, desc = "Prev Search Result" }) -- Have undo breakpoints set every time a punctuation mark is typed. -- Ensures more granular history is preserved during undo. -set('i', ',', ',u', { desc = 'Undo Breakpoint: ,' }) -set('i', '.', '.u', { desc = 'Undo Breakpoint: .' }) -set('i', ';', ';u', { desc = 'Undo Breakpoint: ;' }) +set("i", ",", ",u", { desc = "Undo Breakpoint: ," }) +set("i", ".", ".u", { desc = "Undo Breakpoint: ." }) +set("i", ";", ";u", { desc = "Undo Breakpoint: ;" }) -- Save file with Ctrl+S -set({ 'i', 'x', 'n', 's' }, '', 'w', { desc = 'Save File' }) +set({ "i", "x", "n", "s" }, "", "w", { desc = "Save File" }) -- Use built-in 'K' to access Linux man pages directly (essential for C/Shell dev). -set('n', 'K', 'norm! K', { desc = 'Lookup System Manual' }) +set("n", "K", "norm! K", { desc = "Lookup System Manual" }) -- Better indenting in visual mode. -set('v', '<', '', '>gv', { desc = 'Indent Right And Reselect' }) +set("v", "<", "", ">gv", { desc = "Indent Right And Reselect" }) -- Commenting. -set('n', 'gco', 'oVcxnormal gccfxa', { desc = 'Add Comment Below' }) -set('n', 'gcO', 'OVcxnormal gccfxa', { desc = 'Add Comment Above' }) +set("n", "gco", "oVcxnormal gccfxa", { desc = "Add Comment Below" }) +set("n", "gcO", "OVcxnormal gccfxa", { desc = "Add Comment Above" }) -- Quickfix list -set('n', 'xq', function() - local success, err = pcall(vim.fn.getqflist({ winid = 0 }).winid ~= 0 and vim.cmd.cclose or vim.cmd.copen) - if not success and err then - vim.notify(err, vim.log.levels.ERROR) - end -end, { desc = 'Quickfix List' }) +set("n", "xq", function() + local success, err = pcall(vim.fn.getqflist({ winid = 0 }).winid ~= 0 and vim.cmd.cclose or vim.cmd.copen) + if not success and err then + vim.notify(err, vim.log.levels.ERROR) + end +end, { desc = "Quickfix List" }) -set('n', '[q', vim.cmd.cprev, { desc = 'Previous Quickfix' }) -set('n', ']q', vim.cmd.cnext, { desc = 'Next Quickfix' }) +set("n", "[q", vim.cmd.cprev, { desc = "Previous Quickfix" }) +set("n", "]q", vim.cmd.cnext, { desc = "Next Quickfix" }) -- LSP Diagnostic Navigation. local diagnostic_goto = function(next, severity) - return function() - vim.diagnostic.jump({ - count = (next and 1 or -1) * vim.v.count1, - severity = severity and vim.diagnostic.severity[severity] or nil, - float = true, - }) - end + return function() + vim.diagnostic.jump({ + count = (next and 1 or -1) * vim.v.count1, + severity = severity and vim.diagnostic.severity[severity] or nil, + float = true, + }) + end end -set('n', 'cd', vim.diagnostic.open_float, { desc = 'Line Diagnostics' }) -set('n', ']d', diagnostic_goto(true), { desc = 'Next Diagnostic' }) -set('n', '[d', diagnostic_goto(false), { desc = 'Prev Diagnostic' }) -set('n', ']e', diagnostic_goto(true, 'ERROR'), { desc = 'Next Error' }) -set('n', '[e', diagnostic_goto(false, 'ERROR'), { desc = 'Prev Error' }) -set('n', ']w', diagnostic_goto(true, 'WARN'), { desc = 'Next Warning' }) -set('n', '[w', diagnostic_goto(false, 'WARN'), { desc = 'Prev Warning' }) +set("n", "cd", vim.diagnostic.open_float, { desc = "Line Diagnostics" }) +set("n", "]d", diagnostic_goto(true), { desc = "Next Diagnostic" }) +set("n", "[d", diagnostic_goto(false), { desc = "Prev Diagnostic" }) +set("n", "]e", diagnostic_goto(true, "ERROR"), { desc = "Next Error" }) +set("n", "[e", diagnostic_goto(false, "ERROR"), { desc = "Prev Error" }) +set("n", "]w", diagnostic_goto(true, "WARN"), { desc = "Next Warning" }) +set("n", "[w", diagnostic_goto(false, "WARN"), { desc = "Prev Warning" }) -- Highlights under cursor. -set('n', 'ui', vim.show_pos, { desc = 'Inspect Pos' }) -set('n', 'uI', function() - vim.treesitter.inspect_tree() - vim.api.nvim_input('I') -end, { desc = 'Inspect Tree' }) +set("n", "ui", vim.show_pos, { desc = "Inspect Pos" }) +set("n", "uI", function() + vim.treesitter.inspect_tree() + vim.api.nvim_input("I") +end, { desc = "Inspect Tree" }) -- Floating terminal. -set('n', 'fT', function() Snacks.terminal() end, { desc = 'Terminal (cwd)' }) +set("n", "fT", function() + Snacks.terminal() +end, { desc = "Terminal (cwd)" }) -- Window Splitting. -set('n', 'sh', 's', { desc = 'Split Window Below' }) -set('n', 'sv', 'v', { desc = 'Split Window Right' }) -set('n', 'wd', 'c', { desc = 'Delete Window', remap = true }) -set('n', 'se', '=', { desc = 'Make Split Windows Equal Width & Height' }) +set("n", "sh", "s", { desc = "Split Window Below" }) +set("n", "sv", "v", { desc = "Split Window Right" }) +set("n", "wd", "c", { desc = "Delete Window", remap = true }) +set("n", "se", "=", { desc = "Make Split Windows Equal Width & Height" }) -- Center screen when jumping. -set('n', '', 'zz', { desc = 'Half Page down (Centered)' }) -set('n', '', 'zz', { desc = 'Half Page Up (Centered)' }) +set("n", "", "zz", { desc = "Half Page down (Centered)" }) +set("n", "", "zz", { desc = "Half Page Up (Centered)" }) -- Better paste behavior. -set('x', 'p', '"_dP', { desc = 'Paste Without Yanking' }) +set("x", "p", '"_dP', { desc = "Paste Without Yanking" }) -- Delete without yanking. -set({ 'n', 'v' }, 'd', '"_d', { desc = 'Delete Without Yanking' }) +set({ "n", "v" }, "d", '"_d', { desc = "Delete Without Yanking" }) -- Toggle visible whitespace characters.... -set('n', 'l', 'set list!', { desc = 'Toggle Hidden Characters' }) +set("n", "l", "set list!", { desc = "Toggle Hidden Characters" }) -- LSP -set('n', 'cl', function() Snacks.picker.lsp_config() end, { desc = "Lsp Info" }) -set('n', 'gd', vim.lsp.buf.definition, { desc = 'Goto Definition' }) -set('n', 'gr', vim.lsp.buf.references, { desc = 'References', nowait = true }) -set('n', 'gI', vim.lsp.buf.implementation, { desc = 'Goto Implementation' }) -set('n', 'gy', vim.lsp.buf.type_definition, { desc = 'Goto T[y]pe Definition' }) -set('n', 'gD', vim.lsp.buf.declaration, { desc = 'Goto Declaration' }) -set('n', 'H', function() return vim.lsp.buf.hover() end, { desc = 'Hover' }) -set('n', 'gH', function() return vim.lsp.buf.signature_help() end, { desc = 'Signature Help' }) -set({ 'n', 'x' }, 'ca', vim.lsp.buf.code_action, { desc = 'Code Action' }) -set({ 'n', 'x' }, 'cc', vim.lsp.codelens.run, { desc = 'Run Codelens' }) -set('n', 'cR', function() Snacks.rename.rename_file() end, { desc = 'Rename File' }) -set('n', 'cr', vim.lsp.buf.rename, { desc = 'Rename' }) +set("n", "cl", function() + Snacks.picker.lsp_config() +end, { desc = "Lsp Info" }) +set("n", "gd", vim.lsp.buf.definition, { desc = "Goto Definition" }) +set("n", "gr", vim.lsp.buf.references, { desc = "References", nowait = true }) +set("n", "gI", vim.lsp.buf.implementation, { desc = "Goto Implementation" }) +set("n", "gy", vim.lsp.buf.type_definition, { desc = "Goto T[y]pe Definition" }) +set("n", "gD", vim.lsp.buf.declaration, { desc = "Goto Declaration" }) +set("n", "H", function() + return vim.lsp.buf.hover() +end, { desc = "Hover" }) +set("n", "gH", function() + return vim.lsp.buf.signature_help() +end, { desc = "Signature Help" }) +set({ "n", "x" }, "ca", vim.lsp.buf.code_action, { desc = "Code Action" }) +set({ "n", "x" }, "cc", vim.lsp.codelens.run, { desc = "Run Codelens" }) +set("n", "cR", function() + Snacks.rename.rename_file() +end, { desc = "Rename File" }) +set("n", "cr", vim.lsp.buf.rename, { desc = "Rename" }) -- Pickers local getSmartOpts = function(overrides) - local cwd = vim.uv.cwd() or '' - -- Show hidden files in picker when editing the .dotfiles directory. - local is_dotfiles = not not cwd:find(".dotfiles", 1, true) + local cwd = vim.uv.cwd() or "" + -- Show hidden files in picker when editing the .dotfiles directory. + local is_dotfiles = not not cwd:find(".dotfiles", 1, true) - local defaults = { - hidden = is_dotfiles, - exclude = { '.git', '.gitmodules' }, - root = true, - } + local defaults = { + hidden = is_dotfiles, + exclude = { ".git", ".gitmodules" }, + root = true, + } - return vim.tbl_extend("force", defaults, overrides or {}) + return vim.tbl_extend("force", defaults, overrides or {}) end ---- Find -set('n', '', function() Snacks.picker.files(getSmartOpts()) end, { desc = 'Find Files (Root Dir)' }) -set('n', 'ff', function() Snacks.picker.files(getSmartOpts()) end, { desc = 'Find Files (Root Dir)' }) -set('n', 'fF', function() Snacks.picker.files(getSmartOpts({ root = false })) end, { desc = 'Find Files (CWD)' }) -set('n', ',', function() Snacks.picker.buffers() end, { desc = 'Buffers' }) -set('n', 'fb', function() Snacks.picker.buffers() end, { desc = 'Buffers' }) +set("n", "", function() + Snacks.picker.files(getSmartOpts()) +end, { desc = "Find Files (Root Dir)" }) +set("n", "ff", function() + Snacks.picker.files(getSmartOpts()) +end, { desc = "Find Files (Root Dir)" }) +set("n", "fF", function() + Snacks.picker.files(getSmartOpts({ root = false })) +end, { desc = "Find Files (CWD)" }) +set("n", ",", function() + Snacks.picker.buffers() +end, { desc = "Buffers" }) +set("n", "fb", function() + Snacks.picker.buffers() +end, { desc = "Buffers" }) ---- Grep -set('n', '/', function() Snacks.picker.grep(getSmartOpts()) end, { desc = 'Grep (Root Dir)' }) -set('n', 'sg', function() Snacks.picker.grep(getSmartOpts({ live = true })) end, { desc = 'Grep (Root Dir)' }) -set('n', 'sG', function() Snacks.picker.grep(getSmartOpts({ live = true, root = false })) end, - { desc = 'Grep (CWD)' }) -set('n', 'sb', function() Snacks.picker.lines() end, { desc = 'Buffer Lines' }) -set('n', 'sB', function() Snacks.picker.grep_buffers() end, { desc = 'Grep Open Buffers' }) -set('n', ':', function() Snacks.picker.command_history() end, { desc = 'Command History' }) -set({ 'n', 'x' }, 'sw', function() - Snacks.picker.grep_word(getSmartOpts()) -end, { desc = 'Visual selection or word (Root Dir)' }) -set({ 'n', 'x' }, 'sW', function() - local opts = getSmartOpts() - opts.root = false - Snacks.picker.grep_word(opts) -end, { desc = 'Visual selection or word (CWD)' }) +set("n", "/", function() + Snacks.picker.grep(getSmartOpts()) +end, { desc = "Grep (Root Dir)" }) +set("n", "sg", function() + Snacks.picker.grep(getSmartOpts({ live = true })) +end, { desc = "Grep (Root Dir)" }) +set("n", "sG", function() + Snacks.picker.grep(getSmartOpts({ live = true, root = false })) +end, { desc = "Grep (CWD)" }) +set("n", "sb", function() + Snacks.picker.lines() +end, { desc = "Buffer Lines" }) +set("n", "sB", function() + Snacks.picker.grep_buffers() +end, { desc = "Grep Open Buffers" }) +set("n", ":", function() + Snacks.picker.command_history() +end, { desc = "Command History" }) +set({ "n", "x" }, "sw", function() + Snacks.picker.grep_word(getSmartOpts()) +end, { desc = "Visual selection or word (Root Dir)" }) +set({ "n", "x" }, "sW", function() + local opts = getSmartOpts() + opts.root = false + Snacks.picker.grep_word(opts) +end, { desc = "Visual selection or word (CWD)" }) -- Search -set('n', 'sc', function() Snacks.picker.command_history() end, { desc = 'Command History' }) -set('n', 'sC', function() Snacks.picker.commands() end, { desc = 'Commands' }) -set('n', 'sd', function() Snacks.picker.diagnostics() end, { desc = 'Diagnostics' }) -set('n', 'sD', function() Snacks.picker.diagnostics_buffer() end, { desc = 'Buffer Diagnostics' }) -set('n', 'sh', function() Snacks.picker.help() end, { desc = 'Help Pages' }) -set('n', 'sH', function() Snacks.picker.highlights() end, { desc = 'Highlights' }) -set('n', 'si', function() Snacks.picker.icons() end, { desc = 'Icons' }) -set('n', 'sj', function() Snacks.picker.jumps() end, { desc = 'Jumps' }) -set('n', 'sk', function() Snacks.picker.keymaps() end, { desc = 'Keymaps' }) -set('n', 'sm', function() Snacks.picker.marks() end, { desc = 'Marks' }) -set('n', 'sR', function() Snacks.picker.resume() end, { desc = 'Resume' }) -set('n', 'sq', function() Snacks.picker.qflist() end, { desc = 'Quickfix List' }) +set("n", "sc", function() + Snacks.picker.command_history() +end, { desc = "Command History" }) +set("n", "sC", function() + Snacks.picker.commands() +end, { desc = "Commands" }) +set("n", "sd", function() + Snacks.picker.diagnostics() +end, { desc = "Diagnostics" }) +set("n", "sD", function() + Snacks.picker.diagnostics_buffer() +end, { desc = "Buffer Diagnostics" }) +set("n", "sh", function() + Snacks.picker.help() +end, { desc = "Help Pages" }) +set("n", "sH", function() + Snacks.picker.highlights() +end, { desc = "Highlights" }) +set("n", "si", function() + Snacks.picker.icons() +end, { desc = "Icons" }) +set("n", "sj", function() + Snacks.picker.jumps() +end, { desc = "Jumps" }) +set("n", "sk", function() + Snacks.picker.keymaps() +end, { desc = "Keymaps" }) +set("n", "sm", function() + Snacks.picker.marks() +end, { desc = "Marks" }) +set("n", "sR", function() + Snacks.picker.resume() +end, { desc = "Resume" }) +set("n", "sq", function() + Snacks.picker.qflist() +end, { desc = "Quickfix List" }) -- Language Formatting and Linting. -set('n', 'lf', function() require("conform").format({ bufnr = 0 }) end, { desc = 'Format File' }) +set("n", "lf", function() + require("conform").format({ bufnr = 0 }) +end, { desc = "Format File" }) diff --git a/nvim/.config/nvim/lua/config/lsp.lua b/nvim/.config/nvim/lua/config/lsp.lua index 4fa1759..c2f0603 100644 --- a/nvim/.config/nvim/lua/config/lsp.lua +++ b/nvim/.config/nvim/lua/config/lsp.lua @@ -1,14 +1,14 @@ vim.lsp.enable({ - 'intelephense', - 'lua_ls', + "intelephense", + "lua_ls", }) vim.diagnostic.config({ - virtual_text = { - -- Show diagnostics at the end of the line. - prefix = '●', - spacing = 0, - source = true, - }, - virtual_lines = false, + virtual_text = { + -- Show diagnostics at the end of the line. + prefix = "●", + spacing = 0, + source = true, + }, + virtual_lines = false, }) diff --git a/nvim/.config/nvim/lua/config/options.lua b/nvim/.config/nvim/lua/config/options.lua index 9d89c35..57ab342 100644 --- a/nvim/.config/nvim/lua/config/options.lua +++ b/nvim/.config/nvim/lua/config/options.lua @@ -3,74 +3,74 @@ local opt = vim.opt -- Basic settings -opt.number = true -- Line numbers -opt.relativenumber = true -- Relative line numbers -opt.cursorline = true -- Highlight current line -opt.wrap = false -- Don't wrap lines -opt.scrolloff = 8 -- Keep 8 lines above/below cursor -opt.sidescrolloff = 8 -- Keep 8 columns left/right of cursor +opt.number = true -- Line numbers +opt.relativenumber = true -- Relative line numbers +opt.cursorline = true -- Highlight current line +opt.wrap = false -- Don't wrap lines +opt.scrolloff = 8 -- Keep 8 lines above/below cursor +opt.sidescrolloff = 8 -- Keep 8 columns left/right of cursor -- Indentation -opt.tabstop = 2 -- Tab width -opt.shiftwidth = 2 -- Indent width -opt.softtabstop = 2 -- Soft tab stop -opt.expandtab = true -- Use spaces instead of tabs -opt.smartindent = true -- Smart auto-indenting -opt.autoindent = true -- Copy indent from current line +opt.tabstop = 2 -- Tab width +opt.shiftwidth = 2 -- Indent width +opt.softtabstop = 2 -- Soft tab stop +opt.expandtab = true -- Use spaces instead of tabs +opt.smartindent = true -- Smart auto-indenting +opt.autoindent = true -- Copy indent from current line -- Search settings -opt.ignorecase = true -- Case insensitive search -opt.smartcase = true -- Case sensitive if uppercase in search -opt.hlsearch = false -- Don't highlight search results -opt.incsearch = true -- Show matches as you type +opt.ignorecase = true -- Case insensitive search +opt.smartcase = true -- Case sensitive if uppercase in search +opt.hlsearch = false -- Don't highlight search results +opt.incsearch = true -- Show matches as you type -- Visual settings -opt.termguicolors = true -- Enable 24-bit colors -opt.signcolumn = 'yes' -- Always show sign column -opt.showmatch = true -- Highlight matching brackets -opt.matchtime = 2 -- How long to show matching bracket -opt.cmdheight = 1 -- Command line height -opt.completeopt = 'menuone,noinsert,noselect' -- Completion options -opt.showmode = false -- Don't show mode in command line -opt.pumheight = 10 -- Popup menu height -opt.pumblend = 10 -- Popup menu transparency -opt.winblend = 0 -- Floating window transparency -opt.conceallevel = 0 -- Don't hide markup -opt.concealcursor = '' -- Don't hide cursor line markup -opt.lazyredraw = true -- Don't redraw during macros -opt.synmaxcol = 300 -- Syntax highlighting limit -opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' } -opt.winborder = 'rounded' -- Default border for all floating windows +opt.termguicolors = true -- Enable 24-bit colors +opt.signcolumn = "yes" -- Always show sign column +opt.showmatch = true -- Highlight matching brackets +opt.matchtime = 2 -- How long to show matching bracket +opt.cmdheight = 1 -- Command line height +opt.completeopt = "menuone,noinsert,noselect" -- Completion options +opt.showmode = false -- Don't show mode in command line +opt.pumheight = 10 -- Popup menu height +opt.pumblend = 10 -- Popup menu transparency +opt.winblend = 0 -- Floating window transparency +opt.conceallevel = 0 -- Don't hide markup +opt.concealcursor = "" -- Don't hide cursor line markup +opt.lazyredraw = true -- Don't redraw during macros +opt.synmaxcol = 300 -- Syntax highlighting limit +opt.listchars = { tab = "» ", trail = "·", nbsp = "␣" } +opt.winborder = "rounded" -- Default border for all floating windows -- File handling -opt.backup = false -- Don't create backup files -opt.writebackup = false -- Don't create backup before writing -opt.swapfile = false -- Don't create swap files -opt.undofile = true -- Persistent undo -opt.updatetime = 300 -- Faster completion -opt.timeoutlen = 500 -- Key timeout duration -opt.ttimeoutlen = 0 -- Key code timeout -opt.autoread = true -- Auto reload files changed outside vim -opt.autowrite = false -- Don't auto save +opt.backup = false -- Don't create backup files +opt.writebackup = false -- Don't create backup before writing +opt.swapfile = false -- Don't create swap files +opt.undofile = true -- Persistent undo +opt.updatetime = 300 -- Faster completion +opt.timeoutlen = 500 -- Key timeout duration +opt.ttimeoutlen = 0 -- Key code timeout +opt.autoread = true -- Auto reload files changed outside vim +opt.autowrite = false -- Don't auto save -- Behavior settings -opt.hidden = true -- Allow hidden buffers -opt.errorbells = false -- No error bells -opt.backspace = 'indent,eol,start' -- Better backspace behavior -opt.autochdir = false -- Don't auto change directory -opt.iskeyword:append('-') -- Treat dash as part of word -opt.path:append('**') -- include subdirectories in search -opt.selection = 'exclusive' -- Selection behavior -opt.mouse = 'a' -- Enable mouse support -opt.clipboard:append('unnamedplus') -- Use system clipboard -opt.modifiable = true -- Allow buffer modifications -opt.encoding = 'UTF-8' -- Set encoding +opt.hidden = true -- Allow hidden buffers +opt.errorbells = false -- No error bells +opt.backspace = "indent,eol,start" -- Better backspace behavior +opt.autochdir = false -- Don't auto change directory +opt.iskeyword:append("-") -- Treat dash as part of word +opt.path:append("**") -- include subdirectories in search +opt.selection = "exclusive" -- Selection behavior +opt.mouse = "a" -- Enable mouse support +opt.clipboard:append("unnamedplus") -- Use system clipboard +opt.modifiable = true -- Allow buffer modifications +opt.encoding = "UTF-8" -- Set encoding -- Folding settings -opt.foldmethod = 'expr' -- Use expression for folding -opt.foldexpr = 'nvim_treesitter#foldexpr()' -- Use treesitter for folding -opt.foldlevel = 99 -- Start with all folds open +opt.foldmethod = "expr" -- Use expression for folding +opt.foldexpr = "nvim_treesitter#foldexpr()" -- Use treesitter for folding +opt.foldlevel = 99 -- Start with all folds open -- Split behavior -opt.splitbelow = true -- Horizontal splits go below -opt.splitright = true -- Vertical splits go right +opt.splitbelow = true -- Horizontal splits go below +opt.splitright = true -- Vertical splits go right diff --git a/nvim/.config/nvim/lua/plugins/blink-cmp.lua b/nvim/.config/nvim/lua/plugins/blink-cmp.lua index e850457..b583199 100644 --- a/nvim/.config/nvim/lua/plugins/blink-cmp.lua +++ b/nvim/.config/nvim/lua/plugins/blink-cmp.lua @@ -1,34 +1,34 @@ -vim.pack.add({{ - src = 'https://github.com/saghen/blink.cmp', - version = vim.version.range('1.0'), -}}) +vim.pack.add({ { + src = "https://github.com/saghen/blink.cmp", + version = vim.version.range("1.0"), +} }) -require('blink.cmp').setup({ - keymap = { - preset = 'default', - [''] = { 'select_prev', 'fallback_to_mappings' }, - [''] = { 'select_next', 'fallback_to_mappings' }, - [''] = { 'select_and_accept', 'fallback' }, - }, - appearance = { - nerd_font_variant = 'mono', - }, - completion = { - menu = { - auto_show = true, - }, - documentation = { - auto_show = false, - } - }, - sources = { - default = { - 'lsp', - 'path', - 'buffer' - }, - }, - fuzzy = { - implementation = 'prefer_rust_with_warning', - } +require("blink.cmp").setup({ + keymap = { + preset = "default", + [""] = { "select_prev", "fallback_to_mappings" }, + [""] = { "select_next", "fallback_to_mappings" }, + [""] = { "select_and_accept", "fallback" }, + }, + appearance = { + nerd_font_variant = "mono", + }, + completion = { + menu = { + auto_show = true, + }, + documentation = { + auto_show = false, + }, + }, + sources = { + default = { + "lsp", + "path", + "buffer", + }, + }, + fuzzy = { + implementation = "prefer_rust_with_warning", + }, }) diff --git a/nvim/.config/nvim/lua/plugins/init.lua b/nvim/.config/nvim/lua/plugins/init.lua index 1e5ecb0..6b3faab 100644 --- a/nvim/.config/nvim/lua/plugins/init.lua +++ b/nvim/.config/nvim/lua/plugins/init.lua @@ -1,7 +1,7 @@ -require('plugins.snacks-nvim') -require('plugins.nord') -require('plugins.vim-obsession') -require('plugins.nvim-treesitter') -require('plugins.blink-cmp') -require('plugins.mini') -require('plugins.conform') +require("plugins.snacks-nvim") +require("plugins.nord") +require("plugins.vim-obsession") +require("plugins.nvim-treesitter") +require("plugins.blink-cmp") +require("plugins.mini") +require("plugins.conform") diff --git a/nvim/.config/nvim/lua/plugins/mini.lua b/nvim/.config/nvim/lua/plugins/mini.lua index 10af464..6e8b376 100644 --- a/nvim/.config/nvim/lua/plugins/mini.lua +++ b/nvim/.config/nvim/lua/plugins/mini.lua @@ -1,11 +1,11 @@ -vim.pack.add({'https://github.com/nvim-mini/mini.nvim'}) +vim.pack.add({ "https://github.com/nvim-mini/mini.nvim" }) -require('mini.pairs').setup({}) -require('mini.surround').setup({}) -require('mini.indentscope').setup({ - symbol = '│', - draw = { - delay = 0, - animation = require('mini.indentscope').gen_animation.none(), - }, +require("mini.pairs").setup({}) +require("mini.surround").setup({}) +require("mini.indentscope").setup({ + symbol = "│", + draw = { + delay = 0, + animation = require("mini.indentscope").gen_animation.none(), + }, }) diff --git a/nvim/.config/nvim/lua/plugins/nord.lua b/nvim/.config/nvim/lua/plugins/nord.lua index 7097671..a7ed1ed 100644 --- a/nvim/.config/nvim/lua/plugins/nord.lua +++ b/nvim/.config/nvim/lua/plugins/nord.lua @@ -1,29 +1,29 @@ -vim.pack.add({'https://github.com/shaunsingh/nord.nvim'}) +vim.pack.add({ "https://github.com/shaunsingh/nord.nvim" }) -vim.cmd[[colorscheme nord]] +vim.cmd([[colorscheme nord]]) local set_hl = vim.api.nvim_set_hl -- Snakcs Customisation. -set_hl(0, 'SnacksPickerDir', { link = 'Directory' }) -set_hl(0, 'SnacksPickerPathHidden', { link = 'Comment' }) +set_hl(0, "SnacksPickerDir", { link = "Directory" }) +set_hl(0, "SnacksPickerPathHidden", { link = "Comment" }) -- Blink.cmp Customisation. -- The main menu window. -set_hl(0, 'BlinkCmpMenu', { fg = '#D8DEE9', bg = '#2E3440' }) +set_hl(0, "BlinkCmpMenu", { fg = "#D8DEE9", bg = "#2E3440" }) -- The border of the menu. -set_hl(0, 'BlinkCmpMenuBorder', { fg = '#4C566A', bg = '#2E3440' }) +set_hl(0, "BlinkCmpMenuBorder", { fg = "#4C566A", bg = "#2E3440" }) -- The currently selected item. -set_hl(0, 'BlinkCmpMenuSelection', { fg = '#2E3440', bg = '#88C0D0', bold = true }) +set_hl(0, "BlinkCmpMenuSelection", { fg = "#2E3440", bg = "#88C0D0", bold = true }) -- Fuzzy match characters. -set_hl(0, 'BlinkCmpLabelMatch', { fg = '#81A1C1', bold = true }) +set_hl(0, "BlinkCmpLabelMatch", { fg = "#81A1C1", bold = true }) -- Documentation window. -set_hl(0, 'BlinkCmpDoc', { fg = '#D8DEE9', bg = '#3B4252' }) -set_hl(0, 'BlinkCmpDocBorder', { fg = '#4C566A', bg = '#3B4252' }) +set_hl(0, "BlinkCmpDoc", { fg = "#D8DEE9", bg = "#3B4252" }) +set_hl(0, "BlinkCmpDocBorder", { fg = "#4C566A", bg = "#3B4252" }) -- Boost visibility of listchars for Nord. -set_hl(0, 'Whitespace', { fg = '#EBCB8B' }) -set_hl(0, 'NonText', { fg = '#EBCB8B' }) +set_hl(0, "Whitespace", { fg = "#EBCB8B" }) +set_hl(0, "NonText", { fg = "#EBCB8B" }) -- Set the color to Nord 9 (Polar Night Blue) -set_hl(0, 'MiniIndentscopeSymbol', { fg = '#81A1C1' }) +set_hl(0, "MiniIndentscopeSymbol", { fg = "#81A1C1" }) diff --git a/nvim/.config/nvim/lua/plugins/nvim-treesitter.lua b/nvim/.config/nvim/lua/plugins/nvim-treesitter.lua index 6b1d60c..5ea02cb 100644 --- a/nvim/.config/nvim/lua/plugins/nvim-treesitter.lua +++ b/nvim/.config/nvim/lua/plugins/nvim-treesitter.lua @@ -1,15 +1,15 @@ -vim.pack.add({'https://github.com/nvim-treesitter/nvim-treesitter'}) +vim.pack.add({ "https://github.com/nvim-treesitter/nvim-treesitter" }) -require('nvim-treesitter').install({ - 'bash', - 'git_config', - 'git_rebase', - 'gitattributes', - 'gitcommit', - 'gitignore', - 'json', - 'lua', - 'markdown', - 'markdown_inline', - 'php', +require("nvim-treesitter").install({ + "bash", + "git_config", + "git_rebase", + "gitattributes", + "gitcommit", + "gitignore", + "json", + "lua", + "markdown", + "markdown_inline", + "php", }) diff --git a/nvim/.config/nvim/lua/plugins/snacks-nvim.lua b/nvim/.config/nvim/lua/plugins/snacks-nvim.lua index b912ad9..c8f6773 100644 --- a/nvim/.config/nvim/lua/plugins/snacks-nvim.lua +++ b/nvim/.config/nvim/lua/plugins/snacks-nvim.lua @@ -1,8 +1,8 @@ -vim.pack.add({'https://github.com/folke/snacks.nvim'}) +vim.pack.add({ "https://github.com/folke/snacks.nvim" }) -require('snacks').setup({ - bigfile = { enabled = true }, - bufdelete = { enabled = true }, - terminal = { enabled = true }, - picker = { enabled = true }, +require("snacks").setup({ + bigfile = { enabled = true }, + bufdelete = { enabled = true }, + terminal = { enabled = true }, + picker = { enabled = true }, }) diff --git a/nvim/.config/nvim/lua/plugins/vim-obsession.lua b/nvim/.config/nvim/lua/plugins/vim-obsession.lua index 7621449..902f24f 100644 --- a/nvim/.config/nvim/lua/plugins/vim-obsession.lua +++ b/nvim/.config/nvim/lua/plugins/vim-obsession.lua @@ -1 +1 @@ -vim.pack.add({'https://github.com/tpope/vim-obsession'}) +vim.pack.add({ "https://github.com/tpope/vim-obsession" }) -- cgit v1.2.3-13-gbd6f