Files
nvim/lua/plugins/init.lua

221 lines
5.7 KiB
Lua

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", "<leader>mp", ":MarkdownPreview<CR>", { noremap = true, silent = true })
vim.api.nvim_set_keymap("n", "<leader>ms", ":MarkdownPreviewStop<CR>", { noremap = true, silent = true })
vim.api.nvim_set_keymap("n", "<leader>gl", ":Neogit<CR>", { 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", "<localleader>ll", vim.cmd.VimtexCompile, { desc = "VimtexCompile" })
km("n", "<localleader>lv", vim.cmd.VimtexView, { desc = "VimtexView" })
km("n", "<localleader>lc", vim.cmd.VimtexCompileSS, { desc = "VimtexCompileSS" })
km("n", "<localleader>le", vim.cmd.VimtexErrors, { desc = "VimtexErrors" })
km("n", "<localleader>lo", vim.cmd.VimtexOutput, { desc = "VimtexOutput" })
km("n", "<localleader>ls", vim.cmd.VimtexStop, { desc = "VimtexStop" })
km("n", "<localleader>lS", vim.cmd.VimtexStopAll, { desc = "VimtexStopAll" })
km("n", "<localleader>li", vim.cmd.VimtexInfo, { desc = "VimtexInfo" })
km("n", "<localleader>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 = {
["<a-a>"] = { "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" }, "<leader>ct", function()
o().toggle()
end, { desc = "Opencode: Toggle panel" })
vim.keymap.set({ "n", "x" }, "<leader>ca", function()
o().ask("@this: ", { submit = true })
end, { desc = "Opencode: Ask selection" })
vim.keymap.set({ "n", "x" }, "<leader>ce", function()
o().select()
end, { desc = "Opencode: Execute action" })
vim.keymap.set({ "n", "x" }, "<leader>cs", function()
return o().operator "@this "
end, { expr = true, desc = "Opencode: Send selection" })
vim.keymap.set("n", "<leader>cl", function()
return o().operator "@this " .. "_"
end, { expr = true, desc = "Opencode: Send line" })
vim.keymap.set("n", "<leader>cu", function()
o().command "session.half.page.up"
end, { desc = "Opencode: Scroll up" })
vim.keymap.set("n", "<leader>cd", function()
o().command "session.half.page.down"
end, { desc = "Opencode: Scroll down" })
end,
},
}