return { { "stevearc/conform.nvim", -- event = "BufWritePre", opts = require "configs.conform", }, { "neovim/nvim-lspconfig", config = function() require "configs.lspconfig" end, }, { import = "nvchad.blink.lazyspec" }, { "nvim-treesitter/nvim-treesitter", opts = { ensure_installed = { "vim", "lua", "vimdoc", "html", "css", "tsx", "jsx", "rust", "vue", "svelte", }, }, }, { "windwp/nvim-ts-autotag", lazy = false, config = function() require("nvim-ts-autotag").setup { opts = { enable_close = true, enable_rename = true, enable_close_on_slash = false, }, } end, }, { "NeogitOrg/neogit", dependencies = { "nvim-lua/plenary.nvim", -- required "nvim-telescope/telescope.nvim", -- optional "sindrets/diffview.nvim", -- optional "ibhagwan/fzf-lua", -- optional }, config = true, lazy = false, }, { "iamcco/markdown-preview.nvim", cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" }, build = "cd app && yarn install", init = function() vim.g.mkdp_filetypes = { "markdown" } vim.api.nvim_set_keymap("n", "mp", ":MarkdownPreview", { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "ms", ":MarkdownPreviewStop", { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "gl", ":Neogit", { noremap = true, silent = true }) end, ft = { "markdown" }, }, { "mg979/vim-visual-multi", lazy = false, }, { "sourcegraph/sg.nvim", dependencies = { "nvim-lua/plenary.nvim", }, build = "nvim -l build/init.lua", lazy = false, }, { "ThePrimeagen/vim-be-good", lazy = false, }, { "andweeb/presence.nvim", lazy = false, config = function() require("presence").setup { -- General options auto_update = true, neovim_image_text = "The One True Text Editor", main_image = "neovim", log_level = nil, debounce_timeout = 10, enable_line_number = false, blacklist = {}, buttons = true, file_assets = {}, show_time = true, -- Rich Presence text options editing_text = "Editing %s", file_explorer_text = "Browsing %s", git_commit_text = "Committing changes", plugin_manager_text = "Managing plugins", reading_text = "Reading %s", workspace_text = "Working on %s", line_number_text = "Line %s out of %s", } end, }, { "lervag/vimtex", lazy = false, init = function() vim.g.vimtex_view_method = "zathura_simple" vim.g.vimtex_compiler_latexmk = { out_dir = "build", options = { "-pdf", "-shell-escape", "-verbose", "-file-line-error", "-synctex=1", }, } -- Mappings local km = vim.keymap.set km("n", "ll", vim.cmd.VimtexCompile, { desc = "VimtexCompile" }) km("n", "lv", vim.cmd.VimtexView, { desc = "VimtexView" }) km("n", "lc", vim.cmd.VimtexCompileSS, { desc = "VimtexCompileSS" }) km("n", "le", vim.cmd.VimtexErrors, { desc = "VimtexErrors" }) km("n", "lo", vim.cmd.VimtexOutput, { desc = "VimtexOutput" }) km("n", "ls", vim.cmd.VimtexStop, { desc = "VimtexStop" }) km("n", "lS", vim.cmd.VimtexStopAll, { desc = "VimtexStopAll" }) km("n", "li", vim.cmd.VimtexInfo, { desc = "VimtexInfo" }) km("n", "lT", vim.cmd.VimtexTocOpen, { desc = "VimtexTocOpen" }) end, }, { "github/copilot.vim", lazy = false, }, { "nickjvandyke/opencode.nvim", version = "*", -- Latest stable release lazy = false, dependencies = { { "folke/snacks.nvim", optional = true, opts = { input = {}, -- Enhances `ask()` picker = { -- Enhances `select()` actions = { opencode_send = function(...) return require("opencode").snacks_picker_send(...) end, }, win = { input = { keys = { [""] = { "opencode_send", mode = { "n", "i" } }, }, }, }, }, }, }, }, config = function() ---@type opencode.Opts vim.g.opencode_opts = {} vim.o.autoread = true -- Required for `opts.events.reload` local o = function() return require "opencode" end vim.keymap.set({ "n", "t" }, "ct", function() o().toggle() end, { desc = "Opencode: Toggle panel" }) vim.keymap.set({ "n", "x" }, "ca", function() o().ask("@this: ", { submit = true }) end, { desc = "Opencode: Ask selection" }) vim.keymap.set({ "n", "x" }, "ce", function() o().select() end, { desc = "Opencode: Execute action" }) vim.keymap.set({ "n", "x" }, "cs", function() return o().operator "@this " end, { expr = true, desc = "Opencode: Send selection" }) vim.keymap.set("n", "cl", function() return o().operator "@this " .. "_" end, { expr = true, desc = "Opencode: Send line" }) vim.keymap.set("n", "cu", function() o().command "session.half.page.up" end, { desc = "Opencode: Scroll up" }) vim.keymap.set("n", "cd", function() o().command "session.half.page.down" end, { desc = "Opencode: Scroll down" }) end, }, { "3rd/image.nvim", event = "VeryLazy", opts = { backend = "ueberzug", max_width = 600, max_height = 72, max_height_window_percentage = math.huge, max_width_window_percentage = math.huge, window_overlap_clear_enabled = true, window_overlap_clear_ft_ignore = { "cmp_menu", "cmp_docs", "" }, }, }, }