nvim/lua/core/plugins.lua
2025-02-15 01:17:09 -08:00

355 lines
9.0 KiB
Lua

local lsp_dev = {}
vim.cmd([[packadd packer.nvim]])
require("packer").startup(function(use)
use("wbthomason/packer.nvim")
use("nvim-lua/plenary.nvim")
use({
"nvim-treesitter/nvim-treesitter",
run = function()
require("nvim-treesitter.install").update({ with_sync = true })
end,
})
use({ "nvim-treesitter/nvim-treesitter-context" })
use({
"kndndrj/nvim-dbee",
requires = {
"MunifTanjim/nui.nvim",
},
run = function()
-- Install tries to automatically detect the install method.
-- if it fails, try calling it with one of these parameters:
-- "curl", "wget", "bitsadmin", "go"
require("dbee").install()
end,
config = function()
require("dbee").setup( --[[optional config]])
end,
})
-- TELESCOPE {{{
use({ "nvim-telescope/telescope.nvim" })
use({ "nvim-telescope/telescope-file-browser.nvim" })
use("nvim-telescope/telescope-dap.nvim")
use({ "ghassan0/telescope-glyph.nvim" })
use({ "nat-418/telescope-color-names.nvim" })
use({
"nvim-telescope/telescope-fzf-native.nvim",
run = "cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build",
})
-- }}}
-- LSP/DEV {{{
use({
"zbirenbaum/copilot.lua",
cmd = "Copilot",
event = "InsertEnter",
config = function()
require("copilot").setup({
panel = {
enabled = true,
auto_refresh = false,
keymap = {
jump_prev = "[[",
jump_next = "]]",
accept = "<CR>",
refresh = "gr",
open = "<M-CR>",
},
layout = {
position = "bottom", -- | top | left | right | horizontal | vertical
ratio = 0.4,
},
},
suggestion = {
enabled = false,
auto_trigger = false,
hide_during_completion = true,
debounce = 75,
keymap = {
accept = "<M-l>",
accept_word = false,
accept_line = false,
next = "<M-]>",
prev = "<M-[>",
dismiss = "<C-]>",
},
},
-- filetypes = {
-- yaml = false,
-- markdown = false,
-- help = false,
-- gitcommit = false,
-- gitrebase = false,
-- hgcommit = false,
-- svn = false,
-- cvs = false,
-- ["."] = false,
-- },
copilot_node_command = "node", -- Node.js version must be > 18.x
server_opts_overrides = {
trace = "verbose",
settings = {
advanced = {
listCount = 10, -- #completions for panel
inlineSuggestCount = 3, -- #completions for getCompletions
},
},
},
})
end,
})
use({ "zbirenbaum/copilot-cmp" })
use({
"olimorris/codecompanion.nvim",
requires = {
"nvim-lua/plenary.nvim",
"nvim-treesitter/nvim-treesitter",
"j-hui/fidget.nvim",
},
init = function()
require("plugins.codecompanion.fidget-spinner"):init()
end,
})
use({
"iamcco/markdown-preview.nvim",
run = function()
vim.fn["mkdp#util#install"]()
end,
})
use({
"L3MON4D3/LuaSnip",
-- tag = "v2.*",
run = "make install_jsregexp",
dependencies = { "rafamadriz/friendly-snippets" },
})
use({ "folke/neodev.nvim" })
use({ "saadparwaiz1/cmp_luasnip" })
use({ "hrsh7th/cmp-buffer" })
use({ "hrsh7th/cmp-cmdline" })
use({ "hrsh7th/cmp-nvim-lsp" })
use({ "hrsh7th/cmp-nvim-lsp-document-symbol" })
use({ "hrsh7th/cmp-nvim-lsp-signature-help" })
use({ "hrsh7th/cmp-nvim-lua" })
use({ "hrsh7th/cmp-path" })
use({ "hrsh7th/nvim-cmp" })
use({ "https://git.sr.ht/~whynothugo/lsp_lines.nvim" })
-- use { 'jose-elias-alvarez/null-ls.nvim' }
use({ "nvimtools/none-ls.nvim" })
use({ "neovim/nvim-lspconfig" })
use({ "onsails/lspkind-nvim" })
use({
"https://git.sr.ht/~nedia/auto-format.nvim",
config = function()
require("auto-format").setup()
end,
})
use("mfussenegger/nvim-lint")
use("nvim-neotest/nvim-nio")
-- }}}
-- DADBOD {{{
-- use { 'tpope/vim-dadbod' }
-- use { 'kristijanhusak/vim-dadbod-ui' }
-- use { 'kristijanhusak/vim-dadbod-completion' }
-- }}}
-- UI {{{
use({ "akinsho/toggleterm.nvim", tag = "*" })
use({ "HiPhish/rainbow-delimiters.nvim" })
use({
"lukas-reineke/indent-blankline.nvim",
})
--{{{ DASHBOARD
use({
"nvimdev/dashboard-nvim",
event = "VimEnter",
config = function()
require("dashboard").setup({
theme = "hyper",
config = {
week_header = {
enable = true,
},
shortcut = {
{ desc = "󰊳 Update", group = "@property", action = "Lazy update", key = "u" },
{
icon = "",
icon_hl = "@variable",
desc = "Files",
group = "Label",
action = "Telescope find_files",
key = "f",
},
{
desc = " Apps",
group = "DiagnosticHint",
action = "Telescope app",
key = "a",
},
{
desc = " dotfiles",
group = "Number",
action = "Telescope ~/.config",
key = "d",
},
},
},
})
end,
requires = { "nvim-tree/nvim-web-devicons" },
})
--}}}
use({
"j-hui/fidget.nvim",
tag = "legacy",
config = function()
require("fidget").setup({
-- options
})
end,
})
use({
"nvim-lualine/lualine.nvim",
requires = { "kyazdani42/nvim-web-devicons", opt = true },
})
use({ "AndreM222/copilot-lualine" })
use({ "kyazdani42/nvim-web-devicons" })
use({ "norcalli/nvim-colorizer.lua" })
use({ "akinsho/nvim-bufferline.lua" })
use({ "andweeb/presence.nvim" })
use({ "folke/which-key.nvim" })
use({ "kyazdani42/nvim-tree.lua" })
use({ "lewis6991/gitsigns.nvim" })
use({ "rcarriga/nvim-notify" })
use({ "stevearc/dressing.nvim" })
use({ "echasnovski/mini.nvim" })
use({
"windwp/nvim-autopairs",
event = "InsertEnter",
config = function()
local npairs = require("nvim-autopairs")
local Rule = require("nvim-autopairs.rule")
local cmp_autopairs = require("nvim-autopairs.completion.cmp")
local cmp = require("cmp")
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done())
npairs.setup({
disable_filetype = { "TelescopePrompt", "spectre_panel", "Terminal", "terminal" },
check_ts = true,
ts_config = {
lua = { "string" }, -- it will not add a pair on that treesitter node
javascript = { "template_string" },
java = false, -- don't check treesitter on java
},
})
local ts_conds = require("nvim-autopairs.ts-conds")
-- press % => %% only while inside a comment or string
npairs.add_rules({
Rule("%", "%", "lua"):with_pair(ts_conds.is_ts_node({ "string", "comment" })),
Rule("$", "$", "lua"):with_pair(ts_conds.is_not_ts_node({ "function" })),
})
end,
})
-- }}}
-- EXTRAS {{{
use({
"nvim-neorg/neorg",
-- tag = "*",
ft = "norg",
after = "nvim-treesitter", -- You may want to specify Telescope here as well
config = function()
require("neorg").setup({
load = {
["core.defaults"] = {}, -- Loads default behaviour
["core.concealer"] = {}, -- Adds pretty icons to your documents
["core.completion"] = { config = { engine = "nvim-cmp" } }, -- Adds completion
["core.dirman"] = { -- Manages Neorg workspaces
config = { workspaces = { notes = "~/notes" } },
},
},
})
end,
})
use("pechorin/any-jump.vim")
use("tpope/vim-commentary")
use("tpope/vim-dotenv")
use("tpope/vim-surround")
-- use 'voldikss/vim-floaterm'
use("wakatime/vim-wakatime")
use("rmagatti/goto-preview")
-- }}}
-- COLORSCHEMES {{{
use({ "Mofiqul/dracula.nvim" })
-- use({
-- 'NTBBloodbath/doom-one.nvim',
-- setup = function()
-- -- Add color to cursor
-- vim.g.doom_one_cursor_coloring = false
-- -- Set :terminal colors
-- vim.g.doom_one_terminal_colors = true
-- -- Enable italic comments
-- vim.g.doom_one_italic_comments = false
-- -- Enable TS support
-- vim.g.doom_one_enable_treesitter = true
-- -- Color whole diagnostic text or only underline
-- vim.g.doom_one_diagnostics_text_color = false
-- -- Enable transparent background
-- vim.g.doom_one_transparent_background = false
-- -- Pumblend transparency
-- vim.g.doom_one_pumblend_enable = false
-- vim.g.doom_one_pumblend_transparency = 20
-- -- Plugins integration
-- vim.g.doom_one_plugin_neorg = true
-- vim.g.doom_one_plugin_barbar = false
-- vim.g.doom_one_plugin_telescope = true
-- vim.g.doom_one_plugin_neogit = true
-- vim.g.doom_one_plugin_nvim_tree = true
-- vim.g.doom_one_plugin_dashboard = true
-- vim.g.doom_one_plugin_startify = true
-- vim.g.doom_one_plugin_whichkey = true
-- vim.g.doom_one_plugin_indent_blankline = true
-- vim.g.doom_one_plugin_vim_illuminate = false
-- vim.g.doom_one_plugin_lspsaga = false
-- end
-- config = function()
-- vim.cmd("colorscheme doom-one")
-- vim.cmd(
-- "highlight Pmenu ctermfg=white ctermbg=black gui=NONE guifg=white guibg=#282C34")
-- vim.cmd("highlight PmenuSel guifg=purple guibg=red")
-- end
-- })
use({ "olimorris/onedarkpro.nvim" })
use({
"catppuccin/nvim",
as = "catppuccin",
config = function()
vim.cmd("colorscheme catppuccin-macchiato")
end,
})
-- }}}
end)