diff options
| author | venomade <venomade@venomade.com> | 2026-02-16 17:31:16 +0000 |
|---|---|---|
| committer | venomade <venomade@venomade.com> | 2026-02-16 17:31:16 +0000 |
| commit | a568a964fd6a9efba388b2b4919339c0b7dfe51d (patch) | |
| tree | 0c6adbf753de1c0b469e911668a82c6b2002f5f8 /config/nvim/lua/plugins | |
| parent | 9d2c3f898a97de16b986d4e494f31e6c6f3d176a (diff) | |
Asahi is just not perfectly usable yet. Moved stuff, went nix.
Diffstat (limited to 'config/nvim/lua/plugins')
| -rw-r--r-- | config/nvim/lua/plugins/autopairs.lua | 8 | ||||
| -rw-r--r-- | config/nvim/lua/plugins/cmp.lua | 99 | ||||
| -rw-r--r-- | config/nvim/lua/plugins/colorizer.lua | 15 | ||||
| -rw-r--r-- | config/nvim/lua/plugins/compile.lua | 20 | ||||
| -rw-r--r-- | config/nvim/lua/plugins/image.lua | 20 | ||||
| -rw-r--r-- | config/nvim/lua/plugins/lastplace.lua | 7 | ||||
| -rw-r--r-- | config/nvim/lua/plugins/lazygit.lua | 20 | ||||
| -rw-r--r-- | config/nvim/lua/plugins/lualine.lua | 38 | ||||
| -rw-r--r-- | config/nvim/lua/plugins/modus-themes.lua | 13 | ||||
| -rw-r--r-- | config/nvim/lua/plugins/oil.lua | 28 | ||||
| -rw-r--r-- | config/nvim/lua/plugins/rainbow-delimiters.lua | 6 | ||||
| -rw-r--r-- | config/nvim/lua/plugins/render-markdown.lua | 111 | ||||
| -rw-r--r-- | config/nvim/lua/plugins/scratch-buffer.lua | 11 | ||||
| -rw-r--r-- | config/nvim/lua/plugins/telescope.lua | 40 | ||||
| -rw-r--r-- | config/nvim/lua/plugins/todo-comments.lua | 14 | ||||
| -rw-r--r-- | config/nvim/lua/plugins/ui.lua | 27 | ||||
| -rw-r--r-- | config/nvim/lua/plugins/zk.lua | 26 |
17 files changed, 503 insertions, 0 deletions
diff --git a/config/nvim/lua/plugins/autopairs.lua b/config/nvim/lua/plugins/autopairs.lua new file mode 100644 index 0000000..c37e301 --- /dev/null +++ b/config/nvim/lua/plugins/autopairs.lua @@ -0,0 +1,8 @@ +return { + "windwp/nvim-autopairs", + config = function() + require("nvim-autopairs").setup({ + disable_filetype = { "TelescopePrompt" , "vim" } + }) + end, +} diff --git a/config/nvim/lua/plugins/cmp.lua b/config/nvim/lua/plugins/cmp.lua new file mode 100644 index 0000000..69a2396 --- /dev/null +++ b/config/nvim/lua/plugins/cmp.lua @@ -0,0 +1,99 @@ +return { + 'hrsh7th/nvim-cmp', + dependencies = { + 'neovim/nvim-lspconfig', + 'hrsh7th/cmp-nvim-lsp', + 'hrsh7th/cmp-buffer', + 'hrsh7th/cmp-path', + 'lukas-reineke/cmp-rg', + 'onsails/lspkind.nvim' + }, + config = function() + local cmp = require('cmp') + local lspkind = require('lspkind') + cmp.setup({ + -- preselect = cmp.PreselectMode.None, + completion = { + completeopt = "menu,menuone,noinsert", + callSnippet = "Replace", + keywordSnippet = "Replace", + }, + window = { + completion = cmp.config.window.bordered({}), + documentation = cmp.config.window.bordered({}), + }, + snippet = { + expand = function(arg) + vim.snippet.expand(arg.body) + end + }, + mapping = cmp.mapping.preset.insert({ + ['<Tab>'] = cmp.mapping.confirm({ select = true }), + ['<C-n>'] = cmp.mapping.select_next_item(), + ['<C-p>'] = cmp.mapping.select_prev_item(), + ['<C-g>'] = cmp.mapping.abort(), + }), + sources = cmp.config.sources( + { + { name = 'nvim_lsp' }, + }, + { + { name = 'path' }, + } + -- { + -- { name = 'buffer' }, + -- { name = 'rg', keyword_length = 3 } + -- } + ), + formatting = { + format = lspkind.cmp_format({ + mode = 'symbol' + }) + }, + -- view = { + -- entries = 'native' + -- }, + }) + + local capabilities = require('cmp_nvim_lsp').default_capabilities() + vim.lsp.config('lua_ls', { + -- cmd = { '/home/venomade/.local/share/lua-language-server/bin/lua-language-server' }, + capabilities = capabilities, + root_markers = { + ".luarc.json", + ".luarc.jsonc", + ".git", + }, + settings = { + Lua = { + runtime = { + version = 'Lua 5.4', + path = vim.list_extend( + vim.split(package.path, ';'), + { + '?.lua', + '?/init.lua', + './stubs/?.lua', + './stubs/?/init.lua' + }), + }, + workspace = { + library = { + vim.env.HOME .. '/.luarocks/share/lua/5.4', + './stubs' + }, + }, + diagnostics = { + enable = true, + }, + }, + }, + }) + + vim.lsp.enable('lua_ls') + vim.lsp.config('clangd', { + capabilities = capabilities + }) + vim.lsp.enable('clangd') + end +} diff --git a/config/nvim/lua/plugins/colorizer.lua b/config/nvim/lua/plugins/colorizer.lua new file mode 100644 index 0000000..460eb5c --- /dev/null +++ b/config/nvim/lua/plugins/colorizer.lua @@ -0,0 +1,15 @@ +return { + 'norcalli/nvim-colorizer.lua', + config = function() + require("colorizer").setup({ "*" }, { + RGB = true, + RRGGBB = true, + names = false, + RRGGBBAA = true, + rgb_fn = true, + hsl_fn = true, + css = false, + css_fn = false, + }) + end +} diff --git a/config/nvim/lua/plugins/compile.lua b/config/nvim/lua/plugins/compile.lua new file mode 100644 index 0000000..8d824de --- /dev/null +++ b/config/nvim/lua/plugins/compile.lua @@ -0,0 +1,20 @@ +return { + "ej-shafran/compile-mode.nvim", + branch = "latest", + dependencies = { + "nvim-lua/plenary.nvim", + }, + config = function() + vim.g.compile_mode = {} + + local compile_mode = require("compile-mode") + + vim.keymap.set("n", "<leader>cc", compile_mode.compile, + { desc = "Compile" }) + vim.keymap.set("n", "<leader>cr", compile_mode.recompile, + { desc = "Recompile" }) + vim.keymap.set("n", "<leader>cq", compile_mode.interrupt, + { desc = "Quit Compile (Interrupt)" }) + + end +} diff --git a/config/nvim/lua/plugins/image.lua b/config/nvim/lua/plugins/image.lua new file mode 100644 index 0000000..32c3540 --- /dev/null +++ b/config/nvim/lua/plugins/image.lua @@ -0,0 +1,20 @@ +return { + '3rd/image.nvim', + config = function() + require("image").setup({ + backend = "sixel", + processor = "magick_cli", + integrations = { + markdown = { + enabled = true, + only_render_image_at_cursor = true, + only_render_image_at_cursor_mode = "popup", -- or "inline" + floating_windows = true, -- if true, images will be rendered in floating markdown windows + }, + }, + window_overlap_clear_ft_ignore = { "cmp_menu", "cmp_docs" }, + editor_only_render_when_focused = true, -- auto show/hide images when the editor gains/looses focus + }) + end + +} diff --git a/config/nvim/lua/plugins/lastplace.lua b/config/nvim/lua/plugins/lastplace.lua new file mode 100644 index 0000000..a393a90 --- /dev/null +++ b/config/nvim/lua/plugins/lastplace.lua @@ -0,0 +1,7 @@ +return { + 'ethanholz/nvim-lastplace', + config = function() + require'nvim-lastplace'.setup({}) + end +} + diff --git a/config/nvim/lua/plugins/lazygit.lua b/config/nvim/lua/plugins/lazygit.lua new file mode 100644 index 0000000..f9ddc84 --- /dev/null +++ b/config/nvim/lua/plugins/lazygit.lua @@ -0,0 +1,20 @@ +return { + "kdheepak/lazygit.nvim", + lazy = true, + cmd = { + "LazyGit", + "LazyGitConfig", + "LazyGitCurrentFile", + "LazyGitFilter", + "LazyGitFilterCurrentFile", + }, + -- optional for floating window border decoration + dependencies = { + "nvim-lua/plenary.nvim", + }, + -- setting the keybinding for LazyGit with 'keys' is recommended in + -- order to load the plugin when the command is run for the first time + keys = { + { "<leader>g", "<cmd>LazyGit<cr>", desc = "LazyGit" } + } +} diff --git a/config/nvim/lua/plugins/lualine.lua b/config/nvim/lua/plugins/lualine.lua new file mode 100644 index 0000000..5412061 --- /dev/null +++ b/config/nvim/lua/plugins/lualine.lua @@ -0,0 +1,38 @@ +return { + "nvim-lualine/lualine.nvim", + dependencies = { 'nvim-tree/nvim-web-devicons' }, + config = function() + require("lualine").setup({ + options = { + icons_enabled = true, + component_separators = { left = '|', right = '|'}, + section_separators = { left = '', right = ''}, + theme = { + normal = { + a = { bg = '#000000' }, + b = { bg = '#000000' }, + c = { bg = '#000000' }, + }, + inactive = { + a = { bg = '#000000' }, + b = { bg = '#000000' }, + c = { bg = '#000000' }, + } + }, + }, + sections = { + lualine_a = {"mode", { + "filetype", + icon_only = true, + separator = "", + padding = { right = 0, left = 1 }, + }, "filename" }, + lualine_b = {}, + lualine_c = {}, + lualine_x = {"diagnostics"}, + lualine_y = {}, + lualine_z = {} + } + }) + end, +} diff --git a/config/nvim/lua/plugins/modus-themes.lua b/config/nvim/lua/plugins/modus-themes.lua new file mode 100644 index 0000000..3058078 --- /dev/null +++ b/config/nvim/lua/plugins/modus-themes.lua @@ -0,0 +1,13 @@ +return { + "miikanissi/modus-themes.nvim", + priority = 1000, + config = function () + require("modus-themes").setup({ + style = "modus_vivendi", + sign_column_background = false, + line_nr_column_background = false, + }) + vim.cmd.colorscheme("modus") + end +} + diff --git a/config/nvim/lua/plugins/oil.lua b/config/nvim/lua/plugins/oil.lua new file mode 100644 index 0000000..3eb396d --- /dev/null +++ b/config/nvim/lua/plugins/oil.lua @@ -0,0 +1,28 @@ +return { + 'stevearc/oil.nvim', + dependencies = { "nvim-tree/nvim-web-devicons" }, + config = function() + + function _G.get_oil_winbar() + local bufnr = vim.api.nvim_win_get_buf(vim.g.statusline_winid) + local dir = require("oil").get_current_dir(bufnr) + if dir then + return vim.fn.fnamemodify(dir, ":~") + else + -- If there is no current directory (e.g. over ssh), just show the buffer name + return vim.api.nvim_buf_get_name(0) + end + end + + require('oil').setup({ + win_options = { + winbar = "%!v:lua.get_oil_winbar()", + }, + view_options = { + show_hidden = true + } + }) + vim.keymap.set('n', '-', '<CMD>Oil<CR>', {desc = "Open Dir in Oil"}) + end, + lazy = false, +} diff --git a/config/nvim/lua/plugins/rainbow-delimiters.lua b/config/nvim/lua/plugins/rainbow-delimiters.lua new file mode 100644 index 0000000..9fe4a06 --- /dev/null +++ b/config/nvim/lua/plugins/rainbow-delimiters.lua @@ -0,0 +1,6 @@ +return { + "hiphish/rainbow-delimiters.nvim", + config = function() + require('rainbow-delimiters.setup').setup({}) + end, +} diff --git a/config/nvim/lua/plugins/render-markdown.lua b/config/nvim/lua/plugins/render-markdown.lua new file mode 100644 index 0000000..9d52c5b --- /dev/null +++ b/config/nvim/lua/plugins/render-markdown.lua @@ -0,0 +1,111 @@ +return { + 'MeanderingProgrammer/render-markdown.nvim', + dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' }, + config = function() + require('render-markdown').setup({ + link = { + enabled = true, + render_modes = false, + footnote = { + enabled = true, + superscript = true, + prefix = '', + suffix = '', + }, + image = ' ', + email = ' ', + hyperlink = ' ', + highlight = 'RenderMarkdownLink', + wiki = { + icon = ' ', + body = function() + return nil + end, + highlight = 'RenderMarkdownWikiLink', + }, + custom = { + web = { pattern = '^http', icon = ' ' }, + github = { pattern = 'github%.com', icon = ' ' }, + stackoverflow = { pattern = 'stackoverflow%.com', icon = ' ' }, + wikipedia = { pattern = 'wikipedia%.org', icon = ' ' }, + youtube = { pattern = 'youtube%.com', icon = ' ' }, + reddit = { pattern = 'reddit%.com', icon = ' ' }, + old_reddit = { pattern = 'old.reddit%.com', icon = ' ' }, + gvc = { pattern = 'git%.venomade%.com', icon = ' ' }, + catechism = { pattern = 'ccc%.directory', icon = ' ' }, + bible = { pattern = 'biblenow%.net', icon = ' ' }, + luarocks = { pattern = 'luarocks%.org', icon = ' ' }, + }, + }, + callout = { + note = { raw = '[!NOTE]', rendered = ' Note', highlight = 'RenderMarkdownInfo' }, + tip = { raw = '[!TIP]', rendered = ' Tip', highlight = 'RenderMarkdownSuccess' }, + important = { raw = '[!IMPORTANT]', rendered = ' Important', highlight = 'RenderMarkdownHint' }, + warning = { raw = '[!WARNING]', rendered = ' Warning', highlight = 'RenderMarkdownWarn' }, + caution = { raw = '[!CAUTION]', rendered = ' Caution', highlight = 'RenderMarkdownError' }, + abstract = { raw = '[!ABSTRACT]', rendered = ' Abstract', highlight = 'RenderMarkdownInfo' }, + summary = { raw = '[!SUMMARY]', rendered = ' Summary', highlight = 'RenderMarkdownInfo' }, + tldr = { raw = '[!TLDR]', rendered = ' Tldr', highlight = 'RenderMarkdownInfo' }, + info = { raw = '[!INFO]', rendered = ' Info', highlight = 'RenderMarkdownInfo' }, + todo = { raw = '[!TODO]', rendered = ' Todo', highlight = 'RenderMarkdownInfo' }, + hint = { raw = '[!HINT]', rendered = ' Hint', highlight = 'RenderMarkdownSuccess' }, + success = { raw = '[!SUCCESS]', rendered = ' Success', highlight = 'RenderMarkdownSuccess' }, + check = { raw = '[!CHECK]', rendered = ' Check', highlight = 'RenderMarkdownSuccess' }, + done = { raw = '[!DONE]', rendered = ' Done', highlight = 'RenderMarkdownSuccess' }, + question = { raw = '[!QUESTION]', rendered = ' Question', highlight = 'RenderMarkdownWarn' }, + help = { raw = '[!HELP]', rendered = ' Help', highlight = 'RenderMarkdownWarn' }, + faq = { raw = '[!FAQ]', rendered = ' Faq', highlight = 'RenderMarkdownWarn' }, + attention = { raw = '[!ATTENTION]', rendered = ' Attention', highlight = 'RenderMarkdownWarn' }, + failure = { raw = '[!FAILURE]', rendered = ' Failure', highlight = 'RenderMarkdownError' }, + fail = { raw = '[!FAIL]', rendered = ' Fail', highlight = 'RenderMarkdownError' }, + missing = { raw = '[!MISSING]', rendered = ' Missing', highlight = 'RenderMarkdownError' }, + danger = { raw = '[!DANGER]', rendered = ' Danger', highlight = 'RenderMarkdownError' }, + error = { raw = '[!ERROR]', rendered = ' Error', highlight = 'RenderMarkdownError' }, + bug = { raw = '[!BUG]', rendered = ' Bug', highlight = 'RenderMarkdownError' }, + example = { raw = '[!EXAMPLE]', rendered = ' Example', highlight = 'RenderMarkdownHint' }, + quote = { raw = '[!QUOTE]', rendered = ' Quote', highlight = 'RenderMarkdownQuote' }, + cite = { raw = '[!CITE]', rendered = ' Cite', highlight = 'RenderMarkdownQuote' }, + }, + checkbox = { + enabled = true, + render_modes = false, + bullet = false, + right_pad = 1, + unchecked = { + icon = ' ', + highlight = 'RenderMarkdownUnchecked', + scope_highlight = nil, + }, + checked = { + icon = ' ', + highlight = 'RenderMarkdownChecked', + scope_highlight = nil, + }, + custom = { + todo = { raw = '[-]', rendered = ' ', highlight = 'RenderMarkdownTodo', scope_highlight = nil }, + }, + }, + bullet = { + enabled = true, + render_modes = false, + icons = { '●', '○', '◆', '◇' }, + ordered_icons = function(ctx) + local value = vim.trim(ctx.value) + local index = tonumber(value:sub(1, #value - 1)) + return ('%d.'):format(index > 1 and index or ctx.index) + end, + left_pad = 0, + right_pad = 0, + highlight = 'RenderMarkdownBullet', + scope_highlight = {}, + }, + quote = { icon = '▋' }, + anti_conceal = { + enabled = false, + }, + heading = { + width = 'block', + } + }) + end +} diff --git a/config/nvim/lua/plugins/scratch-buffer.lua b/config/nvim/lua/plugins/scratch-buffer.lua new file mode 100644 index 0000000..a6526ab --- /dev/null +++ b/config/nvim/lua/plugins/scratch-buffer.lua @@ -0,0 +1,11 @@ +return { + 'miguelcrespo/scratch-buffer.nvim', + event = 'VimEnter', + config = function() + require('scratch-buffer').setup() + end, + dependencies = { + -- Recommended if you want interactive evaluation + "Olical/conjure" + } +} diff --git a/config/nvim/lua/plugins/telescope.lua b/config/nvim/lua/plugins/telescope.lua new file mode 100644 index 0000000..e761994 --- /dev/null +++ b/config/nvim/lua/plugins/telescope.lua @@ -0,0 +1,40 @@ +return { + "nvim-telescope/telescope.nvim", + dependencies = { "nvim-lua/plenary.nvim" }, + config = function() + require("telescope").setup({ + defaults = { + borderchars = { "─", "│", "─", "│", "┌", "┐", "┘", "└" }, + }, + }) + + local tscope = require('telescope.builtin') + vim.keymap.set("n", "<leader>ff", function() + local cwd + if vim.bo.filetype == "oil" then + cwd = require("oil").get_current_dir() + else + cwd = vim.fn.expand("%:p:h") + end + tscope.find_files({ cwd = cwd }) + end, { desc = "Find File" }) + + vim.keymap.set("n", "<leader>fp", function() + tscope.find_files({ + cwd = vim.loop.cwd(), + }) + end, { desc = "Find Project File" }) + vim.keymap.set('n', '<leader>bb', tscope.buffers, + { desc = "Find Buffer" }) + vim.keymap.set('n', '<leader>fh', tscope.help_tags, + { desc = "Find Help" }) + vim.keymap.set('n', '<leader>fg', tscope.live_grep, + { desc = "Find by Grep" }) + vim.keymap.set('n', '<leader>fr', tscope.oldfiles, + { desc = "Find Recent Files" }) + vim.keymap.set('n', '<leader>lw', tscope.diagnostics, + { desc = "Search Diagnostics" }) + vim.keymap.set('n', '<leader>lg', tscope.lsp_references, + { desc = "Search References" }) + end, +} diff --git a/config/nvim/lua/plugins/todo-comments.lua b/config/nvim/lua/plugins/todo-comments.lua new file mode 100644 index 0000000..69f907e --- /dev/null +++ b/config/nvim/lua/plugins/todo-comments.lua @@ -0,0 +1,14 @@ +return { + "folke/todo-comments.nvim", + dependencies = { "nvim-lua/plenary.nvim" }, + opts = { + + }, + config = function() + require('todo-comments').setup({}) + vim.keymap.set('n', '<leader>ft', function() + vim.cmd('TodoTelescope') + end, + { desc = "Find Buffer" }) + end, +} diff --git a/config/nvim/lua/plugins/ui.lua b/config/nvim/lua/plugins/ui.lua new file mode 100644 index 0000000..5df6f44 --- /dev/null +++ b/config/nvim/lua/plugins/ui.lua @@ -0,0 +1,27 @@ +return { + "OXY2DEV/ui.nvim", + lazy = false, + config = function() + require("ui").setup({ + cmdline = { + enable = true, + row_offset = 0, + }, + messages = { + enable = true, + }, + popupmenu = { + enable = false, + }, + }); + + local spec = require("ui.spec") + + spec.config.message.showcmd.modifier = function(_, lines) + return { + lines = { "" }, + extmarks = { {} }, + } + end + end, +}; diff --git a/config/nvim/lua/plugins/zk.lua b/config/nvim/lua/plugins/zk.lua new file mode 100644 index 0000000..ce2e11a --- /dev/null +++ b/config/nvim/lua/plugins/zk.lua @@ -0,0 +1,26 @@ +return { + "zk-org/zk-nvim", + lazy = false, + config = function() + require("zk").setup({ + picker = "telescope", + lsp = { + config = { + name = "zk", + cmd = { "zk", "lsp" }, + filetypes = { "markdown" }, + }, + auto_attach = { + enabled = true, + }, + }, + }) + end, + keys = { + { "<leader>zz", "<cmd>ZkNotes<cr>", desc = "Notes" }, + { "<leader>zl", "<cmd>ZkLinks<cr>", desc = "Links" }, + { "<leader>zb", "<cmd>ZkBacklinks<cr>", desc = "Backlinks" }, + { "<leader>zi", "<cmd>ZkInsertLink<cr>", desc = "Insert Link" }, + { "<leader>zd", "<cmd>ZkCd<cr>", desc = "Enter Directory" }, + } +} |
