summaryrefslogtreecommitdiff
path: root/dot_config/nvim
diff options
context:
space:
mode:
authorSakamoto <me@sakamoto.network>2026-05-12 18:31:15 -0500
committerSakamoto <me@sakamoto.network>2026-05-12 18:31:15 -0500
commita623fed63460d6d810605ce1ce858a58a5b222f7 (patch)
tree2129e72acc82deaf624630ec271942000eae0aeb /dot_config/nvim
downloaddotfiles-a623fed63460d6d810605ce1ce858a58a5b222f7.tar.xz
dotfiles-a623fed63460d6d810605ce1ce858a58a5b222f7.zip
init
Diffstat (limited to 'dot_config/nvim')
-rw-r--r--dot_config/nvim/init.lua63
-rw-r--r--dot_config/nvim/lazy-lock.json22
-rw-r--r--dot_config/nvim/lua/plugins/blink.lua63
-rw-r--r--dot_config/nvim/lua/plugins/dap.lua150
-rw-r--r--dot_config/nvim/lua/plugins/diffview.lua3
-rw-r--r--dot_config/nvim/lua/plugins/fidget.lua6
-rw-r--r--dot_config/nvim/lua/plugins/flash.lua14
-rw-r--r--dot_config/nvim/lua/plugins/fzf.lua13
-rw-r--r--dot_config/nvim/lua/plugins/lsp.lua61
-rw-r--r--dot_config/nvim/lua/plugins/markdown.lua7
-rw-r--r--dot_config/nvim/lua/plugins/oil.lua20
-rw-r--r--dot_config/nvim/lua/plugins/rustaceanvim.lua30
-rw-r--r--dot_config/nvim/lua/plugins/theme.lua12
-rw-r--r--dot_config/nvim/lua/plugins/trash/autopairs.luaa7
-rw-r--r--dot_config/nvim/lua/plugins/trash/crates.luaa17
-rw-r--r--dot_config/nvim/lua/plugins/trash/grapple.luaa14
-rw-r--r--dot_config/nvim/lua/plugins/trash/leetcode.luaa12
-rw-r--r--dot_config/nvim/lua/plugins/trash/mini-pairs.luaa1
-rw-r--r--dot_config/nvim/lua/plugins/trash/neck.luaa1
-rw-r--r--dot_config/nvim/lua/plugins/trash/neogit.luaa9
-rw-r--r--dot_config/nvim/lua/plugins/trash/neorg.luaa24
-rw-r--r--dot_config/nvim/lua/plugins/trash/neorg.luaaa24
-rw-r--r--dot_config/nvim/lua/plugins/trash/neotest.luaa82
-rw-r--r--dot_config/nvim/lua/plugins/trash/noice.luaa23
-rw-r--r--dot_config/nvim/lua/plugins/trash/nvim-surround.luaa10
-rw-r--r--dot_config/nvim/lua/plugins/trash/orgmode.luaa19
-rw-r--r--dot_config/nvim/lua/plugins/trash/persistence.luaa8
-rw-r--r--dot_config/nvim/lua/plugins/trash/scroll.luaa38
-rw-r--r--dot_config/nvim/lua/plugins/trash/tabout.luaa31
-rw-r--r--dot_config/nvim/lua/plugins/treesitter.lua22
-rw-r--r--dot_config/nvim/lua/plugins/vim-tmux-navigator.lua17
31 files changed, 823 insertions, 0 deletions
diff --git a/dot_config/nvim/init.lua b/dot_config/nvim/init.lua
new file mode 100644
index 0000000..724348a
--- /dev/null
+++ b/dot_config/nvim/init.lua
@@ -0,0 +1,63 @@
+vim.opt.number = true
+vim.opt.relativenumber = true
+vim.opt.confirm = true
+vim.opt.clipboard = "unnamedplus"
+vim.opt.splitbelow = true
+vim.opt.splitright = true
+vim.opt.showmode = false
+vim.opt.tabstop = 2
+vim.opt.softtabstop = 2
+vim.opt.shiftwidth = 2
+vim.opt.expandtab = true
+vim.opt.smartindent = true
+vim.opt.swapfile = false
+vim.opt.termguicolors = true
+vim.g.mapleader = " "
+vim.g.maplocalleader = ","
+vim.opt.fillchars:append({ eob = " " })
+vim.opt.laststatus = 3
+vim.opt.signcolumn = "number"
+vim.opt.linebreak = true
+vim.opt.updatetime = 50
+vim.opt.ignorecase = true
+vim.opt.mouse = "nvi"
+
+vim.api.nvim_create_autocmd("TextYankPost", { callback = function() vim.highlight.on_yank() end })
+
+vim.keymap.set("n", "<C-Left>", "<C-w>h")
+vim.keymap.set("n", "<C-Down>", "<C-w>j")
+vim.keymap.set("n", "<C-Up>", "<C-w>k")
+vim.keymap.set("n", "<C-Right>", "<C-w>l")
+
+vim.keymap.set("n", "<C-d>", "<C-d>zz", { silent = true })
+vim.keymap.set("n", "<C-u>", "<C-u>zz", { silent = true })
+
+vim.keymap.set("n", "<leader>-", "<cmd>vsp<CR>", { silent = true })
+vim.keymap.set("n", "<leader>'", "<cmd>sp<CR>", { silent = true })
+
+-- Bootstrap lazy.nvim
+local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
+if not (vim.uv or vim.loop).fs_stat(lazypath) then
+ local lazyrepo = "https://github.com/folke/lazy.nvim.git"
+ local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
+ if vim.v.shell_error ~= 0 then
+ vim.api.nvim_echo({
+ { "Failed to clone lazy.nvim:\n", "ErrorMsg" },
+ { out, "WarningMsg" },
+ { "\nPress any key to exit..." },
+ }, true, {})
+ vim.fn.getchar()
+ os.exit(1)
+ end
+end
+vim.opt.rtp:prepend(lazypath)
+
+require("lazy").setup({
+ spec = {
+ {
+ { import = "plugins" },
+ },
+ },
+})
+
+vim.keymap.set("t", "<Leader><Esc>", "<C-\\><C-n>")
diff --git a/dot_config/nvim/lazy-lock.json b/dot_config/nvim/lazy-lock.json
new file mode 100644
index 0000000..23855dc
--- /dev/null
+++ b/dot_config/nvim/lazy-lock.json
@@ -0,0 +1,22 @@
+{
+ "blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" },
+ "diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
+ "fidget.nvim": { "branch": "main", "commit": "889e2e96edef4e144965571d46f7a77bcc4d0ddf" },
+ "flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" },
+ "friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
+ "fzf-lua": { "branch": "main", "commit": "7b3a7390d01db93d422a4d6d6cf3771038577858" },
+ "gruvbox-material": { "branch": "master", "commit": "11d779b26a9ab2b3db8c22c6ac9fb6e8ed4fea79" },
+ "lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
+ "nvim-dap": { "branch": "master", "commit": "45a69eba683a2c448dd9ecfc4de89511f0646b5f" },
+ "nvim-dap-view": { "branch": "main", "commit": "dd43736f30ed70571a02e8c560ab69746ad7a1ed" },
+ "nvim-dap-virtual-text": { "branch": "master", "commit": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6" },
+ "nvim-lspconfig": { "branch": "master", "commit": "e146efacbafed3789ac568abcc5a981c5decaa58" },
+ "nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
+ "nvim-treesitter": { "branch": "main", "commit": "4916d6592ede8c07973490d9322f187e07dfefac" },
+ "nvim-treesitter-context": { "branch": "master", "commit": "b0c45cefe2c8f7b55fc46f34e563bc428ef99636" },
+ "nvim-web-devicons": { "branch": "master", "commit": "c72328a5494b4502947a022fe69c0c47e53b6aa6" },
+ "oil.nvim": { "branch": "master", "commit": "0fcc83805ad11cf714a949c98c605ed717e0b83e" },
+ "render-markdown.nvim": { "branch": "main", "commit": "d67113f11384c0dad96fced2f7b91f1fc811e97f" },
+ "rustaceanvim": { "branch": "master", "commit": "e9c5aaba16fead831379d5f44617547a90b913c7" },
+ "vim-tmux-navigator": { "branch": "master", "commit": "e41c431a0c7b7388ae7ba341f01a0d217eb3a432" }
+}
diff --git a/dot_config/nvim/lua/plugins/blink.lua b/dot_config/nvim/lua/plugins/blink.lua
new file mode 100644
index 0000000..3a03cde
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/blink.lua
@@ -0,0 +1,63 @@
+return {
+ "saghen/blink.cmp",
+ -- optional: provides snippets for the snippet source
+ dependencies = { "rafamadriz/friendly-snippets" },
+
+ -- use a release tag to download pre-built binaries
+ version = "*",
+ -- AND/OR build from source, requires nightly: https://rust-lang.github.io/rustup/concepts/channels.html#working-with-nightly-rust
+ -- build = 'cargo build --release',
+ -- If you use nix, you can build from source using latest nightly rust with:
+ -- build = 'nix run .#build-plugin',
+
+ ---@module 'blink.cmp'
+ ---@type blink.cmp.Config
+ opts = {
+ -- 'default' (recommended) for mappings similar to built-in completions (C-y to accept)
+ -- 'super-tab' for mappings similar to vscode (tab to accept)
+ -- 'enter' for enter to accept
+ -- 'none' for no mappings
+ --
+ -- All presets have the following mappings:
+ -- C-space: Open menu or open docs if already open
+ -- C-n/C-p or Up/Down: Select next/previous item
+ -- C-e: Hide menu
+ -- C-k: Toggle signature help (if signature.enabled = true)
+ --
+ -- See :h blink-cmp-config-keymap for defining your own keymap
+ keymap = {
+ preset = "super-tab",
+ },
+ signature = {
+ enabled = true,
+ },
+ appearance = {
+ -- 'mono' (default) for 'Nerd Font Mono' or 'normal' for 'Nerd Font'
+ -- Adjusts spacing to ensure icons are aligned
+ nerd_font_variant = "mono",
+ },
+ completion = {
+ documentation = {
+ auto_show = true,
+ auto_show_delay_ms = 200,
+ },
+ accept = {
+ auto_brackets = {enabled = true}
+ },
+ },
+
+ -- Default list of enabled providers defined so that you can extend it
+ -- elsewhere in your config, without redefining it, due to `opts_extend`
+ sources = {
+ default = { "lsp", "path", "snippets", "buffer" },
+ },
+
+ -- (Default) Rust fuzzy matcher for typo resistance and significantly better performance
+ -- You may use a lua implementation instead by using `implementation = "lua"` or fallback to the lua implementation,
+ -- when the Rust fuzzy matcher is not available, by using `implementation = "prefer_rust"`
+ --
+ -- See the fuzzy documentation for more information
+ fuzzy = { implementation = "prefer_rust_with_warning" },
+ },
+ opts_extend = { "sources.default" },
+}
diff --git a/dot_config/nvim/lua/plugins/dap.lua b/dot_config/nvim/lua/plugins/dap.lua
new file mode 100644
index 0000000..0299847
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/dap.lua
@@ -0,0 +1,150 @@
+return {
+ -- "rcarriga/nvim-dap-ui",
+ "igorlfs/nvim-dap-view",
+ dependencies = {
+ "mfussenegger/nvim-dap",
+ "nvim-neotest/nvim-nio",
+ { "theHamsta/nvim-dap-virtual-text", opts = {} },
+ },
+ keys = {
+ {
+ "<leader>dB",
+ function()
+ require("dap").set_breakpoint(vim.fn.input("Breakpoint condition: "))
+ end,
+ desc = "Breakpoint Condition",
+ },
+ {
+ "<leader>db",
+ function()
+ require("dap").toggle_breakpoint()
+ end,
+ desc = "Toggle Breakpoint",
+ },
+ {
+ "<leader>dc",
+ function()
+ require("dap").continue()
+ end,
+ desc = "Run/Continue",
+ },
+ {
+ "<leader>da",
+ function()
+ require("dap").continue({ before = get_args })
+ end,
+ desc = "Run with Args",
+ },
+ {
+ "<leader>dC",
+ function()
+ require("dap").run_to_cursor()
+ end,
+ desc = "Run to Cursor",
+ },
+ {
+ "<leader>dg",
+ function()
+ require("dap").goto_()
+ end,
+ desc = "Go to Line (No Execute)",
+ },
+ {
+ "<leader>di",
+ function()
+ require("dap").step_into()
+ end,
+ desc = "Step Into",
+ },
+ {
+ "<leader>dj",
+ function()
+ require("dap").down()
+ end,
+ desc = "Down",
+ },
+ {
+ "<leader>dk",
+ function()
+ require("dap").up()
+ end,
+ desc = "Up",
+ },
+ {
+ "<leader>dl",
+ function()
+ require("dap").run_last()
+ end,
+ desc = "Run Last",
+ },
+ {
+ "<leader>do",
+ function()
+ require("dap").step_out()
+ end,
+ desc = "Step Out",
+ },
+ {
+ "<leader>dO",
+ function()
+ require("dap").step_over()
+ end,
+ desc = "Step Over",
+ },
+ {
+ "<leader>dP",
+ function()
+ require("dap").pause()
+ end,
+ desc = "Pause",
+ },
+ {
+ "<leader>dr",
+ function()
+ require("dap").repl.toggle()
+ end,
+ desc = "Toggle REPL",
+ },
+ {
+ "<leader>ds",
+ function()
+ require("dap").session()
+ end,
+ desc = "Session",
+ },
+ {
+ "<leader>dt",
+ function()
+ require("dap").terminate()
+ end,
+ desc = "Terminate",
+ },
+ {
+ "<leader>dw",
+ function()
+ require("dap.ui.widgets").hover()
+ end,
+ desc = "Widgets",
+ },
+ },
+ config = function()
+ local dap = require("dap")
+ -- local dapui = require("dapui")
+ local dapui = require("dap-view")
+
+ dapui.setup()
+
+ dap.listeners.before.attach.dapui_config = function()
+ dapui.open()
+ end
+ dap.listeners.before.launch.dapui_config = function()
+ dapui.open()
+ end
+ dap.listeners.before.event_terminated.dapui_config = function()
+ dapui.close()
+ end
+ dap.listeners.before.event_exited.dapui_config = function()
+ dapui.close()
+ end
+ end,
+}
diff --git a/dot_config/nvim/lua/plugins/diffview.lua b/dot_config/nvim/lua/plugins/diffview.lua
new file mode 100644
index 0000000..aab3fd3
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/diffview.lua
@@ -0,0 +1,3 @@
+return {
+ "sindrets/diffview.nvim"
+}
diff --git a/dot_config/nvim/lua/plugins/fidget.lua b/dot_config/nvim/lua/plugins/fidget.lua
new file mode 100644
index 0000000..2d70394
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/fidget.lua
@@ -0,0 +1,6 @@
+return {
+ "j-hui/fidget.nvim",
+ opts = {
+ -- options
+ },
+}
diff --git a/dot_config/nvim/lua/plugins/flash.lua b/dot_config/nvim/lua/plugins/flash.lua
new file mode 100644
index 0000000..c3d267a
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/flash.lua
@@ -0,0 +1,14 @@
+return {
+ "folke/flash.nvim",
+ event = "VeryLazy",
+ ---@type Flash.Config
+ config = {},
+ -- stylua: ignore
+ keys = {
+ { "<Enter>", mode = { "n", "x", "o" }, function() require("flash").jump() end, desc = "Flash" },
+ { "<S-Enter>", mode = { "n", "x", "o" }, 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" },
+ { "<c-s>", mode = { "c" }, function() require("flash").toggle() end, desc = "Toggle Flash Search" },
+ },
+}
diff --git a/dot_config/nvim/lua/plugins/fzf.lua b/dot_config/nvim/lua/plugins/fzf.lua
new file mode 100644
index 0000000..78039d8
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/fzf.lua
@@ -0,0 +1,13 @@
+return {
+ "ibhagwan/fzf-lua",
+ lazy = false,
+ dependencies = { "nvim-tree/nvim-web-devicons" },
+ keys = {
+ { "<leader><leader>", "<cmd>FzfLua files<cr>" },
+ { "<tab>", "<cmd>FzfLua buffers<cr>" },
+ { "<leader>f", "<cmd>FzfLua live_grep<cr>" },
+ },
+ config = function()
+ require("fzf-lua").register_ui_select()
+ end,
+}
diff --git a/dot_config/nvim/lua/plugins/lsp.lua b/dot_config/nvim/lua/plugins/lsp.lua
new file mode 100644
index 0000000..cd9ff77
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/lsp.lua
@@ -0,0 +1,61 @@
+return {
+ "neovim/nvim-lspconfig",
+ config = function()
+ -- auto format
+ vim.cmd([[autocmd BufWritePre * lua vim.lsp.buf.format()]])
+
+ -- Global mappings.
+ -- See `:help vim.diagnostic.*` for documentation on any of the below functions
+ vim.keymap.set("n", "<leader>gm", vim.diagnostic.open_float)
+ vim.keymap.set("n", "[d", vim.diagnostic.goto_prev)
+ vim.keymap.set("n", "]d", vim.diagnostic.goto_next)
+ vim.keymap.set("n", "<leader>q", vim.diagnostic.setqflist)
+ vim.lsp.enable('clangd')
+
+ -- Use LspAttach autocommand to only map the following keys
+ -- after the language server attaches to the current buffer
+ vim.api.nvim_create_autocmd("LspAttach", {
+ group = vim.api.nvim_create_augroup("UserLspConfig", {}),
+ callback = function(ev)
+ -- Enable completion triggered by <c-x><c-o>
+ -- vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc'
+ -- Buffer local mappings.
+ -- See `:help vim.lsp.*` for documentation on any of the below functions
+ local opts = { buffer = ev.buf }
+ vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts)
+ vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts)
+ vim.keymap.set("n", "K", vim.lsp.buf.hover, opts)
+ vim.keymap.set("n", "gi", vim.lsp.buf.implementation, opts)
+ vim.keymap.set("n", "<C-k>", vim.lsp.buf.signature_help, opts)
+ vim.keymap.set("n", "<leader>wa", vim.lsp.buf.add_workspace_folder, opts)
+ vim.keymap.set("n", "<leader>wr", vim.lsp.buf.remove_workspace_folder, opts)
+ vim.keymap.set("n", "<leader>wl", function()
+ print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
+ end, opts)
+ vim.keymap.set("n", "<leader>D", vim.lsp.buf.type_definition, opts)
+ vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, opts)
+ vim.keymap.set("n", "<A-CR>", vim.lsp.buf.code_action, opts)
+ vim.keymap.set("n", "gr", vim.lsp.buf.references, opts)
+ vim.keymap.set("n", "<leader>f", function()
+ vim.lsp.buf.format({ async = true })
+ end, opts)
+ end,
+ vim.keymap.set("n", "<leader>i", function()
+ vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ 0 }), { 0 })
+ end, opts),
+ })
+
+ vim.diagnostic.config({
+ -- Use the default configuration
+ virtual_lines = true,
+
+ -- Alternatively, customize specific options
+ virtual_lines = {
+ -- Only show virtual line diagnostics for the current cursor line
+ current_line = true,
+ },
+ })
+ end,
+
+ vim.lsp.enable('tinymist'),
+}
diff --git a/dot_config/nvim/lua/plugins/markdown.lua b/dot_config/nvim/lua/plugins/markdown.lua
new file mode 100644
index 0000000..0dadc46
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/markdown.lua
@@ -0,0 +1,7 @@
+return {
+ "MeanderingProgrammer/render-markdown.nvim",
+ dependencies = { "nvim-treesitter/nvim-treesitter", "nvim-tree/nvim-web-devicons" }, -- if you prefer nvim-web-devicons
+ ---@module 'render-markdown'
+ ---@type render.md.UserConfig
+ opts = {},
+}
diff --git a/dot_config/nvim/lua/plugins/oil.lua b/dot_config/nvim/lua/plugins/oil.lua
new file mode 100644
index 0000000..cd3a83d
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/oil.lua
@@ -0,0 +1,20 @@
+return {
+ "stevearc/oil.nvim",
+ dependencies = {
+ "nvim-tree/nvim-web-devicons",
+ },
+keys = {
+ { "<leader>e", "<cmd>Oil<CR>"},
+ { "<leader>df", "<cmd>Oil ~/.config/nvim/<CR>"},
+},
+ opts = {
+ win_options = {
+ signcolumn = "yes:2",
+ },
+ view_options = {
+ -- Show files and directories that start with "."
+ show_hidden = true,
+ },
+ delete_to_trash = true,
+ }
+}
diff --git a/dot_config/nvim/lua/plugins/rustaceanvim.lua b/dot_config/nvim/lua/plugins/rustaceanvim.lua
new file mode 100644
index 0000000..72f1de5
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/rustaceanvim.lua
@@ -0,0 +1,30 @@
+return {
+ "mrcjkb/rustaceanvim",
+ version = "^5", -- Recommended
+ lazy = false, -- This plugin is already lazy
+ config = function()
+ vim.g.rustaceanvim = function()
+ -- Update this path
+ local extension_path = "/usr/lib/codelldb/"
+ local codelldb_path = extension_path .. "adapter/codelldb"
+ local liblldb_path = extension_path .. "lldb/lib/liblldb"
+ local this_os = vim.uv.os_uname().sysname
+
+ -- The path is different on Windows
+ if this_os:find("Windows") then
+ codelldb_path = extension_path .. "adapter\\codelldb.exe"
+ liblldb_path = extension_path .. "lldb\\bin\\liblldb.dll"
+ else
+ -- The liblldb extension is .so for Linux and .dylib for MacOS
+ liblldb_path = liblldb_path .. (this_os == "Linux" and ".so" or ".dylib")
+ end
+
+ local cfg = require("rustaceanvim.config")
+ return {
+ dap = {
+ adapter = cfg.get_codelldb_adapter(codelldb_path, liblldb_path),
+ },
+ }
+ end
+ end,
+}
diff --git a/dot_config/nvim/lua/plugins/theme.lua b/dot_config/nvim/lua/plugins/theme.lua
new file mode 100644
index 0000000..d682e12
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/theme.lua
@@ -0,0 +1,12 @@
+return {
+ "sainnhe/gruvbox-material",
+ lazy = false,
+ priority = 1000,
+ config = function()
+ -- Optionally configure and load the colorscheme
+ -- directly inside the plugin declaration.
+ vim.g.gruvbox_material_enable_italic = true
+ vim.g.gruvbox_material_transparent_background = 2
+ vim.cmd.colorscheme("gruvbox-material")
+ end,
+}
diff --git a/dot_config/nvim/lua/plugins/trash/autopairs.luaa b/dot_config/nvim/lua/plugins/trash/autopairs.luaa
new file mode 100644
index 0000000..2db00d8
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/trash/autopairs.luaa
@@ -0,0 +1,7 @@
+return {
+ 'windwp/nvim-autopairs',
+ event = "InsertEnter",
+ config = true
+ -- use opts = {} for passing setup options
+ -- this is equivalent to setup({}) function
+}
diff --git a/dot_config/nvim/lua/plugins/trash/crates.luaa b/dot_config/nvim/lua/plugins/trash/crates.luaa
new file mode 100644
index 0000000..f72a23f
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/trash/crates.luaa
@@ -0,0 +1,17 @@
+return {
+ "saecki/crates.nvim",
+ tag = "stable",
+ config = function()
+ require("crates").setup({
+ lsp = {
+ enabled = true,
+ on_attach = function(client, bufnr)
+ -- the same on_attach function as for your other lsp's
+ end,
+ actions = true,
+ completion = true,
+ hover = true,
+ },
+ })
+ end,
+}
diff --git a/dot_config/nvim/lua/plugins/trash/grapple.luaa b/dot_config/nvim/lua/plugins/trash/grapple.luaa
new file mode 100644
index 0000000..2d80958
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/trash/grapple.luaa
@@ -0,0 +1,14 @@
+return {
+ "cbochs/grapple.nvim",
+ opts = {
+ scope = "git", -- also try out "git_branch"
+ },
+ event = { "BufReadPost", "BufNewFile" },
+ cmd = "Grapple",
+ keys = {
+ { "<leader>m", "<cmd>Grapple toggle<cr>", desc = "Grapple tag" },
+ { "<leader>M", "<cmd>Grapple toggle_tags<cr>", desc = "Grapple open tags window" },
+ { "<leader>n", "<cmd>Grapple cycle_tags next<cr>", desc = "Grapple cycle next tag" },
+ { "<leader>p", "<cmd>Grapple cycle_tags prev<cr>", desc = "Grapple cycle previous tag" },
+ },
+}
diff --git a/dot_config/nvim/lua/plugins/trash/leetcode.luaa b/dot_config/nvim/lua/plugins/trash/leetcode.luaa
new file mode 100644
index 0000000..a057b2d
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/trash/leetcode.luaa
@@ -0,0 +1,12 @@
+return {
+ "kawre/leetcode.nvim",
+ build = ":TSUpdate html", -- if you have `nvim-treesitter` installed
+ dependencies = {
+ -- include a picker of your choice, see picker section for more details
+ "nvim-lua/plenary.nvim",
+ "MunifTanjim/nui.nvim",
+ },
+ opts = {
+ -- configuration goes here
+ },
+}
diff --git a/dot_config/nvim/lua/plugins/trash/mini-pairs.luaa b/dot_config/nvim/lua/plugins/trash/mini-pairs.luaa
new file mode 100644
index 0000000..ed48bfc
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/trash/mini-pairs.luaa
@@ -0,0 +1 @@
+return { 'echasnovski/mini.pairs', version = '*' , opts = {}}
diff --git a/dot_config/nvim/lua/plugins/trash/neck.luaa b/dot_config/nvim/lua/plugins/trash/neck.luaa
new file mode 100644
index 0000000..4b1eaf7
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/trash/neck.luaa
@@ -0,0 +1 @@
+return {"shortcuts/no-neck-pain.nvim", version = "*"}
diff --git a/dot_config/nvim/lua/plugins/trash/neogit.luaa b/dot_config/nvim/lua/plugins/trash/neogit.luaa
new file mode 100644
index 0000000..b44d866
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/trash/neogit.luaa
@@ -0,0 +1,9 @@
+return {
+ "NeogitOrg/neogit",
+ dependencies = {
+ "nvim-lua/plenary.nvim", -- required
+ "sindrets/diffview.nvim", -- optional - Diff integration
+ "ibhagwan/fzf-lua",
+ },
+ config = true,
+}
diff --git a/dot_config/nvim/lua/plugins/trash/neorg.luaa b/dot_config/nvim/lua/plugins/trash/neorg.luaa
new file mode 100644
index 0000000..abe7685
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/trash/neorg.luaa
@@ -0,0 +1,24 @@
+return {
+ "nvim-neorg/neorg",
+ lazy = false,
+ version = "*",
+ config = function()
+ require("neorg").setup {
+ load = {
+ ["core.defaults"] = {},
+ ["core.concealer"] = {},
+ ["core.dirman"] = {
+ config = {
+ workspaces = {
+ notes = "~/notes",
+ },
+ default_workspace = "notes",
+ },
+ },
+ },
+ }
+
+ vim.wo.foldlevel = 99
+ vim.wo.conceallevel = 2
+ end,
+ }
diff --git a/dot_config/nvim/lua/plugins/trash/neorg.luaaa b/dot_config/nvim/lua/plugins/trash/neorg.luaaa
new file mode 100644
index 0000000..abe7685
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/trash/neorg.luaaa
@@ -0,0 +1,24 @@
+return {
+ "nvim-neorg/neorg",
+ lazy = false,
+ version = "*",
+ config = function()
+ require("neorg").setup {
+ load = {
+ ["core.defaults"] = {},
+ ["core.concealer"] = {},
+ ["core.dirman"] = {
+ config = {
+ workspaces = {
+ notes = "~/notes",
+ },
+ default_workspace = "notes",
+ },
+ },
+ },
+ }
+
+ vim.wo.foldlevel = 99
+ vim.wo.conceallevel = 2
+ end,
+ }
diff --git a/dot_config/nvim/lua/plugins/trash/neotest.luaa b/dot_config/nvim/lua/plugins/trash/neotest.luaa
new file mode 100644
index 0000000..4b75efb
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/trash/neotest.luaa
@@ -0,0 +1,82 @@
+return {
+ "nvim-neotest/neotest",
+ dependencies = {
+ "nvim-neotest/nvim-nio",
+ "nvim-lua/plenary.nvim",
+ "antoinemadec/FixCursorHold.nvim",
+ "nvim-treesitter/nvim-treesitter",
+ },
+ keys = {
+ { "<leader>t", "", desc = "+test" },
+ {
+ "<leader>tt",
+ function()
+ require("neotest").run.run(vim.fn.expand("%"))
+ end,
+ desc = "Run File (Neotest)",
+ },
+ {
+ "<leader>tT",
+ function()
+ require("neotest").run.run(vim.uv.cwd())
+ end,
+ desc = "Run All Test Files (Neotest)",
+ },
+ {
+ "<leader>tr",
+ function()
+ require("neotest").run.run()
+ end,
+ desc = "Run Nearest (Neotest)",
+ },
+ {
+ "<leader>tl",
+ function()
+ require("neotest").run.run_last()
+ end,
+ desc = "Run Last (Neotest)",
+ },
+ {
+ "<leader>ts",
+ function()
+ require("neotest").summary.toggle()
+ end,
+ desc = "Toggle Summary (Neotest)",
+ },
+ {
+ "<leader>to",
+ function()
+ require("neotest").output.open({ enter = true, auto_close = true })
+ end,
+ desc = "Show Output (Neotest)",
+ },
+ {
+ "<leader>tO",
+ function()
+ require("neotest").output_panel.toggle()
+ end,
+ desc = "Toggle Output Panel (Neotest)",
+ },
+ {
+ "<leader>tS",
+ function()
+ require("neotest").run.stop()
+ end,
+ desc = "Stop (Neotest)",
+ },
+ {
+ "<leader>tw",
+ function()
+ require("neotest").watch.toggle(vim.fn.expand("%"))
+ end,
+ desc = "Toggle Watch (Neotest)",
+ },
+ },
+ config = function()
+ require("neotest").setup({
+ adapters = {
+ require("rustaceanvim.neotest"),
+ },
+ })
+ end,
+}
diff --git a/dot_config/nvim/lua/plugins/trash/noice.luaa b/dot_config/nvim/lua/plugins/trash/noice.luaa
new file mode 100644
index 0000000..99ad716
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/trash/noice.luaa
@@ -0,0 +1,23 @@
+return {
+ 'folke/noice.nvim',
+ dependencies = {'MunifTanjim/nui.nvim'},
+ event = "BufReadPost",
+ opts = {
+ lsp = {
+ progress = {
+ enabled = false,
+ },
+ override = {
+ ["vim.lsp.util.convert_input_to_markdown_lines"] = true,
+ ["vim.lsp.util.stylize_markdown"] = true,
+ ["cmp.entry.get_documentation"] = true,
+ },
+ },
+ presets = {
+ bottom_search = true,
+ command_palette = true,
+ long_message_to_split = false,
+ inc_rename = true,
+ },
+ },
+}
diff --git a/dot_config/nvim/lua/plugins/trash/nvim-surround.luaa b/dot_config/nvim/lua/plugins/trash/nvim-surround.luaa
new file mode 100644
index 0000000..c9bd7a2
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/trash/nvim-surround.luaa
@@ -0,0 +1,10 @@
+return {
+ 'kylechui/nvim-surround',
+ version = '*',
+ opts = {
+ keymaps = {
+ visual = "gS",
+ visual_line = "gS",
+ },
+ }
+}
diff --git a/dot_config/nvim/lua/plugins/trash/orgmode.luaa b/dot_config/nvim/lua/plugins/trash/orgmode.luaa
new file mode 100644
index 0000000..ff383ff
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/trash/orgmode.luaa
@@ -0,0 +1,19 @@
+return {
+ 'nvim-orgmode/orgmode',
+ event = 'VeryLazy',
+ ft = { 'org' },
+ config = function()
+ -- Setup orgmode
+ require('orgmode').setup({
+ org_agenda_files = '~/orgfiles/**/*',
+ org_default_notes_file = '~/orgfiles/refile.org',
+ })