dotfiles/nvim/lua/plugins/init.lua

232 lines
5.4 KiB
Lua

return {
{
"stevearc/conform.nvim",
event = "BufWritePre", -- uncomment for format on save
opts = require("configs.conform"),
},
-- These are some examples, uncomment them if you want to see them work!
{
"neovim/nvim-lspconfig",
config = function()
require("configs.lspconfig")
end,
},
{
"nvim-treesitter/nvim-treesitter",
opts = {
ensure_installed = {
"vim",
"lua",
"vimdoc",
"html",
"css",
"python",
"typescript",
"go",
"terraform",
},
},
},
{
"tpope/vim-fugitive",
cmd = { "Git", "G", "Gdiffsplit", "Gvdiffsplit", "Gwrite", "Gread", "Ggrep", "GMove", "GDelete", "GBrowse" },
keys = {
{ "<leader>gs", "<cmd>vertical Git<cr>" },
desc = "Open Fugitive",
},
opts = {
enabled = true,
},
dependencies = {
"tpope/vim-rhubarb",
},
},
{ "tpope/vim-rhubarb", opts = { enabled = true } },
{
"folke/zen-mode.nvim",
cmd = "ZenMode",
opts = {
plugins = {
kitty = {
enabled = true,
font = "+4",
},
},
},
},
{
"folke/trouble.nvim",
opts = {
auto_close = true,
auto_open = false,
warn_no_results = false,
modes = {
symbols = { -- Configure symbols mode
win = {
type = "split", -- split window
relative = "win", -- relative to current window
position = "left", -- right side
size = 0.20, -- 30% of the window
},
},
diagnostics = {
win = {
type = "split",
relative = "win",
position = "bottom",
size = 0.30,
},
},
lsp = { -- Configure LSP references mode
win = {
type = "split", -- split window
relative = "win", -- relative to current window
position = "right", -- appear below
size = 0.25, -- 25% of the window height
},
},
preview = {
mode = "diagnostics",
preview = {
type = "split",
relative = "win",
position = "right",
size = 0.3,
},
},
preview_float = {
mode = "diagnostics",
preview = {
type = "float",
relative = "editor",
border = "rounded",
title = "Preview",
title_pos = "center",
position = { 0, -2 },
size = { width = 0.3, height = 0.5 },
zindex = 200,
},
},
},
}, -- for default options, refer to the configuration section for custom setup.
cmd = "Trouble",
keys = {
{
"<leader>xx",
"<cmd>Trouble preview toggle<cr>",
desc = "Diagnostics (Trouble)",
},
{
"<leader>xX",
"<cmd>Trouble diagnostics toggle filter.buf=0<cr>",
desc = "Buffer Diagnostics (Trouble)",
},
{
"<leader>cs",
"<cmd>Trouble symbols toggle focus=false<cr>",
desc = "Symbols (Trouble)",
},
{
"<leader>cl",
"<cmd>Trouble lsp toggle focus=false<cr>",
desc = "LSP Definitions / references / ... (Trouble)",
},
{
"<leader>xL",
"<cmd>Trouble loclist toggle<cr>",
desc = "Location List (Trouble)",
},
{
"<leader>xQ",
"<cmd>Trouble qflist toggle<cr>",
desc = "Quickfix List (Trouble)",
},
},
},
{
"folke/noice.nvim",
event = "VeryLazy",
opts = {
lsp = {
-- override markdown rendering so that **cmp** and other plugins use **Treesitter**
override = {
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
["vim.lsp.util.stylize_markdown"] = true,
["cmp.entry.get_documentation"] = true, -- requires hrsh7th/nvim-cmp
},
},
-- you can enable a preset for easier configuration
presets = {
bottom_search = true, -- use a classic bottom cmdline for search
command_palette = true, -- position the cmdline and popupmenu together
long_message_to_split = true, -- long messages will be sent to a split
inc_rename = false, -- enables an input dialog for inc-rename.nvim
lsp_doc_border = false, -- add a border to hover docs and signature help
},
},
},
{
"knubie/vim-kitty-navigator",
enabled = true,
lazy = false,
build = {
"cp ./*.py ~/.config/kitty/",
},
},
{
"gfontenot/vim-xcode",
enabled = true,
},
{
"yetone/avante.nvim",
event = "VeryLazy",
lazy = false,
version = false, -- set this to "*" if you want to always pull the latest change, false to update on release
opts = require("configs.avante"),
-- if you want to build from source then do `make BUILD_FROM_SOURCE=true`
build = "make",
-- build = "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false" -- for windows
dependencies = {
"stevearc/dressing.nvim",
"nvim-lua/plenary.nvim",
"MunifTanjim/nui.nvim",
--- The below dependencies are optional,
"hrsh7th/nvim-cmp", -- autocompletion for avante commands and mentions
"nvim-tree/nvim-web-devicons", -- or echasnovski/mini.icons
"zbirenbaum/copilot.lua", -- for providers='copilot'
{
-- support for image pasting
"HakonHarnes/img-clip.nvim",
event = "VeryLazy",
opts = {
-- recommended settings
default = {
embed_image_as_base64 = false,
prompt_for_file_name = false,
drag_and_drop = {
insert_mode = true,
},
-- required for Windows users
use_absolute_path = true,
},
},
},
{
-- Make sure to set this up properly if you have lazy=true
"MeanderingProgrammer/render-markdown.nvim",
opts = {
file_types = { "markdown", "Avante" },
},
ft = { "markdown", "Avante" },
},
},
},
{
"folke/edgy.nvim",
event = "VeryLazy",
enabled = false,
opts = require("configs.edgy"),
},
}