diff --git a/dotfyle.json b/dotfyle.json new file mode 100644 index 0000000..8db5dd8 --- /dev/null +++ b/dotfyle.json @@ -0,0 +1 @@ +{"distribution": "custom", "masonTools": ["actionlint", "bash-language-server", "biome", "black", "clang-format", "clangd", "emmet-ls", "eslint_d", "goimports-reviser", "golangci-lint", "graphql-lsp", "hadolint", "isort", "jdtls", "lua-language-server", "prettier", "prisma-language-server", "proselint", "pylint", "pylsp", "pyright", "pyright-langserver", "rubocop", "ruff-lsp", "rust-analyzer", "shellcheck", "shfmt", "solargraph", "stylua", "svelteserver", "tailwindcss-language-server", "typescript-language-server", "typos-lsp", "vim-language-server", "vint", "vscode-css-language-server", "vscode-eslint-language-server", "vscode-html-language-server", "vscode-json-language-server", "write-good"], "keymaps": [{"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": ":bnext"}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": "nohlsearch"}, {"desc": "Buffer Local Keymaps (which-key)", "noremap": true, "lhs": "?", "mode": "n", "rhs": ""}, {"desc": "Dismiss All Notifications", "noremap": true, "lhs": "un", "mode": "n", "rhs": ""}, {"desc": "Float File Explorer", "noremap": true, "lhs": "ee", "mode": "n", "rhs": ":Neotree toggle float"}, {"desc": "Left File Explorer", "noremap": true, "lhs": "", "mode": "n", "rhs": ":Neotree toggle left"}, {"desc": "Toggle TS Context", "noremap": true, "lhs": "tc", "mode": "n", "rhs": ""}, {"desc": "Quit Buffer", "noremap": true, "lhs": "q", "mode": "n", "rhs": ""}, {"desc": "Delete Comment Style", "noremap": true, "lhs": "cd", "mode": "v", "rhs": ""}, {"desc": "Delete Comment Style", "noremap": true, "lhs": "cd", "mode": "n", "rhs": ""}, {"desc": "Catalog", "noremap": true, "lhs": "cc", "mode": "n", "rhs": ""}, {"desc": "Marked", "noremap": true, "lhs": "cm", "mode": "v", "rhs": ""}, {"desc": "Marked", "noremap": true, "lhs": "cm", "mode": "n", "rhs": ""}, {"desc": "Line", "noremap": true, "lhs": "cl", "mode": "n", "rhs": ""}, {"desc": "Tiled line", "noremap": true, "lhs": "ct", "mode": "v", "rhs": ""}, {"desc": "Tiled line", "noremap": true, "lhs": "ct", "mode": "n", "rhs": ""}, {"desc": "Comment Box", "noremap": true, "lhs": "cb", "mode": "v", "rhs": ""}, {"desc": "Comment Box", "noremap": true, "lhs": "cb", "mode": "n", "rhs": ""}, {"desc": "Nav", "noremap": true, "lhs": "nv", "mode": "n", "rhs": ""}, {"desc": "toggle markdown preview", "noremap": true, "lhs": "mp", "mode": "n", "rhs": ""}, {"desc": "Horizontal Terminal", "noremap": true, "lhs": "th", "mode": "n", "rhs": ""}, {"desc": "Vertical Terminal", "noremap": true, "lhs": "tv", "mode": "n", "rhs": ""}, {"desc": "Screenshot (Clipboard)", "noremap": true, "lhs": "cp", "mode": "v", "rhs": ""}, {"desc": "Screenshot (Save)", "noremap": true, "lhs": "cP", "mode": "v", "rhs": ""}, {"desc": "Maximize/minimize a split", "noremap": true, "lhs": "sm", "mode": "n", "rhs": ""}, {"desc": "Toggle zen mode", "noremap": true, "lhs": "zz", "mode": "n", "rhs": ""}, {"desc": "Find File (CWD)", "noremap": true, "lhs": "sf", "mode": "n", "rhs": ""}, {"desc": "Commands", "noremap": true, "lhs": "sC", "mode": "n", "rhs": ""}, {"desc": "File Browser", "noremap": true, "lhs": "sF", "mode": "n", "rhs": ""}, {"desc": "Open Recent File", "noremap": true, "lhs": "so", "mode": "n", "rhs": ""}, {"desc": "Map Pages", "noremap": true, "lhs": "sM", "mode": "n", "rhs": ""}, {"desc": "Find highlight groups", "noremap": true, "lhs": "sH", "mode": "n", "rhs": ""}, {"desc": "Find Help", "noremap": true, "lhs": "sh", "mode": "n", "rhs": ""}, {"desc": "Keymaps", "noremap": true, "lhs": "sk", "mode": "n", "rhs": ""}, {"desc": "Grep String", "noremap": true, "lhs": "sw", "mode": "n", "rhs": ""}, {"desc": "Live Grep", "noremap": true, "lhs": "sg", "mode": "n", "rhs": ""}, {"desc": "Buffers", "noremap": true, "lhs": "", "mode": "n", "rhs": ""}, {"desc": "Toggle Output Panel", "noremap": true, "lhs": "tO", "mode": "n", "rhs": ""}, {"desc": "Show Output", "noremap": true, "lhs": "to", "mode": "n", "rhs": ""}, {"desc": "Toggle Summary", "noremap": true, "lhs": "ts", "mode": "n", "rhs": ""}, {"desc": "Run Nearest", "noremap": true, "lhs": "tr", "mode": "n", "rhs": ""}, {"desc": "Run All Test Files", "noremap": true, "lhs": "tT", "mode": "n", "rhs": ""}, {"desc": "Run File", "noremap": true, "lhs": "tw", "mode": "n", "rhs": ""}, {"desc": "Stop", "noremap": true, "lhs": "tS", "mode": "n", "rhs": ""}, {"desc": "Quickfix List (Trouble)", "noremap": true, "lhs": "xQ", "mode": "n", "rhs": ""}, {"desc": "Location List (Trouble)", "noremap": true, "lhs": "xL", "mode": "n", "rhs": ""}, {"desc": "LSP references/definitions/... (Trouble)", "noremap": true, "lhs": "cS", "mode": "n", "rhs": ""}, {"desc": "Symbols (Trouble)", "noremap": true, "lhs": "cs", "mode": "n", "rhs": ""}, {"desc": "Buffer Diagnostics (Trouble)", "noremap": true, "lhs": "xX", "mode": "n", "rhs": ""}, {"desc": "Diagnostics (Trouble)", "noremap": true, "lhs": "xx", "mode": "n", "rhs": ""}, {"desc": "DB Rename buffer", "noremap": true, "lhs": "dr", "mode": "n", "rhs": ""}, {"desc": "DB Find buffer", "noremap": true, "lhs": "db", "mode": "n", "rhs": ""}, {"desc": "Toggle DB UI", "noremap": true, "lhs": "du", "mode": "n", "rhs": ""}, {"desc": "DB Last query", "noremap": true, "lhs": "dl", "mode": "n", "rhs": ""}, {"desc": "Toggle Undotree", "noremap": true, "lhs": "uu", "mode": "n", "rhs": ""}, {"desc": "Replace in Files (Spectre)", "noremap": true, "lhs": "sr", "mode": "n", "rhs": ""}, {"desc": "toggle barbecue", "noremap": true, "lhs": "bq", "mode": "n", "rhs": ""}, {"desc": "Restore Session", "noremap": true, "lhs": "ss", "mode": "n", "rhs": ""}, {"desc": "Don't Save Current Session", "noremap": true, "lhs": "sd", "mode": "n", "rhs": ""}, {"desc": "Restore Last Session", "noremap": true, "lhs": "sl", "mode": "n", "rhs": ""}, {"desc": "Toggle keys", "noremap": true, "lhs": "kt", "mode": "n", "rhs": "Screenkey"}, {"desc": "", "noremap": true, "lhs": "se", "mode": "n", "rhs": "IconPickerInsert emoji"}, {"desc": " Insert Macro Breakpoint.", "noremap": true, "lhs": "##", "mode": "n", "rhs": ""}, {"desc": "Search Selected Text (Backwards)", "noremap": true, "lhs": "#", "mode": "x", "rhs": "y?\\V=escape(@\", '?\\')"}, {"desc": ":help &-default", "noremap": true, "lhs": "&", "mode": "n", "rhs": ":&&"}, {"desc": "Search Selected Text", "noremap": true, "lhs": "*", "mode": "x", "rhs": "y/\\V=escape(@\", '/\\')"}, {"desc": "", "noremap": true, "lhs": "+", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": ",", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": ",", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "-", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": ";", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": ";", "mode": "n", "rhs": ""}, {"desc": "(V) Indent to left", "noremap": true, "lhs": "<", "mode": "v", "rhs": "gv"}, {"desc": "(V) Indent to right", "noremap": true, "lhs": ">", "mode": "v", "rhs": ">gv"}, {"desc": ":help v_@-default", "noremap": true, "lhs": "@", "mode": "x", "rhs": "mode() ==# 'V' ? ':normal! @'.getcharstr().'' : '@'"}, {"desc": "Change without yanking", "noremap": true, "lhs": "C", "mode": "x", "rhs": "\"_C"}, {"desc": "Change without yanking", "noremap": true, "lhs": "C", "mode": "n", "rhs": "\"_C"}, {"desc": "", "noremap": true, "lhs": "F", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "F", "mode": "n", "rhs": ""}, {"desc": "Join line without moving the cursor", "noremap": true, "lhs": "J", "mode": "n", "rhs": "mzJ`z"}, {"desc": "", "noremap": true, "lhs": "J", "mode": "v", "rhs": ":m '>+1gv=gv"}, {"desc": "", "noremap": true, "lhs": "K", "mode": "v", "rhs": ":m '>-2gv=gv"}, {"desc": "", "noremap": true, "lhs": "N", "mode": "n", "rhs": "Nzzzv"}, {"desc": " Play Macro", "noremap": true, "lhs": "Q", "mode": "n", "rhs": ""}, {"desc": ":help v_Q-default", "noremap": true, "lhs": "Q", "mode": "x", "rhs": "mode() ==# 'V' ? ':normal! @=reg_recorded()' : 'Q'"}, {"desc": "Treesitter Search", "noremap": true, "lhs": "R", "mode": "x", "rhs": ""}, {"desc": "Flash Treesitter", "noremap": true, "lhs": "S", "mode": "x", "rhs": ""}, {"desc": "Flash Treesitter", "noremap": true, "lhs": "S", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "T", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "T", "mode": "n", "rhs": ""}, {"desc": ":help Y-default", "noremap": true, "lhs": "Y", "mode": "n", "rhs": "y$"}, {"desc": "Go to TS context", "noremap": true, "lhs": "[c", "mode": "n", "rhs": ""}, {"desc": "Previous Trouble/Quickfix Item", "noremap": true, "lhs": "[q", "mode": "n", "rhs": ""}, {"desc": "Jump to the previous diagnostic", "noremap": true, "lhs": "[d", "mode": "n", "rhs": ""}, {"desc": "Previous location list item", "noremap": true, "lhs": "\\lp", "mode": "n", "rhs": "lprev"}, {"desc": "Next location list item", "noremap": true, "lhs": "\\ln", "mode": "n", "rhs": "lnext"}, {"desc": "Close location list", "noremap": true, "lhs": "\\lc", "mode": "n", "rhs": "lclose"}, {"desc": "Open location list", "noremap": true, "lhs": "\\lo", "mode": "n", "rhs": "lopen"}, {"desc": "Paste from system clipboard", "noremap": true, "lhs": "\\p", "mode": "n", "rhs": "\"+p"}, {"desc": "Copy to system clipboard", "noremap": true, "lhs": "\\y", "mode": "v", "rhs": "\"+y"}, {"desc": "Copy to system clipboard", "noremap": true, "lhs": "\\y", "mode": "n", "rhs": "\"+y"}, {"desc": "Select pasted text", "noremap": true, "lhs": "\\vp", "mode": "n", "rhs": "`[v`]"}, {"desc": "", "noremap": true, "lhs": "\\r", "mode": "v", "rhs": "\"hy:%s/h//g"}, {"desc": "Force save and quit", "noremap": true, "lhs": "\\Q", "mode": "n", "rhs": "wq!"}, {"desc": "Save file", "noremap": true, "lhs": "\\w", "mode": "n", "rhs": ":w"}, {"desc": "Paste from system clipboard", "noremap": true, "lhs": "\\p", "mode": "v", "rhs": "\"+p"}, {"desc": "Next Trouble/Quickfix Item", "noremap": true, "lhs": "]q", "mode": "n", "rhs": ""}, {"desc": "Jump to the next diagnostic", "noremap": true, "lhs": "]d", "mode": "n", "rhs": ""}, {"desc": " Edit Macro", "noremap": true, "lhs": "cq", "mode": "n", "rhs": ""}, {"desc": "Change without yanking", "noremap": true, "lhs": "cc", "mode": "x", "rhs": "\"_cc"}, {"desc": "Change without yanking", "noremap": true, "lhs": "cc", "mode": "n", "rhs": "\"_cc"}, {"desc": "Change without yanking", "noremap": true, "lhs": "c", "mode": "x", "rhs": "\"_c"}, {"desc": "Change without yanking", "noremap": true, "lhs": "c", "mode": "n", "rhs": "\"_c"}, {"desc": "Change previous match by pressing dot (.)", "noremap": true, "lhs": "cN", "mode": "n", "rhs": "*``cgN"}, {"desc": "Change next match by pressing dot (.)", "noremap": true, "lhs": "cn", "mode": "n", "rhs": "*``cgn"}, {"desc": " Delete All Macros", "noremap": true, "lhs": "dq", "mode": "n", "rhs": ""}, {"desc": "Don't Yank Empty Line to Clipboard", "noremap": true, "lhs": "dd", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "f", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "f", "mode": "n", "rhs": ""}, {"desc": "Search Inside Visual Selection", "noremap": true, "lhs": "g/", "mode": "x", "rhs": "/\\%V"}, {"desc": "Toggle comment line", "noremap": true, "lhs": "gcc", "mode": "n", "rhs": ""}, {"desc": "Toggle comment", "noremap": true, "lhs": "gc", "mode": "x", "rhs": ""}, {"desc": "Toggle comment", "noremap": true, "lhs": "gc", "mode": "n", "rhs": ""}, {"desc": "Opens filepath or URI under cursor with the system handler (file explorer, web browser, …)", "noremap": true, "lhs": "gx", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "gx", "mode": "n", "rhs": ":URLOpenUnderCursor"}, {"desc": "", "noremap": true, "lhs": "hs", "mode": "n", "rhs": ":sp"}, {"desc": "", "noremap": true, "lhs": "j", "mode": "v", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "k", "mode": "v", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "n", "mode": "n", "rhs": "nzzzv"}, {"desc": " Start/Stop Recording", "noremap": true, "lhs": "q", "mode": "n", "rhs": ""}, {"desc": "Flash", "noremap": true, "lhs": "s", "mode": "x", "rhs": ""}, {"desc": "Flash", "noremap": true, "lhs": "s", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "t", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "t", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "vs", "mode": "n", "rhs": ":vsp"}, {"desc": "delete without yanking", "noremap": true, "lhs": "x", "mode": "x", "rhs": "\"_x"}, {"desc": "delete without yanking", "noremap": true, "lhs": "x", "mode": "n", "rhs": "\"_x"}, {"desc": " Yank Macro", "noremap": true, "lhs": "yq", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "zb", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "zb", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "zz", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "zz", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "zt", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "zt", "mode": "n", "rhs": ""}, {"desc": " Switch Macro Slot", "noremap": true, "lhs": "", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": ""}, {"desc": "Resize split right", "noremap": true, "lhs": "", "mode": "n", "rhs": "vertical resize +2"}, {"desc": "Resize split left", "noremap": true, "lhs": "", "mode": "n", "rhs": "vertical resize -2"}, {"desc": "Resize split down", "noremap": true, "lhs": "", "mode": "n", "rhs": "resize +2"}, {"desc": "Resize split up", "noremap": true, "lhs": "", "mode": "n", "rhs": "resize -2"}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": ":bprev"}, {"desc": "", "noremap": true, "lhs": "", "mode": "v", "rhs": ":sort"}, {"desc": "Change Without Yanking", "noremap": true, "lhs": "", "mode": "x", "rhs": "\"_c"}, {"desc": "Change Without Yanking", "noremap": true, "lhs": "", "mode": "n", "rhs": "\"_c"}, {"desc": "Delete Without Yanking", "noremap": true, "lhs": "", "mode": "x", "rhs": "\"_d"}, {"desc": "Delete Without Yanking", "noremap": true, "lhs": "", "mode": "n", "rhs": "\"_d"}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": "ggVG"}, {"desc": "Show diagnostics under the cursor", "noremap": false, "lhs": "", "mode": "n", "rhs": "d"}, {"desc": "Show diagnostics under the cursor", "noremap": true, "lhs": "d", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": ""}], "plugins": ["2kabhishek/termim.nvim", "Exafunction/codeium.vim", "HiPhish/rainbow-delimiters.nvim", "L3MON4D3/LuaSnip", "LudoPinelli/comment-box.nvim", "LunarVim/bigfile.nvim", "MunifTanjim/nui.nvim", "NStefan002/screenkey.nvim", "SmiteshP/nvim-navbuddy", "SmiteshP/nvim-navic", "WhoIsSethDaniel/mason-tool-installer.nvim", "akinsho/toggleterm.nvim", "altermo/ultimate-autopair.nvim", "antosha417/nvim-lsp-file-operations", "bluz71/vim-moonfly-colors", "chrisgrieser/nvim-recorder", "creativenull/dotfyle-metadata.nvim", "echasnovski/mini.nvim", "famiu/bufdelete.nvim", "folke/flash.nvim", "folke/lazy.nvim", "folke/lazydev.nvim", "folke/noice.nvim", "folke/persistence.nvim", "folke/trouble.nvim", "folke/which-key.nvim", "folke/zen-mode.nvim", "goolord/alpha-nvim", "haydenmeade/neotest-jest", "hrsh7th/cmp-buffer", "hrsh7th/cmp-cmdline", "hrsh7th/cmp-nvim-lsp", "hrsh7th/cmp-nvim-lua", "hrsh7th/cmp-path", "hrsh7th/nvim-cmp", "iamcco/markdown-preview.nvim", "jay-babu/mason-null-ls.nvim", "karb94/neoscroll.nvim", "kristijanhusak/vim-dadbod-completion", "kristijanhusak/vim-dadbod-ui", "leoluz/nvim-dap-go", "luukvbaal/statuscol.nvim", "m-demare/hlargs.nvim", "marilari88/neotest-vitest", "max397574/better-escape.nvim", "mbbill/undotree", "mfussenegger/nvim-dap", "mistricky/codesnap.nvim", "mstuttgart/odoo-snippets", "mvllow/modes.nvim", "nacro90/numb.nvim", "neovim/nvim-lspconfig", "nmac427/guess-indent.nvim", "numToStr/Navigator.nvim", "nvim-lua/plenary.nvim", "nvim-lualine/lualine.nvim", "nvim-neo-tree/neo-tree.nvim", "nvim-neotest/neotest", "nvim-neotest/nvim-nio", "nvim-pack/nvim-spectre", "nvim-telescope/telescope-file-browser.nvim", "nvim-telescope/telescope-fzf-native.nvim", "nvim-telescope/telescope-ui-select.nvim", "nvim-telescope/telescope.nvim", "nvim-tree/nvim-web-devicons", "nvim-treesitter/nvim-treesitter", "nvim-treesitter/nvim-treesitter-context", "nvim-treesitter/nvim-treesitter-textobjects", "nvimdev/lspsaga.nvim", "nvimtools/none-ls.nvim", "onsails/lspkind.nvim", "rafamadriz/friendly-snippets", "rcarriga/nvim-dap-ui", "rcarriga/nvim-notify", "saadparwaiz1/cmp_luasnip", "smjonas/inc-rename.nvim", "sontungexpt/url-open", "soulis-1256/eagle.nvim", "stevearc/dressing.nvim", "szw/vim-maximizer", "tpope/vim-dadbod", "utilyre/barbecue.nvim", "wakatime/vim-wakatime", "williamboman/mason-lspconfig.nvim", "williamboman/mason.nvim", "willothy/flatten.nvim", "willothy/nvim-cokeline", "windwp/nvim-autopairs", "windwp/nvim-ts-autotag", "zapling/mason-lock.nvim", "ziontee113/icon-picker.nvim"], "pluginManager": "lazy.nvim", "treesitterParsers": ["bash", "c", "cpp", "css", "html", "java", "javascript", "json", "lua", "markdown", "markdown_inline", "python", "scss", "toml", "tsx", "typescript", "vim", "vimdoc"], "lspServers": ["bashls", "clangd", "cssls", "html", "lua_ls", "pyright", "svelte", "tailwindcss", "tsserver"], "leaderKey": ""} \ No newline at end of file diff --git a/lazy-lock.json b/lazy-lock.json index f7432cf..0907d71 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -3,6 +3,8 @@ "Navigator.nvim": { "branch": "master", "commit": "91d86506ac2a039504d5205d32a1d4bc7aa57072" }, "alpha-nvim": { "branch": "main", "commit": "355fbb81a59637a8963cf5847074f8c44dbef11f" }, "barbecue": { "branch": "main", "commit": "cd7e7da622d68136e13721865b4d919efd6325ed" }, + "better-escape.nvim": { "branch": "master", "commit": "d337e02b140d909345441392de47a42d283747c1" }, + "bigfile.nvim": { "branch": "main", "commit": "33eb067e3d7029ac77e081cfe7c45361887a311a" }, "bufdelete.nvim": { "branch": "master", "commit": "f6bcea78afb3060b198125256f897040538bcb81" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, "cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" }, @@ -11,6 +13,9 @@ "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, "codeium.vim": { "branch": "main", "commit": "0b74f274b82c00eaad4b5b5cd8b2e76f872d19f1" }, + "codesnap.nvim": { "branch": "main", "commit": "c2924bf6c9a2c2c03318fae9b7fe0706412b9d9c" }, + "comment-box.nvim": { "branch": "main", "commit": "06bb771690bc9df0763d14769b779062d8f12bc5" }, + "dotfyle-metadata.nvim": { "branch": "main", "commit": "342ef8f3f98f3ccc451c9cf2be74e95149ced05d" }, "dressing.nvim": { "branch": "master", "commit": "6741f1062d3dc6e4755367a7e9b347b553623f04" }, "eagle.nvim": { "branch": "main", "commit": "f590404f510be11ef2cf7c68e135441bfa48c9a8" }, "flash.nvim": { "branch": "main", "commit": "34c7be146a91fec3555c33fe89c7d643f6ef5cf1" }, @@ -25,20 +30,20 @@ "lspkind.nvim": { "branch": "master", "commit": "cff4ae321a91ee3473a92ea1a8c637e3a9510aec" }, "lspsaga.nvim": { "branch": "main", "commit": "4ce44df854f447cf0a8972e5387b3aeb5efc798b" }, "lualine.nvim": { "branch": "master", "commit": "b431d228b7bbcdaea818bdc3e25b8cdbe861f056" }, - "luvit-meta": { "branch": "main", "commit": "ce76f6f6cdc9201523a5875a4471dcfe0186eb60" }, "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "3ed90180e70a6a50cd37ce7ecc3693bcdaa7b290" }, + "mason-lock.nvim": { "branch": "main", "commit": "86614f76c3442fba1c5c8d79aa1efcb3ad69de1c" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "1c55991321d1a861537e32446affc5de5d9a6eaf" }, "mason-null-ls.nvim": { "branch": "main", "commit": "de19726de7260c68d94691afb057fa73d3cc53e7" }, "mason-tool-installer.nvim": { "branch": "main", "commit": "c5e07b8ff54187716334d585db34282e46fa2932" }, "mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" }, - "mini.nvim": { "branch": "main", "commit": "49e2699dc0d585b445eda24ed4bb45952ac20508" }, + "mini.nvim": { "branch": "main", "commit": "7e30f58071dd963f2a6e81415aa121eb090da2c0" }, "modes.nvim": { "branch": "main", "commit": "3188692abf02a8838ec75e59d68c2ce3e4323f5c" }, "moonfly": { "branch": "master", "commit": "4f7d18cb471ede7407dd966c7563868cae7f4f99" }, - "neo-tree.nvim": { "branch": "v3.x", "commit": "29f7c215332ba95e470811c380ddbce2cebe2af4" }, + "neo-tree.nvim": { "branch": "main", "commit": "206241e451c12f78969ff5ae53af45616ffc9b72" }, "neoscroll.nvim": { "branch": "master", "commit": "532dcc8cea4287c4cad6bb77532989a8217cfc7b" }, "neotest": { "branch": "master", "commit": "32ff2ac21135a372a42b38ae131e531e64833bd3" }, "neotest-jest": { "branch": "main", "commit": "514fd4eae7da15fd409133086bb8e029b65ac43f" }, - "neotest-vitest": { "branch": "main", "commit": "353364aa05b94b09409cbef21b79c97c5564e2ce" }, + "neotest-vitest": { "branch": "main", "commit": "e939b7c0ca705ad1f4be18894e30e7b4340a0148" }, "noice.nvim": { "branch": "main", "commit": "448bb9c524a7601035449210838e374a30153172" }, "none-ls.nvim": { "branch": "main", "commit": "cfa65d86e21eeb60544d5e823f6db43941322a53" }, "nui.nvim": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" }, @@ -50,13 +55,14 @@ "nvim-dap-go": { "branch": "main", "commit": "5511788255c92bdd845f8d9690f88e2e0f0ff9f2" }, "nvim-dap-ui": { "branch": "master", "commit": "a5606bc5958db86f8d92803bea7400ee26a8d7e4" }, "nvim-lsp-file-operations": { "branch": "master", "commit": "92a673de7ecaa157dd230d0128def10beb56d103" }, - "nvim-lspconfig": { "branch": "master", "commit": "037ea0901ce9a28cfcaa36302618f06d2e164fbf" }, + "nvim-lspconfig": { "branch": "master", "commit": "a89de2e049b5f89a0ee55029d5a31213bd4de6f8" }, "nvim-navbuddy": { "branch": "master", "commit": "f22bac988f2dd073601d75ba39ea5636ab6e38cb" }, "nvim-navic": { "branch": "master", "commit": "8649f694d3e76ee10c19255dece6411c29206a54" }, "nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" }, "nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" }, + "nvim-recorder": { "branch": "main", "commit": "2b307756704a0ba26e8a3adfe98d02eeaecaa52e" }, "nvim-spectre": { "branch": "master", "commit": "ba7fb777edff6c1fbbeffd343e113af64c04e90a" }, - "nvim-treesitter": { "branch": "master", "commit": "bfb50de9cb0673a3bff620d881f690fb7e0d1328" }, + "nvim-treesitter": { "branch": "master", "commit": "59cc5f35656f97bc964229e3ec5066a7b5a8ee5b" }, "nvim-treesitter-context": { "branch": "master", "commit": "0f3332788e0bd37716fbd25f39120dcfd557c90f" }, "nvim-treesitter-textobjects": { "branch": "master", "commit": "ced6375723b20616282f9f6a1018a63ae19b106a" }, "nvim-ts-autotag": { "branch": "main", "commit": "0cb76eea80e9c73b88880f0ca78fbd04c5bdcac7" }, @@ -65,18 +71,19 @@ "persistence.nvim": { "branch": "main", "commit": "f6aad7dde7fcf54148ccfc5f622c6d5badd0cc3d" }, "plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" }, "rainbow-delimiters.nvim": { "branch": "master", "commit": "c097f728a409d9923a3c70c1507e8389978a9b85" }, - "resession.nvim": { "branch": "master", "commit": "e087ebeef81df25a12fcc4ec067ca73e2bb54c4a" }, "screenkey.nvim": { "branch": "main", "commit": "a96a13fede30bba0b37f6a87cb0a2cdd1679e422" }, "statuscol.nvim": { "branch": "main", "commit": "93d8bcda516fc86e11c03f9ef577bae9a72fba0e" }, "telescope-file-browser.nvim": { "branch": "master", "commit": "a46780830b576049c675680650f773bedfa8677a" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "cf48d4dfce44e0b9a2e19a008d6ec6ea6f01a83b" }, + "telescope-media.nvim": { "branch": "main", "commit": "aa67b00b3a0811c10c9c545127020d0fed04fc7e" }, "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, "telescope.nvim": { "branch": "master", "commit": "5972437de807c3bc101565175da66a1aa4f8707a" }, "termim.nvim": { "branch": "main", "commit": "58344167abb97bcef9bf720a762ea653a94e9daa" }, "toggleterm.nvim": { "branch": "main", "commit": "137d06fb103952a0fb567882bb8527e2f92d327d" }, - "transparent.nvim": { "branch": "main", "commit": "2c78d94448b534c35ca1d88a3bae90b1cd1a3d4d" }, "trouble.nvim": { "branch": "main", "commit": "6efc446226679fda0547c0fd6a7892fd5f5b15d8" }, + "ultimate-autopair.nvim": { "branch": "v0.6", "commit": "1420fb9e07b1d80cc6d87e7d90827fb2c1109cb3" }, "undotree": { "branch": "master", "commit": "56c684a805fe948936cda0d1b19505b84ad7e065" }, + "url-open": { "branch": "main", "commit": "9f8f4a56ac709f26aa17d8ef921b272bf2262a30" }, "vim-dadbod": { "branch": "master", "commit": "7888cb7164d69783d3dce4e0283decd26b82538b" }, "vim-dadbod-completion": { "branch": "master", "commit": "880f7e9f2959e567c718d52550f9fae1aa07aa81" }, "vim-dadbod-ui": { "branch": "master", "commit": "0f51d8de368c8c6220973e8acd156d17da746f4c" }, diff --git a/lua/config/diagnostics.lua b/lua/config/1diagnostics.lua similarity index 100% rename from lua/config/diagnostics.lua rename to lua/config/1diagnostics.lua diff --git a/lua/config/icons.lua b/lua/config/icons.lua deleted file mode 100644 index 406c11c..0000000 --- a/lua/config/icons.lua +++ /dev/null @@ -1,158 +0,0 @@ -return { - kind = { - Array = '', - Boolean = '', - Class = '', - Color = '', - Constant = '', - Constructor = '', - Enum = '', - EnumMember = '', - Event = '', - Field = '', - File = '', - Folder = '󰉋', - Function = '', - Interface = '', - Key = '', - Keyword = '', - Method = '', - -- Module = " ", - Module = '', - Namespace = '', - Null = '󰟢', - Number = '', - Object = '', - Operator = '', - Package = '', - Property = '', - Reference = '', - Snippet = '', - String = '', - Struct = '', - Text = '', - TypeParameter = '', - Unit = '', - Value = '', - Variable = '', - }, - git = { - LineAdded = '', - LineModified = '', - LineRemoved = '', - FileDeleted = '', - FileIgnored = '◌', - FileRenamed = '', - FileStaged = 'S', - FileUnmerged = '', - FileUnstaged = '', - FileUntracked = 'U', - Diff = '', - Repo = '', - Octoface = '', - Copilot = '', - Branch = '', - }, - ui = { - ArrowCircleDown = '', - ArrowCircleLeft = '', - ArrowCircleRight = '', - ArrowCircleUp = '', - BoldArrowDown = '', - BoldArrowLeft = '', - BoldArrowRight = '', - BoldArrowUp = '', - BoldClose = '', - BoldDividerLeft = '', - BoldDividerRight = '', - BoldLineLeft = '▎', - BoldLineMiddle = '┃', - BoldLineDashedMiddle = '┋', - BookMark = '', - BoxChecked = '', - Bug = '', - Stacks = '', - Scopes = '', - Watches = '󰂥', - DebugConsole = '', - Calendar = '', - Check = '', - ChevronRight = '', - ChevronShortDown = '', - ChevronShortLeft = '', - ChevronShortRight = '', - ChevronShortUp = '', - Circle = '', - Close = '󰅖', - CloudDownload = '', - Code = '', - Comment = '', - Dashboard = '', - DividerLeft = '', - DividerRight = '', - DoubleChevronRight = '»', - Ellipsis = '', - EmptyFolder = '', - EmptyFolderOpen = '', - File = '', - FileSymlink = '', - Files = '', - FindFile = '󰈞', - FindText = '󰊄', - Fire = '', - Folder = '󰉋', - FolderOpen = '', - FolderSymlink = '', - Forward = '', - Gear = '', - History = '', - Lightbulb = '', - LineLeft = '▏', - LineMiddle = '│', - List = '', - Lock = '', - NewFile = '', - Note = '', - Package = '', - Pencil = '󰏫', - Plus = '', - Project = '', - Search = '', - SignIn = '', - SignOut = '', - Tab = '󰌒', - Table = '', - Target = '󰀘', - Telescope = '', - Text = '', - Tree = '', - Triangle = '󰐊', - TriangleShortArrowDown = '', - TriangleShortArrowLeft = '', - TriangleShortArrowRight = '', - TriangleShortArrowUp = '', - }, - diagnostics = { - BoldError = '', - Error = '', - BoldWarning = '', - Warn = '', - BoldInformation = '', - Info = '', - BoldQuestion = '', - Question = '', - BoldHint = '', - Hint = '󰌶', - Debug = '', - Trace = '✎', - }, - misc = { - Robot = '󰚩', - Squirrel = '', - Tag = '', - Watch = '', - Smiley = '', - Package = '', - CircuitBoard = '', - }, -} diff --git a/lua/config/keymaps.lua b/lua/config/keymaps.lua index ea13ed3..17d4077 100644 --- a/lua/config/keymaps.lua +++ b/lua/config/keymaps.lua @@ -8,9 +8,31 @@ vim.keymap.set('n', '', 'ggG') -- Replace currently selected text with default register without yanking it vim.keymap.set('x', 'p', '"_dP') --- Delete without yanking -vim.keymap.set('n', 'd', '"_d', { desc = 'Delete highlighted text' }) -vim.keymap.set('v', 'd', '"_d', { desc = 'Delete highlighted text' }) +-- Delete and change without yanking +vim.keymap.set({ 'n', 'x' }, '', '"_d', { desc = 'Delete Without Yanking' }) +vim.keymap.set({ 'n', 'x' }, '', '"_c', { desc = 'Change Without Yanking' }) + +-- Deleting without yanking empty line +vim.keymap.set('n', 'dd', function() + local is_empty_line = vim.api.nvim_get_current_line():match('^%s*$') + if is_empty_line then + return '"_dd' + else + return 'dd' + end +end, { noremap = true, expr = true, desc = "Don't Yank Empty Line to Clipboard" }) + +-- Search inside visually highlighted text +vim.keymap.set('x', 'g/', '/\\%V', { silent = false, desc = 'Search Inside Visual Selection' }) + +-- Search visually selected text (slightly better than builtins in Neovim>=0.8) +vim.keymap.set('x', '*', [[y/\V=escape(@", '/\')]], { desc = 'Search Selected Text', silent = true }) +vim.keymap.set( + 'x', + '#', + [[y?\V=escape(@", '?\')]], + { desc = 'Search Selected Text (Backwards)', silent = true } +) -- save file vim.keymap.set('n', 'w', ':w', { desc = 'Save file' }) @@ -21,12 +43,6 @@ vim.keymap.set('n', 'Q', 'wq!', { desc = 'Force save and quit' -- Clear highlights on search when pressing in normal mode vim.keymap.set('n', '', 'nohlsearch') --- Resize window using arrow keys -vim.keymap.set('n', '', 'resize +2', { desc = 'Increase Window Height' }) -vim.keymap.set('n', '', 'resize -2', { desc = 'Decrease Window Height' }) -vim.keymap.set('n', '', 'vertical resize -2', { desc = 'Decrease Window Width' }) -vim.keymap.set('n', '', 'vertical resize +2', { desc = 'Increase Window Width' }) - -- Visual vim.keymap.sets vim.keymap.set('v', 'r', '"hy:%s/h//g') -- Replace all instances of highlighted words vim.keymap.set('v', '', ':sort') -- Sort highlighted text in visual mode with Control+S diff --git a/lua/config/lazy.lua b/lua/config/lazy.lua index affdb8d..64fc39a 100644 --- a/lua/config/lazy.lua +++ b/lua/config/lazy.lua @@ -19,10 +19,11 @@ vim.opt.rtp:prepend(lazypath) require('lazy').setup({ spec = { { import = 'plugins' }, + { import = 'list' }, }, install = { missing = true, - colorscheme = { 'onedark' }, + colorscheme = { 'moonfly' }, }, checker = { enabled = true, @@ -34,10 +35,28 @@ require('lazy').setup({ }, ui = { icons = { - ft = '', - lazy = '󰂠 ', - loaded = '', - not_loaded = '', + cmd = ' ', + config = ' ', + event = '', + ft = ' ', + init = ' ', + import = ' ', + keys = ' ', + lazy = '󰒲 ', + loaded = '●', + not_loaded = '○', + plugin = ' ', + runtime = ' ', + require = '󰢱 ', + source = ' ', + start = '', + task = '✔ ', + list = { + '●', + '➜', + '★', + '‒', + }, }, }, performance = { diff --git a/lua/list.lua b/lua/list.lua new file mode 100644 index 0000000..23d1e3b --- /dev/null +++ b/lua/list.lua @@ -0,0 +1,589 @@ +return { + -- Delete Buffer + { + 'famiu/bufdelete.nvim', + event = { 'BufReadPre', 'BufNewFile' }, + init = function() + vim.keymap.set('n', 'q', function() + require('bufdelete').bufdelete(0, false) + end, { silent = true, desc = 'Quit Buffer' }) + end, + }, + -- Better Escape + { + 'max397574/better-escape.nvim', + config = function() + require('better_escape').setup() + end, + }, + -- Comment + { + { + 'LudoPinelli/comment-box.nvim', + opts = {}, + vscode = true, + keys = { + { 'cb', 'CBccbox', mode = { 'n', 'v' }, desc = 'Comment Box' }, + { 'ct', 'CBllline', mode = { 'n', 'v' }, desc = 'Tiled line' }, + { 'cl', 'CBline', desc = 'Line' }, + { 'cm', 'CBllbox14', mode = { 'n', 'v' }, desc = 'Marked' }, + { 'cc', 'CBcatalog', desc = 'Catalog' }, + { 'cd', 'CBd', mode = { 'n', 'v' }, desc = 'Delete Comment Style' }, + }, + }, + }, + -- Code Screnshot + { + 'mistricky/codesnap.nvim', + build = 'make', + cmd = { 'CodeSnap', 'CodeSnapSave' }, + vscode = false, + keys = { + { 'cp', mode = 'v', "'<,'>CodeSnap", desc = 'Screenshot (Clipboard)' }, + { 'cP', mode = 'v', "'<,'>CodeSnapSave", desc = 'Screenshot (Save)' }, + }, + cond = vim.env.KITTY_SCROLLBACK_NVIM == nil, + opts = { + save_path = (os.getenv('HOME') .. '/Pictures/screenshots/code'), + title = 'CodeSnap.nvim', + code_font_family = 'JetBrainsMono Nerd Font', + watermark_font_family = 'JetBrainsMono Nerd Font', + watermark = '', + bg_theme = 'summer', + }, + }, + -- Generate dotfyle metadata for your config + { + 'creativenull/dotfyle-metadata.nvim', + cmd = { 'DotfyleGenerate', 'DotfyleOpen' }, + }, + -- improve the default vim.ui interfaces + { + 'stevearc/dressing.nvim', + event = 'VeryLazy', + }, + -- Show diagnostics and lsp info inside a custom window, following the mouse position + { + 'soulis-1256/eagle.nvim', + event = { 'BufReadPre', 'BufNewFile' }, + config = function() + require('eagle').setup({}) + end, + }, + -- Navigate your code with search labels, enhanced character motions and Treesitter integration + { + 'folke/flash.nvim', + event = { 'CursorHold', 'CursorHoldI' }, + vscode = true, + opts = {}, + keys = { + { + 's', + mode = { 'n', 'x', 'o' }, + function() + require('flash').jump() + end, + desc = 'Flash', + }, + { + 'S', + mode = { 'n', 'o', 'x' }, + function() + require('flash').treesitter() + end, + desc = 'Flash Treesitter', + }, + { + 'r', + mode = 'o', + function() + require('flash').remote() + end, + desc = 'Remote Flash', + }, + { + 'R', + mode = { 'o', 'x' }, + function() + require('flash').treesitter_search() + end, + desc = 'Treesitter Search', + }, + { + '', + mode = { 'c' }, + function() + require('flash').toggle() + end, + desc = 'Toggle Flash Search', + }, + }, + }, + --open files in neovim without creating a nested sessions + { + 'willothy/flatten.nvim', + priority = 1001, + opts = { + window = { + open = 'alternate', + }, + }, + }, + -- highlight arguments + { + 'm-demare/hlargs.nvim', + event = { 'BufReadPost', 'BufNewFile' }, + }, + -- emoji picker + { + 'ziontee113/icon-picker.nvim', + enabled = true, + cmd = { 'IconPickerInsert' }, + vim.keymap.set('n', 'se', 'IconPickerInsert emoji'), + config = function() + require('icon-picker').setup({ disable_legacy_commands = true }) + end, + }, + -- Incremental rename + { + 'smjonas/inc-rename.nvim', + cmd = 'IncRename', + config = true, + }, + -- automtically guess indent + { + 'nmac427/guess-indent.nvim', + event = 'FileType', + config = function() + require('guess-indent').setup({}) + end, + }, + -- Faster LuaLS setup + { + 'folke/lazydev.nvim', + ft = 'lua', -- only load on lua files + cmd = 'LazyDev', + lazy = true, + event = 'LspAttach', + opts = { + library = {}, + }, + }, + -- Snippets + { + 'L3MON4D3/LuaSnip', + event = { 'BufReadPost', 'BufNewFile' }, + dependencies = { + 'rafamadriz/friendly-snippets', + 'mstuttgart/odoo-snippets', + }, + opts = { + history = true, + updateevents = 'TextChanged,TextChangedI', + }, + keys = function() + return {} + end, + config = function() + require('luasnip.loaders.from_vscode').lazy_load() + end, + }, + -- Markdown preview + { + 'iamcco/markdown-preview.nvim', + build = 'cd app && yarn install', + ft = { 'markdown' }, + keys = { + { + 'mp', + 'MarkdownPreviewToggle', + desc = 'toggle markdown preview', + }, + }, + }, + -- Colorscheme + { + 'bluz71/vim-moonfly-colors', + name = 'moonfly', + lazy = false, + priority = 1000, + config = function() + require('moonfly').custom_colors({ + bg = '#000000', + }) + vim.cmd([[colorscheme moonfly]]) + end, + }, + -- navigate between neovim and terminal + { + 'numToStr/Navigator.nvim', + keys = { + { '', 'NavigatorLeft' }, + { '', 'NavigatorDown' }, + { '', 'NavigatorUp' }, + { '', 'NavigatorRight' }, + { '', 'NavigatorPrevious' }, + }, + config = function() + require('Navigator').setup() + end, + }, + -- popup display that provides breadcrumbs like navigation features + { + 'SmiteshP/nvim-navbuddy', + dependencies = { + 'neovim/nvim-lspconfig', + 'SmiteshP/nvim-navic', + }, + keys = { + { 'nv', 'Navbuddy', desc = 'Nav' }, + }, + config = function() + local actions = require('nvim-navbuddy.actions') + local navbuddy = require('nvim-navbuddy') + navbuddy.setup({ + window = { + border = 'double', + }, + mappings = { + ['k'] = actions.next_sibling, + ['i'] = actions.previous_sibling, + ['j'] = actions.parent, + ['l'] = actions.children, + }, + lsp = { auto_attach = true }, + }) + end, + }, + -- smooth scrolling + { + 'karb94/neoscroll.nvim', + event = 'UIEnter', + config = function() + require('neoscroll').setup({ + mappings = { -- Keys to be mapped to their corresponding default scrolling animation + '', + '', + '', + '', + '', + '', + 'zt', + 'zz', + 'zb', + }, + hide_cursor = true, -- Hide cursor while scrolling + stop_eof = true, -- Stop at when scrolling downwards + respect_scrolloff = false, -- Stop scrolling when the cursor reaches the scrolloff margin of the file + cursor_scrolls_alone = true, -- The cursor will keep on scrolling even if the window cannot scroll further + easing = 'linear', -- Default easing function + pre_hook = nil, -- Function to run before the scrolling animation starts + post_hook = nil, -- Function to run after the scrolling animation ends + performance_mode = false, -- Disable "Performance Mode" on all buffers. + }) + end, + }, + -- Notifications + { + 'rcarriga/nvim-notify', + event = 'VeryLazy', + keys = { + { + 'un', + function() + require('notify').dismiss({ silent = true, pending = true }) + end, + desc = 'Dismiss All Notifications', + }, + }, + opts = { + level = 2, + minimum_width = 50, + stages = 'fade', + timeout = 3000, + top_down = true, + render = 'compact', + background_colour = '#000000', + }, + }, + -- Ui components + { + 'MunifTanjim/nui.nvim', + lazy = true, + }, + -- Peek lines just when you intend + { + 'nacro90/numb.nvim', + event = 'CmdlineEnter', + config = function() + require('numb').setup({ + show_numbers = true, -- Enable 'number' for the window while peeking + show_cursorline = true, -- Enable 'cursorline' for the window while peeking + hide_relativenumbers = true, -- Enable turning off 'relativenumber' for the window while peeking + number_only = false, -- Peek only when the command is only a number instead of when it starts with a number + centered_peeking = true, -- Peeked line will be centered relative to window + }) + end, + }, + { + 'nvim-lua/plenary.nvim', + lazy = true, + }, + -- Session Management + { + 'folke/persistence.nvim', + event = 'BufReadPre', + opts = { options = vim.opt.sessionoptions:get() }, + keys = { + { + 'ss', + function() + require('persistence').load() + end, + desc = 'Restore Session', + }, + { + 'sl', + function() + require('persistence').load({ last = true }) + end, + desc = 'Restore Last Session', + }, + { + 'sd', + function() + require('persistence').stop() + end, + desc = "Don't Save Current Session", + }, + }, + }, + -- alternating syntax highlighting + { + 'HiPhish/rainbow-delimiters.nvim', + event = { 'BufReadPost', 'BufNewFile' }, + config = function() + local rainbow_delimiters = require('rainbow-delimiters') + require('rainbow-delimiters.setup').setup({ + { + strategy = { + [''] = rainbow_delimiters.strategy['global'], + vim = rainbow_delimiters.strategy['local'], + }, + query = { + [''] = 'rainbow-delimiters', + lua = 'rainbow-blocks', + }, + priority = { + [''] = 110, + lua = 210, + }, + highlight = { + 'RainbowDelimiterRed', + 'RainbowDelimiterYellow', + 'RainbowDelimiterBlue', + 'RainbowDelimiterOrange', + 'RainbowDelimiterGreen', + 'RainbowDelimiterViolet', + 'RainbowDelimiterCyan', + }, + }, + }) + end, + }, + -- Enhance the usage of macros + { + 'chrisgrieser/nvim-recorder', + dependencies = { 'rcarriga/nvim-notify' }, + event = 'VeryLazy', + vscode = true, + keys = { + { 'q', desc = 'Start Recording' }, + { 'Q', desc = 'Play Recording' }, + { '', desc = 'Switch Slot' }, + { 'cq', desc = 'Edit Macro' }, + { 'yq', desc = 'Yank Macro' }, + { 'dq', desc = 'Delete All Macros' }, + }, + opts = { + useNerdFontsIcons = false, + slots = { 'a', 'b', 'c', 'd' }, + mapping = { + startStopRecording = 'q', + playMacro = 'Q', + editMacro = 'cq', + switchSlot = '', + deleteAllMacros = 'dq', + yankMacro = 'yq', + }, + }, + }, + -- Screencast the keys + { + 'NStefan002/screenkey.nvim', + cmd = 'Screenkey', + version = '*', + vim.keymap.set('n', 'kt', 'Screenkey', { desc = 'Toggle keys' }), + config = function() + require('screenkey').setup({ + -- see :h nvim_open_win + win_opts = { + relative = 'editor', + anchor = 'SE', + width = 40, + height = 1, + border = 'single', + }, + -- compress input when repeated times + compress_after = 3, + -- clear the input after seconds of inactivity + clear_after = 3, + -- temporarily disable screenkey (for example when inside of the terminal) + disable = { + filetypes = {}, -- for example: "toggleterm" + -- :h 'buftype' + buftypes = {}, -- for example: "terminal" + }, + }) + end, + }, + -- search panel + { + 'nvim-pack/nvim-spectre', + build = false, + cmd = 'Spectre', + opts = { open_cmd = 'noswapfile vnew' }, + keys = { + { + 'sr', + function() + require('spectre').open() + end, + desc = 'Replace in Files (Spectre)', + }, + }, + }, + { + 'luukvbaal/statuscol.nvim', + event = 'BufReadPre', + config = function() + local builtin = require('statuscol.builtin') + require('statuscol').setup({ + setopt = true, + separator = '', + foldfunc = 'builtin', + relculright = true, + segments = { + { text = { '%s' }, click = 'v:lua.ScSa' }, + { + text = { builtin.lnumfunc, ' ' }, + click = 'v:lua.ScLa', + }, + }, + }) + end, + }, + -- undo history visualizer + { + 'mbbill/undotree', + keys = { + { 'uu', 'UndotreeToggle', desc = 'Toggle Undotree' }, + }, + }, + -- maximizer & restore current window + { + 'szw/vim-maximizer', + + keys = { + { 'sm', 'MaximizerToggle', desc = 'Maximize/minimize a split' }, + }, + }, + -- for programming activity + { + 'wakatime/vim-wakatime', + lazy = false, + }, + -- show keymaps + { + 'folke/which-key.nvim', + event = 'UIEnter', + opts = { + preset = 'helix', + }, + keys = { + { + '?', + function() + require('which-key').show({ global = false }) + end, + desc = 'Buffer Local Keymaps (which-key)', + }, + }, + }, + -- Distraction-free coding + { + 'folke/zen-mode.nvim', + cmd = { 'ZenMode' }, + opts = {}, + keys = { + { 'zz', 'ZenMode', desc = 'Toggle zen mode' }, + }, + }, + -- Prismatic line decorations + { + 'mvllow/modes.nvim', + event = { 'BufReadPost', 'BufNewFile' }, + tag = 'v0.2.0', + config = function() + require('modes').setup({ + + colors = { + visual = '#f5c359', + delete = '#c75c6a', + copy = '#78ccc5', + insert = '#c5739a', + }, + line_opacity = 0.15, + set_cursor = true, + set_cursorline = true, + set_number = true, + ignore_filetypes = { 'NvimTree', 'TelescopePrompt' }, + }) + end, + }, + -- Make editing big files faster + { + 'LunarVim/bigfile.nvim', + event = { 'BufEnter', 'WinEnter' }, + opts = { + -- Disables LSP/treesitter, etc for files above 5000 lives (even if they have really long lines) + pattern = function(bufnr, filesize_mib) + if filesize_mib >= 2 then + return true + end + -- you can't use `nvim_buf_line_count` because this runs on BufReadPre + local file_contents = vim.fn.readfile(vim.api.nvim_buf_get_name(bufnr)) + local file_length = #file_contents + if file_length > 5000 then + return true + end + + return false + end, + }, + }, + -- url-opener + { + 'sontungexpt/url-open', + event = { 'BufEnter', 'WinEnter' }, + cmd = 'URLOpenUnderCursor', + config = function() + local status_ok, url_open = pcall(require, 'url-open') + if not status_ok then + return + end + url_open.setup({}) + end, + vim.keymap.set('n', 'gx', ':URLOpenUnderCursor'), + }, +} diff --git a/lua/plugins/alpha.lua b/lua/plugins/alpha.lua index 99c0164..af7e71e 100644 --- a/lua/plugins/alpha.lua +++ b/lua/plugins/alpha.lua @@ -1,106 +1,82 @@ +-- Header +local function header() + local banner_small = { + ' ', + ' ', + ' ', + ' ███╗ ██╗███████╗ ██████╗ ██╗ ██╗██╗███╗ ███╗ ', + ' ████╗ ██║██╔════╝██╔═══██╗██║ ██║██║████╗ ████║ ', + ' ██╔██╗ ██║█████╗ ██║ ██║██║ ██║██║██╔████╔██║ ', + ' ██║╚██╗██║██╔══╝ ██║ ██║╚██╗ ██╔╝██║██║╚██╔╝██║ ', + ' ██║ ╚████║███████╗╚██████╔╝ ╚████╔╝ ██║██║ ╚═╝ ██║ ', + ' ╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ ', + ' ', + ' With experience comes perspective ', + } + + return banner_small +end +-- Footer +local function footer() + local version = vim.version() + local print_version = 'v' .. version.major .. '.' .. version.minor .. '.' .. version.patch + local stats = require('lazy').stats() + local plugins_count = stats.loaded .. '/' .. stats.count + local ms = math.floor(stats.startuptime + 0.5) + local time = vim.fn.strftime('%H:%M:%S') + local date = vim.fn.strftime('%d.%m.%Y') + local line1 = ' ' .. plugins_count .. ' plugins loaded in ' .. ms .. 'ms' + local line2 = '󰃭 ' .. date .. '  ' .. time + local line3 = ' ' .. print_version + + -- Calculate padding for centering lines + local line1_width = vim.fn.strdisplaywidth(line1) + local line2_padding = math.max(0, math.floor((line1_width - vim.fn.strdisplaywidth(line2)) / 2)) + local line3_padding = math.max(0, math.floor((line1_width - vim.fn.strdisplaywidth(line3)) / 2)) + + -- Apply padding to lines + line2 = string.rep(' ', line2_padding) .. line2 + line3 = string.rep(' ', line3_padding) .. line3 + + return { + ' ', + line1, + line2, + line3, + } +end + return { 'goolord/alpha-nvim', event = 'VimEnter', - opts = function() + dependencies = { 'nvim-tree/nvim-web-devicons' }, + config = function() + local alpha = require('alpha') local dashboard = require('alpha.themes.dashboard') - require('alpha.term') - local arttoggle = false - local logo = { - [[ ]], - [[ ███╗ ██╗███████╗ ██████╗ ██╗ ██╗██╗███╗ ███╗ ]], - [[ ████╗ ██║██╔════╝██╔═══██╗██║ ██║██║████╗ ████║ ]], - [[ ██╔██╗ ██║█████╗ ██║ ██║██║ ██║██║██╔████╔██║ ]], - [[ ██║╚██╗██║██╔══╝ ██║ ██║╚██╗ ██╔╝██║██║╚██╔╝██║ ]], - [[ ██║ ╚████║███████╗╚██████╔╝ ╚████╔╝ ██║██║ ╚═╝ ██║ ]], - [[ ╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ ]], - [[ ]], - } + dashboard.section.header.val = header() + dashboard.section.footer.val = footer() - local art = { - -- { name, width, height } - { 'tohru', 62, 17 }, - } - - if arttoggle == true then - dashboard.opts.opts.noautocmd = true - dashboard.section.terminal.opts.redraw = true - local path = vim.fn.stdpath('config') .. '/assets/' - -- local random = math.random(1, #art) - local currentart = art[1] - dashboard.section.terminal.command = 'cat ' .. path .. currentart[1] - - dashboard.section.terminal.width = currentart[2] - dashboard.section.terminal.height = currentart[3] - - dashboard.opts.layout = { - dashboard.section.terminal, - { type = 'padding', val = 2 }, - dashboard.section.buttons, - dashboard.section.footer, - } - else - dashboard.section.header.val = logo - end + -- Menu + -- TODO: Add projects and Frecency? dashboard.section.buttons.val = { - dashboard.button('n', ' ' .. ' New File', 'ene'), - dashboard.button('e', ' ' .. ' File Tree', ':Telescope file_browser '), - dashboard.button('f', ' ' .. ' Find files', ':Telescope find_files '), - dashboard.button('o', ' ' .. ' Recent files', ':Telescope oldfiles '), - dashboard.button('l', '󰒲 ' .. ' Lazy', ':Lazy '), - dashboard.button('q', ' ' .. ' Quit', ':q '), + dashboard.button('e', ' New file', ':ene startinsert'), + dashboard.button('f', ' Find files', 'Telescope find_files'), + dashboard.button('t', '󰊄 Find text', 'Telescope live_grep'), + dashboard.button('r', '󰔠 Recent files', 'Telescope oldfiles'), + dashboard.button('p', '󱠏 Projects', 'Telescope projects'), + dashboard.button('c', ' Config', 'e $MYVIMRC'), + dashboard.button('l', ' Plugins', 'Lazy'), + dashboard.button('q', ' Quit', 'qa'), } - for _, button in ipairs(dashboard.section.buttons.val) do - button.opts.hl = 'AlphaButtons' - button.opts.hl_shortcut = 'AlphaShortcut' - end - dashboard.section.header.opts.hl = 'Function' - dashboard.section.buttons.opts.hl = 'Identifier' - dashboard.section.footer.opts.hl = 'Function' - dashboard.opts.layout[1].val = 4 - return dashboard - end, - config = function(_, dashboard) - if vim.o.filetype == 'lazy' then - vim.cmd.close() - vim.api.nvim_create_autocmd('User', { - pattern = 'AlphaReady', - callback = function() - require('lazy').show() - end, - }) - end - require('alpha').setup(dashboard.opts) + + alpha.setup(dashboard.config) + -- Update the footer after all plugins are fully loaded vim.api.nvim_create_autocmd('User', { pattern = 'LazyVimStarted', callback = function() - local v = vim.version() - local dev = '' - if v.prerelease == 'dev' then - dev = '-dev+' .. v.build - else - dev = '' - end - local version = v.major .. '.' .. v.minor .. '.' .. v.patch .. dev - local stats = require('lazy').stats() - local plugins_count = stats.loaded .. '/' .. stats.count - local ms = math.floor(stats.startuptime + 0.5) - local time = vim.fn.strftime('%H:%M:%S') - local date = vim.fn.strftime('%d.%m.%Y') - local line1 = ' ' .. plugins_count .. ' plugins loaded in ' .. ms .. 'ms' - local line2 = '󰃭 ' .. date .. '  ' .. time - local line3 = ' ' .. version - - local line1_width = vim.fn.strdisplaywidth(line1) - local line2Padded = string.rep(' ', (line1_width - vim.fn.strdisplaywidth(line2)) / 2) .. line2 - local line3Padded = string.rep(' ', (line1_width - vim.fn.strdisplaywidth(line3)) / 2) .. line3 - - dashboard.section.footer.val = { - line1, - line2Padded, - line3Padded, - } - pcall(vim.cmd.AlphaRedraw) + dashboard.section.footer.val = footer() + pcall(vim.cmd, 'AlphaRedraw') end, }) end, diff --git a/lua/plugins/auto-pairs.lua b/lua/plugins/auto-pairs.lua index 7f7091e..164e972 100644 --- a/lua/plugins/auto-pairs.lua +++ b/lua/plugins/auto-pairs.lua @@ -1,14 +1,72 @@ --- autopairing of (){}[] etc return { - 'windwp/nvim-autopairs', - event = 'InsertEnter', - enabled = false, - config = function(_, opts) - require('nvim-autopairs').setup(opts) - - -- setup cmp for autopairs - -- If you want insert `(` after select function or method item - local cmp_autopairs = require('nvim-autopairs.completion.cmp') - require('cmp').event:on('confirm_done', cmp_autopairs.on_confirm_done()) - end, + { + { + 'windwp/nvim-autopairs', + keys = { + { '', mode = 'i' }, + { '', mode = 'i' }, + { '{', mode = 'i' }, + { '[', mode = 'i' }, + { '(', mode = 'i' }, + { '"', mode = 'i' }, + { "'", mode = 'i' }, + { '`', mode = 'i' }, + { '<', mode = 'i' }, + }, + lazy = true, + init = function() + vim.api.nvim_create_autocmd('User', { + pattern = 'IntPairsComp', + callback = function() + require('cmp').event:on( + 'confirm_done', + require('nvim-autopairs.completion.cmp').on_confirm_done() + ) + end, + once = true, + }) + end, + config = function() + require('nvim-autopairs').setup({ + map_bs = false, + check_ts = true, + fast_wrap = { highlight = 'Question', highlight_grey = 'LspCodeLens' }, + }) + end, + }, + { + 'hrsh7th/nvim-cmp', + optional = true, + opts = function() + require('cmp').event:on('menu_opened', function() + if vim.api.nvim_get_mode().mode:sub(1, 1) ~= 'c' then + vim.api.nvim_exec_autocmds('User', { pattern = 'IntPairsComp', modeline = false }) + end + end) + end, + }, + }, + { + 'altermo/ultimate-autopair.nvim', + keys = { + { '', mode = { 'i', 'c' } }, + { '', mode = { 'i', 'c' } }, + { '', mode = { 'i', 'c' } }, + { '{', mode = 'c' }, + { '[', mode = 'c' }, + { '(', mode = 'c' }, + { '"', mode = 'c' }, + { "'", mode = 'c' }, + { '`', mode = 'c' }, + }, + lazy = true, + config = function() + require('ultimate-autopair').setup({ + pair_map = true, + cr = { enable = false }, + space2 = { enable = true }, + fastwarp = { enable = false }, + }) + end, + }, } diff --git a/lua/plugins/buff_delete.lua b/lua/plugins/buff_delete.lua deleted file mode 100644 index cdcd544..0000000 --- a/lua/plugins/buff_delete.lua +++ /dev/null @@ -1,9 +0,0 @@ -return { - 'famiu/bufdelete.nvim', - event = { 'BufReadPre', 'BufNewFile' }, - init = function() - vim.keymap.set('n', 'q', function() - require('bufdelete').bufdelete(0, false) - end, { silent = true, desc = 'Quit Buffer' }) - end, -} diff --git a/lua/plugins/codeium.lua b/lua/plugins/codeium.lua index a83d9d6..a727af4 100644 --- a/lua/plugins/codeium.lua +++ b/lua/plugins/codeium.lua @@ -1,24 +1,49 @@ return { - 'Exafunction/codeium.vim', - event = 'InsertEnter', - cmd = 'Codeium', - build = 'Codeium Auth:', + { + 'Exafunction/codeium.vim', + event = 'InsertEnter', + config = function() + local cmp = require('cmp') + cmp.event:on('menu_opened', function() + vim.g.codeium_manual = true + vim.fn['codeium#Clear']() + end) + cmp.event:on('menu_closed', function() + vim.g.codeium_manual = false + vim.fn['codeium#Complete']() + end) - config = function() - vim.keymap.set('i', '', function() - return vim.fn['codeium#Accept']() - end, { expr = true, silent = true }) - vim.keymap.set("n", "c", function() - return vim.fn["codeium#Chat"]() - end, { desc = "Chat with IA (Codeium)" }) - vim.keymap.set('i', '', function() - return vim.fn['codeium#CycleCompletions'](1) - end, { expr = true, silent = true }) - vim.keymap.set('i', '', function() - return vim.fn['codeium#CycleCompletions'](-1) - end, { expr = true, silent = true }) - vim.keymap.set('i', '', function() - return vim.fn['codeium#Clear']() - end, { expr = true, silent = true }) - end, + vim.g.codeium_filetypes = { + TelescopePrompt = false, + DressingInput = false, + ['neo-tree-popup'] = false, + ['dap-repl'] = false, + } + + local opts = { expr = true, silent = true } + vim.g.codeium_disable_bindings = 1 + + vim.keymap.set('i', '', function() + return vim.fn['codeium#Accept']() + end, opts) + + vim.keymap.set('n', 'ch', function() + return vim.fn['codeium#Chat']() + end, { desc = 'Chat with IA (Codeium)' }) + + vim.keymap.set('i', '', function() + return vim.fn['codeium#CycleCompletions'](1) + end, opts) + + vim.keymap.set('i', '', function() + return vim.fn['codeium#CycleCompletions'](-1) + end, opts) + + vim.keymap.set('i', '', function() + return vim.fn['codeium#Clear']() + end, opts) + + vim.keymap.set('n', 'cI', 'CodeiumToggle', { desc = 'Toggle IA (Codeium)' }) + end, + }, } diff --git a/lua/plugins/cokeline.lua b/lua/plugins/cokeline.lua index fb31c35..ba6d1e5 100644 --- a/lua/plugins/cokeline.lua +++ b/lua/plugins/cokeline.lua @@ -1,10 +1,6 @@ return { 'willothy/nvim-cokeline', - dependencies = { - 'nvim-lua/plenary.nvim', -- Required for v0.4.0+ - 'nvim-tree/nvim-web-devicons', -- If you want devicons - 'stevearc/resession.nvim', -- Optional, for persistent history - }, + event = 'UIEnter', config = function() local get_hex = require('cokeline.hlgroups').get_hl_attr diff --git a/lua/plugins/completions.lua b/lua/plugins/completions.lua index c218ee0..d78e26f 100644 --- a/lua/plugins/completions.lua +++ b/lua/plugins/completions.lua @@ -17,6 +17,7 @@ return { 'onsails/lspkind.nvim', -- snippet plugin { 'L3MON4D3/LuaSnip', event = { 'BufReadPost', 'BufNewFile' } }, + { 'rafamadriz/friendly-snippets', event = { 'BufReadPost', 'BufNewFile' } }, }, config = function() local cmp = require('cmp') diff --git a/lua/plugins/dressing.lua b/lua/plugins/dressing.lua deleted file mode 100644 index aeae662..0000000 --- a/lua/plugins/dressing.lua +++ /dev/null @@ -1,5 +0,0 @@ --- Neovim plugin to improve the default vim.ui interfaces -return { - 'stevearc/dressing.nvim', - event = 'VeryLazy', -} diff --git a/lua/plugins/eagle.lua b/lua/plugins/eagle.lua deleted file mode 100644 index 7d4a746..0000000 --- a/lua/plugins/eagle.lua +++ /dev/null @@ -1,7 +0,0 @@ -return { - 'soulis-1256/eagle.nvim', - event = { 'BufReadPre', 'BufNewFile' }, - config = function() - require('eagle').setup({}) - end, -} diff --git a/lua/plugins/flash.lua b/lua/plugins/flash.lua deleted file mode 100644 index a592375..0000000 --- a/lua/plugins/flash.lua +++ /dev/null @@ -1,14 +0,0 @@ -return { - 'folke/flash.nvim', - event = { 'CursorHold', 'CursorHoldI' }, - vscode = true, - opts = {}, - -- stylua: ignore - keys = { - { "s", mode = { "n", "x", "o" }, function() require("flash").jump() end, desc = "Flash" }, - { "S", mode = { "n", "o", "x" }, function() require("flash").treesitter() end, desc = "Flash Treesitter" }, - { "r", mode = "o", function() require("flash").remote() end, desc = "Remote Flash" }, - { "R", mode = { "o", "x" }, function() require("flash").treesitter_search() end, desc = "Treesitter Search" }, - { "", mode = { "c" }, function() require("flash").toggle() end, desc = "Toggle Flash Search" }, - }, -} diff --git a/lua/plugins/flatten.lua b/lua/plugins/flatten.lua deleted file mode 100644 index 7c1cc24..0000000 --- a/lua/plugins/flatten.lua +++ /dev/null @@ -1,10 +0,0 @@ ---open files in neovim without creating a nested sessions -return { - 'willothy/flatten.nvim', - priority = 1001, - opts = { - window = { - open = 'alternate', - }, - }, -} diff --git a/lua/plugins/hlargs.lua b/lua/plugins/hlargs.lua deleted file mode 100644 index f14e3d5..0000000 --- a/lua/plugins/hlargs.lua +++ /dev/null @@ -1,3 +0,0 @@ -return { - 'm-demare/hlargs.nvim', -} diff --git a/lua/plugins/icon-picker.lua b/lua/plugins/icon-picker.lua deleted file mode 100644 index 2a2e475..0000000 --- a/lua/plugins/icon-picker.lua +++ /dev/null @@ -1,9 +0,0 @@ -return { - 'ziontee113/icon-picker.nvim', - enabled = true, - cmd = { 'IconPickerInsert' }, - vim.keymap.set('n', 'se', 'IconPickerInsert emoji'), - config = function() - require('icon-picker').setup({ disable_legacy_commands = true }) - end, -} diff --git a/lua/plugins/inc-rename.lua b/lua/plugins/inc-rename.lua deleted file mode 100644 index 5713da2..0000000 --- a/lua/plugins/inc-rename.lua +++ /dev/null @@ -1,6 +0,0 @@ --- Incremental rename -return { - 'smjonas/inc-rename.nvim', - cmd = 'IncRename', - config = true, -} diff --git a/lua/plugins/indent.lua b/lua/plugins/indent.lua deleted file mode 100644 index 0ddab27..0000000 --- a/lua/plugins/indent.lua +++ /dev/null @@ -1,10 +0,0 @@ -return { - { - 'nmac427/guess-indent.nvim', - enabled = true, - config = function() - require('guess-indent').setup({}) - end, - event = 'BufReadPost', - }, -} diff --git a/lua/plugins/lazydev.lua b/lua/plugins/lazydev.lua deleted file mode 100644 index b7c18f9..0000000 --- a/lua/plugins/lazydev.lua +++ /dev/null @@ -1,13 +0,0 @@ -return { - { - 'folke/lazydev.nvim', - ft = 'lua', -- only load on lua files - cmd = 'LazyDev', - lazy = true, - event = 'LspAttach', - opts = { - library = {}, - }, - }, - { 'Bilal2453/luvit-meta', lazy = true }, -- optional `vim.uv` typings -} diff --git a/lua/plugins/lspconfig.lua b/lua/plugins/lspconfig.lua index 0f556fd..4a0fdb9 100644 --- a/lua/plugins/lspconfig.lua +++ b/lua/plugins/lspconfig.lua @@ -1,7 +1,6 @@ return { 'neovim/nvim-lspconfig', - lazy = true, - event = { 'BufReadPre', 'BufNewFile' }, + event = { 'BufReadPost', 'FileType' }, dependencies = { 'hrsh7th/cmp-nvim-lsp', { 'antosha417/nvim-lsp-file-operations', config = true }, diff --git a/lua/plugins/lualine.lua b/lua/plugins/lualine.lua index ac7a0f7..35a06d6 100644 --- a/lua/plugins/lualine.lua +++ b/lua/plugins/lualine.lua @@ -3,7 +3,7 @@ return { dependencies = { 'nvim-tree/nvim-web-devicons', }, - event = { 'BufReadPost', 'BufAdd', 'BufNewFile' }, + event = 'UIEnter', config = function() -- Eviline config for lualine -- Author: shadmansaleh @@ -50,6 +50,7 @@ return { 'NeoTree', 'NvimTree', 'Outline', + 'alpha', }, theme = { -- We are going to use lualine_c an lualine_x as left and @@ -161,14 +162,13 @@ return { -- Lsp server name . function() local msg = 'No Active Lsp' - local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype') local clients = vim.lsp.get_clients() if next(clients) == nil then return msg end for _, client in ipairs(clients) do local filetypes = client.config.filetypes - if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then + if filetypes and vim.fn.index(filetypes) ~= -1 then return client.name end end diff --git a/lua/plugins/luasnip.lua b/lua/plugins/luasnip.lua deleted file mode 100644 index 648277f..0000000 --- a/lua/plugins/luasnip.lua +++ /dev/null @@ -1,19 +0,0 @@ --- snippet plugin -return { - 'L3MON4D3/LuaSnip', - event = { 'BufReadPost', 'BufNewFile' }, - dependencies = { - 'rafamadriz/friendly-snippets', - 'mstuttgart/odoo-snippets', - }, - opts = { - history = true, - updateevents = 'TextChanged,TextChangedI', - }, - keys = function() - return {} - end, - config = function() - require('luasnip.loaders.from_vscode').lazy_load() - end, -} diff --git a/lua/plugins/markdown.lua b/lua/plugins/markdown.lua deleted file mode 100644 index 019b87d..0000000 --- a/lua/plugins/markdown.lua +++ /dev/null @@ -1,14 +0,0 @@ -return { - { - 'iamcco/markdown-preview.nvim', - build = 'cd app && yarn install', - ft = { 'markdown' }, - keys = { - { - 'mp', - 'MarkdownPreviewToggle', - { desc = 'toggle markdown preview', noremap = true }, - }, - }, - }, -} diff --git a/lua/plugins/mason.lua b/lua/plugins/mason.lua index 748538b..4398482 100644 --- a/lua/plugins/mason.lua +++ b/lua/plugins/mason.lua @@ -4,6 +4,7 @@ return { dependencies = { { 'williamboman/mason-lspconfig.nvim', event = { 'BufReadPre', 'BufNewFile' } }, 'WhoIsSethDaniel/mason-tool-installer.nvim', + { 'zapling/mason-lock.nvim', cmd = { 'MasonLock', 'MasonLockRestore' }, opts = {} }, }, config = function() local mason = require('mason') diff --git a/lua/plugins/mini.lua b/lua/plugins/mini.lua index e1205e1..8158daf 100644 --- a/lua/plugins/mini.lua +++ b/lua/plugins/mini.lua @@ -5,8 +5,6 @@ return { version = false, config = function() require('mini.comment').setup({}) - require('mini.pairs').setup({}) - require('mini.move').setup({}) require('mini.cursorword').setup() -- require("mini.tabline").setup() local statusline = require('mini.statusline') @@ -34,6 +32,32 @@ return { update_n_lines = 'gsn', -- Update `n_lines` }, }) + require('mini.pairs').setup({ + odes = { command = true }, + mappings = { + ['<'] = { action = 'open', pair = '<>', neigh_pattern = '[^\\].' }, + ['>'] = { action = 'close', pair = '<>', neigh_pattern = '[^\\].' }, + }, + }) + require('mini.move').setup({ + keys = { + { '', mode = { 'n', 'v' } }, + { '', mode = { 'n', 'v' } }, + { '', mode = { 'n', 'v' } }, + { '', mode = { 'n', 'v' } }, + }, + + mappings = { + left = '', + line_left = '', + right = '', + line_right = '', + down = '', + line_down = '', + up = '', + line_up = '', + }, + }) end, }, } diff --git a/lua/plugins/modes.lua b/lua/plugins/modes.lua deleted file mode 100644 index 22b6ec5..0000000 --- a/lua/plugins/modes.lua +++ /dev/null @@ -1,32 +0,0 @@ -return { - 'mvllow/modes.nvim', - tag = 'v0.2.0', - config = function() - require('modes').setup({ - - colors = { - visual = '#f5c359', - delete = '#c75c6a', - copy = '#78ccc5', - insert = '#c5739a', - }, - - -- Set opacity for cursorline and number background - line_opacity = 0.15, - - -- Enable cursor highlights - set_cursor = true, - - -- Enable cursorline initially, and disable cursorline for inactive windows - -- or ignored filetypes - set_cursorline = true, - - -- Enable line number highlights to match cursorline - set_number = true, - - -- Disable modes highlights in specified filetypes - -- Please PR commonly ignored filetypes - ignore_filetypes = { 'NvimTree', 'TelescopePrompt' }, - }) - end, -} diff --git a/lua/plugins/moonlfy.lua b/lua/plugins/moonlfy.lua deleted file mode 100644 index 498bfaf..0000000 --- a/lua/plugins/moonlfy.lua +++ /dev/null @@ -1,12 +0,0 @@ -return { - 'bluz71/vim-moonfly-colors', - name = 'moonfly', - lazy = false, - priority = 1000, - config = function() - require('moonfly').custom_colors({ - bg = '#000000', - }) - vim.cmd([[colorscheme moonfly]]) - end, -} diff --git a/lua/plugins/navbuddy.lua b/lua/plugins/navbuddy.lua deleted file mode 100644 index d2207c5..0000000 --- a/lua/plugins/navbuddy.lua +++ /dev/null @@ -1,27 +0,0 @@ -return { - 'SmiteshP/nvim-navbuddy', - dependencies = { - 'neovim/nvim-lspconfig', - 'SmiteshP/nvim-navic', - 'MunifTanjim/nui.nvim', - }, - keys = { - { 'nv', 'Navbuddy', desc = 'Nav' }, - }, - config = function() - local actions = require('nvim-navbuddy.actions') - local navbuddy = require('nvim-navbuddy') - navbuddy.setup({ - window = { - border = 'double', - }, - mappings = { - ['k'] = actions.next_sibling, - ['i'] = actions.previous_sibling, - ['j'] = actions.parent, - ['l'] = actions.children, - }, - lsp = { auto_attach = true }, - }) - end, -} diff --git a/lua/plugins/navigator.lua b/lua/plugins/navigator.lua deleted file mode 100644 index 90c8b0c..0000000 --- a/lua/plugins/navigator.lua +++ /dev/null @@ -1,13 +0,0 @@ -return { - 'numToStr/Navigator.nvim', - keys = { - { '', 'NavigatorLeft' }, - { '', 'NavigatorDown' }, - { '', 'NavigatorUp' }, - { '', 'NavigatorRight' }, - { '', 'NavigatorPrevious' }, - }, - config = function() - require('Navigator').setup() - end, -} diff --git a/lua/plugins/neo-tree.lua b/lua/plugins/neo-tree.lua index fb1e3e9..44b72a5 100644 --- a/lua/plugins/neo-tree.lua +++ b/lua/plugins/neo-tree.lua @@ -1,6 +1,6 @@ return { 'nvim-neo-tree/neo-tree.nvim', - branch = 'v3.x', + enabled = true, dependencies = { 'nvim-lua/plenary.nvim', 'nvim-tree/nvim-web-devicons', @@ -10,4 +10,26 @@ return { { 'ee', ':Neotree toggle float', silent = true, desc = 'Float File Explorer' }, { '', ':Neotree toggle left', silent = true, desc = 'Left File Explorer' }, }, + cmd = { 'Neotree' }, + opts = { + filesystem = { + filtered_items = { + visible = true, + show_hidden_count = true, + hide_dotfiles = false, + hide_gitignored = true, + hide_by_name = { + '.git', + '.DS_Store', + 'thumbs.db', + '.venv', + }, + never_show = {}, + }, + }, + window = { + position = 'right', + width = 35, + }, + }, } diff --git a/lua/plugins/neoscroll.lua b/lua/plugins/neoscroll.lua deleted file mode 100644 index 6046795..0000000 --- a/lua/plugins/neoscroll.lua +++ /dev/null @@ -1,28 +0,0 @@ --- Smooth scrolling neovim plugin written in lua -return { - 'karb94/neoscroll.nvim', - event = { 'CursorHold', 'CursorHoldI' }, - config = function() - require('neoscroll').setup({ - mappings = { -- Keys to be mapped to their corresponding default scrolling animation - '', - '', - '', - '', - '', - '', - 'zt', - 'zz', - 'zb', - }, - hide_cursor = true, -- Hide cursor while scrolling - stop_eof = true, -- Stop at when scrolling downwards - respect_scrolloff = false, -- Stop scrolling when the cursor reaches the scrolloff margin of the file - cursor_scrolls_alone = true, -- The cursor will keep on scrolling even if the window cannot scroll further - easing = 'linear', -- Default easing function - pre_hook = nil, -- Function to run before the scrolling animation starts - post_hook = nil, -- Function to run after the scrolling animation ends - performance_mode = false, -- Disable "Performance Mode" on all buffers. - }) - end, -} diff --git a/lua/plugins/noice.lua b/lua/plugins/noice.lua index 82c779a..8379300 100644 --- a/lua/plugins/noice.lua +++ b/lua/plugins/noice.lua @@ -1,8 +1,7 @@ -- override nvim ui return { 'folke/noice.nvim', - event = 'VeryLazy', - enabled = true, + event = 'UIEnter', dependencies = { 'nvim-treesitter/nvim-treesitter', 'MunifTanjim/nui.nvim', diff --git a/lua/plugins/none-ls.lua b/lua/plugins/none-ls.lua index cabf007..777f90d 100644 --- a/lua/plugins/none-ls.lua +++ b/lua/plugins/none-ls.lua @@ -1,6 +1,6 @@ return { 'nvimtools/none-ls.nvim', -- configure formatters & linters - event = { 'BufReadPre', 'BufNewFile' }, + event = { 'BufRead', 'FileType' }, dependencies = { 'jay-babu/mason-null-ls.nvim', }, diff --git a/lua/plugins/notify.lua b/lua/plugins/notify.lua deleted file mode 100644 index 00a6fe0..0000000 --- a/lua/plugins/notify.lua +++ /dev/null @@ -1,22 +0,0 @@ -return { - 'rcarriga/nvim-notify', - event = 'VeryLazy', - keys = { - { - 'un', - function() - require('notify').dismiss({ silent = true, pending = true }) - end, - desc = 'Dismiss All Notifications', - }, - }, - opts = { - level = 2, - minimum_width = 50, - stages = 'fade', - timeout = 3000, - top_down = true, - render = 'compact', - background_colour = '#000000', - }, -} diff --git a/lua/plugins/nui.lua b/lua/plugins/nui.lua deleted file mode 100644 index f79aec6..0000000 --- a/lua/plugins/nui.lua +++ /dev/null @@ -1 +0,0 @@ -return { 'MunifTanjim/nui.nvim', lazy = true } diff --git a/lua/plugins/numb.lua b/lua/plugins/numb.lua deleted file mode 100644 index 2263482..0000000 --- a/lua/plugins/numb.lua +++ /dev/null @@ -1,12 +0,0 @@ -return { - 'nacro90/numb.nvim', - config = function() - require('numb').setup({ - show_numbers = true, -- Enable 'number' for the window while peeking - show_cursorline = true, -- Enable 'cursorline' for the window while peeking - hide_relativenumbers = true, -- Enable turning off 'relativenumber' for the window while peeking - number_only = false, -- Peek only when the command is only a number instead of when it starts with a number - centered_peeking = true, -- Peeked line will be centered relative to window - }) - end, -} diff --git a/lua/plugins/nvim-treesitter.lua b/lua/plugins/nvim-treesitter.lua index 1394f02..6417bbd 100644 --- a/lua/plugins/nvim-treesitter.lua +++ b/lua/plugins/nvim-treesitter.lua @@ -3,7 +3,7 @@ return { { 'nvim-treesitter/nvim-treesitter', build = ':TSUpdate', - event = { 'BufReadPost', 'BufNewFile' }, + event = 'FileType', cmd = { 'TSInstall', 'TSBufEnable', 'TSBufDisable', 'TSModuleInfo' }, dependencies = { 'nvim-treesitter/nvim-treesitter-textobjects', diff --git a/lua/plugins/plenary.lua b/lua/plugins/plenary.lua deleted file mode 100644 index 5fec6f0..0000000 --- a/lua/plugins/plenary.lua +++ /dev/null @@ -1 +0,0 @@ -return { 'nvim-lua/plenary.nvim', lazy = true } diff --git a/lua/plugins/presistence.lua b/lua/plugins/presistence.lua deleted file mode 100644 index 0766a45..0000000 --- a/lua/plugins/presistence.lua +++ /dev/null @@ -1,28 +0,0 @@ -return { - 'folke/persistence.nvim', - event = 'BufReadPre', - opts = { options = vim.opt.sessionoptions:get() }, - keys = { - { - 'ss', - function() - require('persistence').load() - end, - desc = 'Restore Session', - }, - { - 'sl', - function() - require('persistence').load({ last = true }) - end, - desc = 'Restore Last Session', - }, - { - 'sd', - function() - require('persistence').stop() - end, - desc = "Don't Save Current Session", - }, - }, -} diff --git a/lua/plugins/rainbow-delimiters.lua b/lua/plugins/rainbow-delimiters.lua deleted file mode 100644 index 6ed0b62..0000000 --- a/lua/plugins/rainbow-delimiters.lua +++ /dev/null @@ -1,31 +0,0 @@ -return { - 'HiPhish/rainbow-delimiters.nvim', - config = function() - local rainbow_delimiters = require('rainbow-delimiters') - require('rainbow-delimiters.setup').setup({ - { - strategy = { - [''] = rainbow_delimiters.strategy['global'], - vim = rainbow_delimiters.strategy['local'], - }, - query = { - [''] = 'rainbow-delimiters', - lua = 'rainbow-blocks', - }, - priority = { - [''] = 110, - lua = 210, - }, - highlight = { - 'RainbowDelimiterRed', - 'RainbowDelimiterYellow', - 'RainbowDelimiterBlue', - 'RainbowDelimiterOrange', - 'RainbowDelimiterGreen', - 'RainbowDelimiterViolet', - 'RainbowDelimiterCyan', - }, - }, - }) - end, -} diff --git a/lua/plugins/screenkey.lua b/lua/plugins/screenkey.lua deleted file mode 100644 index a69016c..0000000 --- a/lua/plugins/screenkey.lua +++ /dev/null @@ -1,28 +0,0 @@ -return { - 'NStefan002/screenkey.nvim', - cmd = 'Screenkey', - version = '*', - vim.keymap.set('n', 'kt', 'Screenkey', { desc = 'Toggle keys' }), - config = function() - require('screenkey').setup({ - -- see :h nvim_open_win - win_opts = { - relative = 'editor', - anchor = 'SE', - width = 40, - height = 1, - border = 'single', - }, - -- compress input when repeated times - compress_after = 3, - -- clear the input after seconds of inactivity - clear_after = 3, - -- temporarily disable screenkey (for example when inside of the terminal) - disable = { - filetypes = {}, -- for example: "toggleterm" - -- :h 'buftype' - buftypes = {}, -- for example: "terminal" - }, - }) - end, -} diff --git a/lua/plugins/spectre.lua b/lua/plugins/spectre.lua deleted file mode 100644 index 90e51f2..0000000 --- a/lua/plugins/spectre.lua +++ /dev/null @@ -1,10 +0,0 @@ -return { - 'nvim-pack/nvim-spectre', - build = false, - cmd = 'Spectre', - opts = { open_cmd = 'noswapfile vnew' }, - -- stylua: ignore - keys = { - { "sr", function() require("spectre").open() end, desc = "Replace in Files (Spectre)" }, - }, -} diff --git a/lua/plugins/statuscol.lua b/lua/plugins/statuscol.lua deleted file mode 100644 index da6a089..0000000 --- a/lua/plugins/statuscol.lua +++ /dev/null @@ -1,22 +0,0 @@ -return { - { - 'luukvbaal/statuscol.nvim', - event = 'BufReadPre', - config = function() - local builtin = require('statuscol.builtin') - require('statuscol').setup({ - setopt = true, - separator = '', - foldfunc = 'builtin', - relculright = true, - segments = { - { text = { '%s' }, click = 'v:lua.ScSa' }, - { - text = { builtin.lnumfunc, ' ' }, - click = 'v:lua.ScLa', - }, - }, - }) - end, - }, -} diff --git a/lua/plugins/telescope.lua b/lua/plugins/telescope.lua index 92a6316..b85044c 100644 --- a/lua/plugins/telescope.lua +++ b/lua/plugins/telescope.lua @@ -92,7 +92,7 @@ return { { 'sF', 'Telescope file_browser', - "desc = 'File Browser'", + desc = 'File Browser', }, }, config = function() @@ -123,10 +123,10 @@ return { [''] = fb_actions.toggle_hidden, }, ['n'] = { - ['a'] = fb_actions.create, - ['r'] = fb_actions.rename, - ['d'] = fb_actions.remove, - ['h'] = fb_actions.toggle_hidden, + [''] = fb_actions.create, + ['uu', 'UndotreeToggle', desc = 'Toggle Undotree' }, - }, -} diff --git a/lua/plugins/vim-maximizer.lua b/lua/plugins/vim-maximizer.lua deleted file mode 100644 index 4acdf67..0000000 --- a/lua/plugins/vim-maximizer.lua +++ /dev/null @@ -1,7 +0,0 @@ -return { - 'szw/vim-maximizer', - - keys = { - { 'sm', 'MaximizerToggle', { desc = 'Maximize/minimize a split' } }, - }, -} diff --git a/lua/plugins/wakatime.lua b/lua/plugins/wakatime.lua deleted file mode 100644 index d63a22b..0000000 --- a/lua/plugins/wakatime.lua +++ /dev/null @@ -1,4 +0,0 @@ -return { - 'wakatime/vim-wakatime', - lazy = false, -} diff --git a/lua/plugins/which-key.lua b/lua/plugins/which-key.lua deleted file mode 100644 index 18677cc..0000000 --- a/lua/plugins/which-key.lua +++ /dev/null @@ -1,16 +0,0 @@ -return { - 'folke/which-key.nvim', - event = 'VeryLazy', - opts = { - preset = 'helix', - }, - keys = { - { - '?', - function() - require('which-key').show({ global = false }) - end, - desc = 'Buffer Local Keymaps (which-key)', - }, - }, -} diff --git a/lua/plugins/zenmode.lua b/lua/plugins/zenmode.lua deleted file mode 100644 index 487de4a..0000000 --- a/lua/plugins/zenmode.lua +++ /dev/null @@ -1,10 +0,0 @@ -return { - { - 'folke/zen-mode.nvim', - cmd = { 'ZenMode' }, - opts = {}, - keys = { - { 'zz', 'ZenMode', desc = 'Toggle zen mode' }, - }, - }, -} diff --git a/mason-lock.json b/mason-lock.json new file mode 100644 index 0000000..cb32add --- /dev/null +++ b/mason-lock.json @@ -0,0 +1,28 @@ +{ + "bash-language-server": "5.4.0", + "biome": "1.8.3", + "black": "24.8.0", + "clang-format": "18.1.8", + "clangd": "18.1.3", + "css-lsp": "4.10.0", + "emmet-ls": "0.4.2", + "eslint-lsp": "4.10.0", + "eslint_d": "14.0.3", + "goimports-reviser": "v3.6.5", + "graphql-language-service-cli": "3.5.0", + "html-lsp": "4.10.0", + "isort": "5.13.2", + "jdtls": "v1.38.0", + "json-lsp": "4.10.0", + "lua-language-server": "3.10.3", + "prettier": "3.3.3", + "prisma-language-server": "5.18.0", + "pylint": "3.2.6", + "pyright": "1.1.376", + "python-lsp-server": "1.11.0", + "stylua": "v0.20.0", + "svelte-language-server": "0.16.14", + "tailwindcss-language-server": "0.0.22", + "typescript-language-server": "4.3.3", + "vim-language-server": "2.3.1" +} \ No newline at end of file