diff --git a/.wezterm.lua b/.wezterm.lua index 2eb20d0..c00de49 100644 --- a/.wezterm.lua +++ b/.wezterm.lua @@ -21,10 +21,10 @@ return { window_background_opacity = 1, color_scheme = "Catppuccin Mocha", window_padding = { - left = 3, - right = 3, - top = 3, - bottom = 3, + left = 0, + right = 0, + top = 0, + bottom = 0, }, inactive_pane_hsb = { diff --git a/AppData/Local/nvim/lazy-lock.json b/AppData/Local/nvim/lazy-lock.json new file mode 100644 index 0000000..0bc8b78 --- /dev/null +++ b/AppData/Local/nvim/lazy-lock.json @@ -0,0 +1,58 @@ +{ + "FixCursorHold.nvim": { "branch": "master", "commit": "1900f89dc17c603eec29960f57c00bd9ae696495" }, + "LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" }, + "azure-functions.nvim": { "branch": "main", "commit": "6b368d5d5b1c7e205085a7e1b1c7eef3004a550c" }, + "baleia.nvim": { "branch": "main", "commit": "880e97c02edf3148ba2bdc6305ac03eb3c3711e0" }, + "blink.cmp": { "branch": "main", "commit": "b19413d214068f316c78978b08264ed1c41830ec" }, + "catppuccin": { "branch": "main", "commit": "beaf41a30c26fd7d6c386d383155cbd65dd554cd" }, + "conform.nvim": { "branch": "master", "commit": "c2526f1cde528a66e086ab1668e996d162c75f4f" }, + "fidget.nvim": { "branch": "main", "commit": "7fa433a83118a70fe24c1ce88d5f0bd3453c0970" }, + "flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" }, + "friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" }, + "gitsigns.nvim": { "branch": "main", "commit": "abf82a65f185bd54adc0679f74b7d6e1ada690c9" }, + "harpoon": { "branch": "harpoon2", "commit": "87b1a3506211538f460786c23f98ec63ad9af4e5" }, + "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, + "lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" }, + "lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" }, + "lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" }, + "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" }, + "markview.nvim": { "branch": "main", "commit": "9e852c299351fc2110e763edc7fc899358ee112e" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "c953789db7fd28eafe5eb5659846d34b5024b3cc" }, + "mason-nvim-dap.nvim": { "branch": "main", "commit": "9a10e096703966335bd5c46c8c875d5b0690dade" }, + "mason-tool-installer.nvim": { "branch": "main", "commit": "443f1ef8b5e6bf47045cb2217b6f748a223cf7dc" }, + "mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" }, + "mini.nvim": { "branch": "main", "commit": "9b935c218ddba02e5dc75c94f90143bce1f7c646" }, + "neo-tree.nvim": { "branch": "main", "commit": "f3df514fff2bdd4318127c40470984137f87b62e" }, + "neotest": { "branch": "master", "commit": "deadfb1af5ce458742671ad3a013acb9a6b41178" }, + "neotest-python": { "branch": "master", "commit": "b0d3a861bd85689d8ed73f0590c47963a7eb1bf9" }, + "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, + "nvim-autopairs": { "branch": "master", "commit": "59bce2eef357189c3305e25bc6dd2d138c1683f5" }, + "nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" }, + "nvim-dap": { "branch": "master", "commit": "e47878dcf1ccc30136b30d19ab19fe76946d61cd" }, + "nvim-dap-cs": { "branch": "main", "commit": "16e5debe8cb7fb73c8799d20969ee00883586602" }, + "nvim-dap-go": { "branch": "main", "commit": "b4421153ead5d726603b02743ea40cf26a51ed5f" }, + "nvim-dap-powershell": { "branch": "master", "commit": "0d41457342a98da1fdf5707aae6573a57a949025" }, + "nvim-dap-python": { "branch": "master", "commit": "1808458eba2b18f178f990e01376941a42c7f93b" }, + "nvim-dap-ui": { "branch": "master", "commit": "cf91d5e2d07c72903d052f5207511bf7ecdb7122" }, + "nvim-dap-virtual-text": { "branch": "master", "commit": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6" }, + "nvim-dap-vscode-js": { "branch": "main", "commit": "03bd29672d7fab5e515fc8469b7d07cc5994bbf6" }, + "nvim-dbee": { "branch": "master", "commit": "dda517694889a5d238d7aa407403984da9f80cc0" }, + "nvim-lint": { "branch": "master", "commit": "bcd1a44edbea8cd473af7e7582d3f7ffc60d8e81" }, + "nvim-lspconfig": { "branch": "master", "commit": "3f58aeca0c6ece8a9fb8782ea3fcb6024f285be3" }, + "nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" }, + "nvim-notify": { "branch": "master", "commit": "8701bece920b38ea289b457f902e2ad184131a5d" }, + "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, + "nvim-web-devicons": { "branch": "master", "commit": "803353450c374192393f5387b6a0176d0972b848" }, + "pastify.nvim": { "branch": "main", "commit": "4a1d1e03c3ae725ee4af796deca8c7c169ef626e" }, + "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, + "pomo.nvim": { "branch": "main", "commit": "7e06e5221d8d1e596a0ab29dd4d7fcee5f3cd05a" }, + "roslyn.nvim": { "branch": "main", "commit": "24f7c91ee5e09c63104deaab68f932620f25c24a" }, + "schemastore.nvim": { "branch": "main", "commit": "6217ff926e951401ac32f572da04e93e8cd6129d" }, + "snacks.nvim": { "branch": "main", "commit": "fe7cfe9800a182274d0f868a74b7263b8c0c020b" }, + "telescope-fzf-native.nvim": { "branch": "main", "commit": "6fea601bd2b694c6f2ae08a6c6fab14930c60e2c" }, + "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, + "telescope.nvim": { "branch": "master", "commit": "ad7d9580338354ccc136e5b8f0aa4f880434dcdc" }, + "todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" }, + "vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" }, + "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" } +} diff --git a/AppData/Local/nvim/lua/config/options.lua b/AppData/Local/nvim/lua/config/options.lua index d96fc18..a828d61 100644 --- a/AppData/Local/nvim/lua/config/options.lua +++ b/AppData/Local/nvim/lua/config/options.lua @@ -6,7 +6,7 @@ -- Make line numbers default vim.opt.number = true -- You can also add relative line numbers, to help with jumping. -vim.opt.relativenumber = true +vim.opt.relativenumber = false -- Enable mouse mode, can be useful for resizing splits for example! vim.opt.mouse = 'a' @@ -27,6 +27,12 @@ vim.opt.breakindent = true -- Save undo history vim.opt.undofile = true +vim.opt.swapfile = false +vim.opt.writebackup = false +vim.opt.backup = false +vim.opt.autoread = true +vim.opt.autowrite = false +vim.opt.autochdir = false -- Case-insensitive searching UNLESS \C or one or more capital letters in the search term vim.opt.ignorecase = true diff --git a/AppData/Local/nvim/lua/plugins/lazy.lua b/AppData/Local/nvim/lua/plugins/lazy.lua index 49ec362..a63eee1 100644 --- a/AppData/Local/nvim/lua/plugins/lazy.lua +++ b/AppData/Local/nvim/lua/plugins/lazy.lua @@ -42,6 +42,7 @@ require('lazy').setup({ require 'plugins.harpoon', require 'plugins.colorizer', require 'plugins.lualine', + require 'plugins.snacks', -- TODO: Move these next require 'kickstart.plugins.debug', diff --git a/AppData/Local/nvim/lua/plugins/snacks.lua b/AppData/Local/nvim/lua/plugins/snacks.lua new file mode 100644 index 0000000..ba1c408 --- /dev/null +++ b/AppData/Local/nvim/lua/plugins/snacks.lua @@ -0,0 +1,609 @@ +return { + 'folke/snacks.nvim', + priority = 1000, + lazy = false, + ---@type snacks.Config + opts = { + animate = { enabled = false }, + bigfile = { enabled = true }, + dashboard = { + enabled = true, + preset = { + header = [[ +  + ████ ██████ █████ ██ + ███████████ █████  + █████████ ███████████████████ ███ ███████████ + █████████ ███ █████████████ █████ ██████████████ + █████████ ██████████ █████████ █████ █████ ████ █████ + ███████████ ███ ███ █████████ █████ █████ ████ █████ + ██████ █████████████████████ ████ █████ █████ ████ ██████ + ]], + }, + }, + explorer = { enabled = false }, + indent = { enabled = true }, + input = { enabled = false }, + notifier = { + enabled = false, + timeout = 3000, + }, + picker = { enabled = false }, + quickfile = { enabled = true }, + scope = { enabled = false }, + scroll = { enabled = false }, + statuscolumn = { enabled = true }, + words = { enabled = false }, + styles = { + notification = { + -- wo = { wrap = true } -- Wrap notifications + }, + }, + }, + keys = { + -- Top Pickers & Explorer + { + '', + function() + Snacks.picker.smart() + end, + desc = 'Smart Find Files', + }, + { + ',', + function() + Snacks.picker.buffers() + end, + desc = 'Buffers', + }, + { + '/', + function() + Snacks.picker.grep() + end, + desc = 'Grep', + }, + { + ':', + function() + Snacks.picker.command_history() + end, + desc = 'Command History', + }, + { + 'n', + function() + Snacks.picker.notifications() + end, + desc = 'Notification History', + }, + { + 'e', + function() + Snacks.explorer() + end, + desc = 'File Explorer', + }, + -- find + { + 'fb', + function() + Snacks.picker.buffers() + end, + desc = 'Buffers', + }, + { + 'fc', + function() + Snacks.picker.files { cwd = vim.fn.stdpath 'config' } + end, + desc = 'Find Config File', + }, + { + 'ff', + function() + Snacks.picker.files() + end, + desc = 'Find Files', + }, + { + 'fg', + function() + Snacks.picker.git_files() + end, + desc = 'Find Git Files', + }, + { + 'fp', + function() + Snacks.picker.projects() + end, + desc = 'Projects', + }, + { + 'fr', + function() + Snacks.picker.recent() + end, + desc = 'Recent', + }, + -- git + { + 'gb', + function() + Snacks.picker.git_branches() + end, + desc = 'Git Branches', + }, + { + 'gl', + function() + Snacks.picker.git_log() + end, + desc = 'Git Log', + }, + { + 'gL', + function() + Snacks.picker.git_log_line() + end, + desc = 'Git Log Line', + }, + { + 'gs', + function() + Snacks.picker.git_status() + end, + desc = 'Git Status', + }, + { + 'gS', + function() + Snacks.picker.git_stash() + end, + desc = 'Git Stash', + }, + { + 'gd', + function() + Snacks.picker.git_diff() + end, + desc = 'Git Diff (Hunks)', + }, + { + 'gf', + function() + Snacks.picker.git_log_file() + end, + desc = 'Git Log File', + }, + -- gh + { + 'gi', + function() + Snacks.picker.gh_issue() + end, + desc = 'GitHub Issues (open)', + }, + { + 'gI', + function() + Snacks.picker.gh_issue { state = 'all' } + end, + desc = 'GitHub Issues (all)', + }, + { + 'gp', + function() + Snacks.picker.gh_pr() + end, + desc = 'GitHub Pull Requests (open)', + }, + { + 'gP', + function() + Snacks.picker.gh_pr { state = 'all' } + end, + desc = 'GitHub Pull Requests (all)', + }, + -- Grep + { + 'sb', + function() + Snacks.picker.lines() + end, + desc = 'Buffer Lines', + }, + { + 'sB', + function() + Snacks.picker.grep_buffers() + end, + desc = 'Grep Open Buffers', + }, + { + 'sg', + function() + Snacks.picker.grep() + end, + desc = 'Grep', + }, + { + 'sw', + function() + Snacks.picker.grep_word() + end, + desc = 'Visual selection or word', + mode = { 'n', 'x' }, + }, + -- search + { + 's"', + function() + Snacks.picker.registers() + end, + desc = 'Registers', + }, + { + 's/', + function() + Snacks.picker.search_history() + end, + desc = 'Search History', + }, + { + 'sa', + function() + Snacks.picker.autocmds() + end, + desc = 'Autocmds', + }, + { + 'sb', + function() + Snacks.picker.lines() + end, + desc = 'Buffer Lines', + }, + { + 'sc', + function() + Snacks.picker.command_history() + end, + desc = 'Command History', + }, + { + 'sC', + function() + Snacks.picker.commands() + end, + desc = 'Commands', + }, + { + 'sd', + function() + Snacks.picker.diagnostics() + end, + desc = 'Diagnostics', + }, + { + 'sD', + function() + Snacks.picker.diagnostics_buffer() + end, + desc = 'Buffer Diagnostics', + }, + { + 'sh', + function() + Snacks.picker.help() + end, + desc = 'Help Pages', + }, + { + 'sH', + function() + Snacks.picker.highlights() + end, + desc = 'Highlights', + }, + { + 'si', + function() + Snacks.picker.icons() + end, + desc = 'Icons', + }, + { + 'sj', + function() + Snacks.picker.jumps() + end, + desc = 'Jumps', + }, + { + 'sk', + function() + Snacks.picker.keymaps() + end, + desc = 'Keymaps', + }, + { + 'sl', + function() + Snacks.picker.loclist() + end, + desc = 'Location List', + }, + { + 'sm', + function() + Snacks.picker.marks() + end, + desc = 'Marks', + }, + { + 'sM', + function() + Snacks.picker.man() + end, + desc = 'Man Pages', + }, + { + 'sp', + function() + Snacks.picker.lazy() + end, + desc = 'Search for Plugin Spec', + }, + { + 'sq', + function() + Snacks.picker.qflist() + end, + desc = 'Quickfix List', + }, + { + 'sR', + function() + Snacks.picker.resume() + end, + desc = 'Resume', + }, + { + 'su', + function() + Snacks.picker.undo() + end, + desc = 'Undo History', + }, + { + 'uC', + function() + Snacks.picker.colorschemes() + end, + desc = 'Colorschemes', + }, + -- LSP + { + 'gd', + function() + Snacks.picker.lsp_definitions() + end, + desc = 'Goto Definition', + }, + { + 'gD', + function() + Snacks.picker.lsp_declarations() + end, + desc = 'Goto Declaration', + }, + { + 'gr', + function() + Snacks.picker.lsp_references() + end, + nowait = true, + desc = 'References', + }, + { + 'gI', + function() + Snacks.picker.lsp_implementations() + end, + desc = 'Goto Implementation', + }, + { + 'gy', + function() + Snacks.picker.lsp_type_definitions() + end, + desc = 'Goto T[y]pe Definition', + }, + { + 'gai', + function() + Snacks.picker.lsp_incoming_calls() + end, + desc = 'C[a]lls Incoming', + }, + { + 'gao', + function() + Snacks.picker.lsp_outgoing_calls() + end, + desc = 'C[a]lls Outgoing', + }, + { + 'ss', + function() + Snacks.picker.lsp_symbols() + end, + desc = 'LSP Symbols', + }, + { + 'sS', + function() + Snacks.picker.lsp_workspace_symbols() + end, + desc = 'LSP Workspace Symbols', + }, + -- Other + { + 'z', + function() + Snacks.zen() + end, + desc = 'Toggle Zen Mode', + }, + { + 'Z', + function() + Snacks.zen.zoom() + end, + desc = 'Toggle Zoom', + }, + { + '.', + function() + Snacks.scratch() + end, + desc = 'Toggle Scratch Buffer', + }, + { + 'S', + function() + Snacks.scratch.select() + end, + desc = 'Select Scratch Buffer', + }, + { + 'n', + function() + Snacks.notifier.show_history() + end, + desc = 'Notification History', + }, + { + 'bd', + function() + Snacks.bufdelete() + end, + desc = 'Delete Buffer', + }, + { + 'cR', + function() + Snacks.rename.rename_file() + end, + desc = 'Rename File', + }, + { + 'gB', + function() + Snacks.gitbrowse() + end, + desc = 'Git Browse', + mode = { 'n', 'v' }, + }, + { + 'gg', + function() + Snacks.lazygit() + end, + desc = 'Lazygit', + }, + { + 'un', + function() + Snacks.notifier.hide() + end, + desc = 'Dismiss All Notifications', + }, + { + '', + function() + Snacks.terminal() + end, + desc = 'Toggle Terminal', + }, + { + '', + function() + Snacks.terminal() + end, + desc = 'which_key_ignore', + }, + { + ']]', + function() + Snacks.words.jump(vim.v.count1) + end, + desc = 'Next Reference', + mode = { 'n', 't' }, + }, + { + '[[', + function() + Snacks.words.jump(-vim.v.count1) + end, + desc = 'Prev Reference', + mode = { 'n', 't' }, + }, + { + 'N', + desc = 'Neovim News', + function() + Snacks.win { + file = vim.api.nvim_get_runtime_file('doc/news.txt', false)[1], + width = 0.6, + height = 0.6, + wo = { + spell = false, + wrap = false, + signcolumn = 'yes', + statuscolumn = ' ', + conceallevel = 3, + }, + } + end, + }, + }, + init = function() + vim.api.nvim_create_autocmd('User', { + pattern = 'VeryLazy', + callback = function() + -- Setup some globals for debugging (lazy-loaded) + _G.dd = function(...) + Snacks.debug.inspect(...) + end + _G.bt = function() + Snacks.debug.backtrace() + end + + -- Override print to use snacks for `:=` command + if vim.fn.has 'nvim-0.11' == 1 then + vim._print = function(_, ...) + dd(...) + end + else + vim.print = _G.dd + end + + -- Create some toggle mappings + Snacks.toggle.option('spell', { name = 'Spelling' }):map 'us' + Snacks.toggle.option('wrap', { name = 'Wrap' }):map 'uw' + Snacks.toggle.option('relativenumber', { name = 'Relative Number' }):map 'uL' + Snacks.toggle.diagnostics():map 'ud' + Snacks.toggle.line_number():map 'ul' + Snacks.toggle.option('conceallevel', { off = 0, on = vim.o.conceallevel > 0 and vim.o.conceallevel or 2 }):map 'uc' + Snacks.toggle.treesitter():map 'uT' + Snacks.toggle.option('background', { off = 'light', on = 'dark', name = 'Dark Background' }):map 'ub' + Snacks.toggle.inlay_hints():map 'uh' + Snacks.toggle.indent():map 'ug' + Snacks.toggle.dim():map 'uD' + end, + }) + end, +}