nvim/lua/config/packages.lua
2025-05-08 19:00:45 +02:00

358 lines
9.5 KiB
Lua
Executable file

return {
{
"neovim/nvim-lspconfig",
dependencies = {
"williamboman/mason.nvim",
"williamboman/mason-lspconfig.nvim",
"j-hui/fidget.nvim",
"folke/neodev.nvim",
},
},
{
"ray-x/lsp_signature.nvim",
event = "BufRead",
config = function() require "lsp_signature".setup() end,
},
{
"hrsh7th/nvim-cmp",
dependencies = {
"hrsh7th/cmp-nvim-lsp",
"L3MON4D3/LuaSnip",
"saadparwaiz1/cmp_luasnip",
"hrsh7th/cmp-nvim-lua",
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-path",
"rafamadriz/friendly-snippets"
},
},
{
"jay-babu/mason-null-ls.nvim",
event = { "BufReadPre", "BufNewFile" },
dependencies = {
"williamboman/mason.nvim",
"nvimtools/none-ls.nvim",
},
config = function()
end,
},
{
"nvimtools/none-ls.nvim"
},
{
"OXY2DEV/markview.nvim",
lazy = false,
},
-- syntax highlighting
{
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate"
},
'nvim-treesitter/nvim-treesitter-context',
{
"nvim-treesitter/nvim-treesitter-textobjects",
dependencies = { "nvim-treesitter" },
},
-- fzf Telescope
{
"nvim-telescope/telescope.nvim",
branch = "0.1.x",
dependencies = {
"nvim-lua/plenary.nvim"
}
},
{
"nvim-telescope/telescope-fzf-native.nvim",
build = "make",
},
-- debugging
"mfussenegger/nvim-dap",
"jay-babu/mason-nvim-dap.nvim",
{
"rcarriga/nvim-dap-ui",
tag = "v4.0.0",
dependencies = {
"mfussenegger/nvim-dap",
"nvim-neotest/nvim-nio"
},
},
{ "theHamsta/nvim-dap-virtual-text", opts = {} },
"nvim-telescope/telescope-dap.nvim",
-- git
"lewis6991/gitsigns.nvim",
"echasnovski/mini.nvim",
{ 'kazhala/close-buffers.nvim', config = true },
"editorconfig/editorconfig-vim",
{ "nacro90/numb.nvim", opts = {} },
{ "kylechui/nvim-surround", opts = {} },
{
"phaazon/hop.nvim",
event = "BufRead",
opts = {}
},
{
"ThePrimeagen/harpoon",
branch = "harpoon2",
dependencies = { "nvim-lua/plenary.nvim" },
init = function()
local harpoon = require("harpoon")
harpoon:setup()
end
},
-- misc editing
"lambdalisue/suda.vim",
"tpope/vim-sleuth",
"mbbill/undotree",
{ "windwp/nvim-autopairs", opts = {} },
{
"mg979/vim-visual-multi",
config = function()
vim.cmd([[
let g:VM_leader='<Space>m'
let g:VM_maps['Find Under'] = '<C-m>'
]])
end
},
{
"windwp/nvim-ts-autotag",
opts = {
filetypes = { 'html', 'javascript', 'typescript', 'javascriptreact', 'typescriptreact', 'svelte', 'vue', 'tsx', 'jsx', 'rescript', 'xml', 'php', 'markdown', 'astro', 'glimmer', 'handlebars', 'hbs', "rust" },
},
},
{
"kevinhwang91/nvim-bqf",
event = { "BufRead", "BufNew" },
opts = {
auto_enable = true,
preview = {
win_height = 12,
win_vheight = 12,
delay_syntax = 80,
border_chars = { "", "", "", "", "", "", "", "", "" },
},
func_map = {
vsplit = "",
ptogglemode = "z,",
stoggleup = "",
},
filter = {
fzf = {
action_for = { ["ctrl-s"] = "split" },
extra_opts = { "--bind", "ctrl-o:toggle-all", "--prompt", "> " },
},
},
}
},
"nvim-tree/nvim-web-devicons",
{
"lukas-reineke/indent-blankline.nvim",
init = function()
require("ibl").setup({
indent = {
tab_char = "",
char = "",
},
})
end
},
{
"folke/which-key.nvim",
config = function()
local wk = require("which-key")
wk.setup {
-- popup_mappings = {
-- scroll_down = "<C-j>",
-- scroll_up = "<C-k>",
-- },
-- window = {
-- border = "single",
-- },
}
end
},
"rebelot/heirline.nvim",
{
"akinsho/toggleterm.nvim",
version = "*",
opts = {
direction = "float",
float_opts = {
border = "curved"
},
}
},
{
"karb94/neoscroll.nvim",
event = "WinScrolled",
opts = {
mappings = { "<C-u>", "<C-d>", "<C-b>", "<C-f>", "<C-y>", "<C-e>", "zt", "zz", "zb" },
hide_cursor = true,
stop_eof = true,
use_local_scrolloff = false,
respect_scrolloff = false,
cursor_scrolls_alone = true,
easing_function = nil,
pre_hook = nil,
post_hook = nil,
}
},
{
"folke/todo-comments.nvim",
event = "BufRead",
},
{ 'numToStr/Comment.nvim', opts = {} },
{
"SmiteshP/nvim-navbuddy",
dependencies = {
"neovim/nvim-lspconfig",
"SmiteshP/nvim-navic",
"MunifTanjim/nui.nvim",
"numToStr/Comment.nvim",
"nvim-telescope/telescope.nvim"
},
opts = {
window = { border = "rounded", },
}
},
{
"gelguy/wilder.nvim",
config = function()
-- local wilder = require("wilder")
-- wilder.setup({
-- modes = {":", "/", "?"},
-- })
-- wilder.set_option("renderer", wilder.popupmenu_renderer({
-- pumblend = 50,
-- }))
vim.cmd('call wilder#setup({"modes": [":", "/", "?"]})')
vim.cmd(
'call wilder#set_option("renderer", wilder#popupmenu_renderer({"highlighter": wilder#basic_highlighter(), "left": [ " ", wilder#popupmenu_devicons(), ], "right": [ " ", wilder#popupmenu_scrollbar(), ], "pumblend": 20}))')
vim.cmd(
'call wilder#set_option("renderer", wilder#popupmenu_renderer(wilder#popupmenu_border_theme({"highlighter": wilder#basic_highlighter(), "min_width": "100%", "min_height": "50%", "reverse": 0, "highlights": {"border": "Normal",},"border": "rounded"})))')
end,
},
{
"nvim-neo-tree/neo-tree.nvim",
branch = "v2.x",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-tree/nvim-web-devicons",
"MunifTanjim/nui.nvim",
},
},
-- lenguage specific
-- scala
{
"scalameta/nvim-metals",
dependencies = {
"nvim-lua/plenary.nvim",
},
ft = { "scala", "sbt", "java" },
opts = function()
local metals_config = require("metals").bare_config()
metals_config.on_attach = function(client, bufnr)
-- your on_attach function
end
return metals_config
end,
config = function(self, metals_config)
local nvim_metals_group = vim.api.nvim_create_augroup("nvim-metals", { clear = true })
vim.api.nvim_create_autocmd("FileType", {
pattern = self.ft,
callback = function()
require("metals").initialize_or_attach(metals_config)
end,
group = nvim_metals_group,
})
end
},
-- org
{
"nvim-orgmode/orgmode",
lazy = false,
dependencies = {
"nvim-treesitter/nvim-treesitter",
"hrsh7th/nvim-cmp",
},
config = function()
require("orgmode").setup({})
require('nvim-treesitter.configs').setup({
ensure_installed = 'all',
ignore_install = { 'org' },
})
end
},
{
"akinsho/org-bullets.nvim"
},
-- f#
{ "ionide/Ionide-vim" },
-- go
{ "joerdav/templ.vim" },
{
"ray-x/go.nvim",
dependencies = { -- optional packages
"ray-x/guihua.lua",
"neovim/nvim-lspconfig",
"nvim-treesitter/nvim-treesitter",
},
config = function()
require("go").setup()
end,
event = { "CmdlineEnter" },
ft = { "go", 'gomod' },
build = ':lua require("go.install").update_all_sync()' -- if you need to install/update all binaries
},
-- csv
'cameron-wags/rainbow_csv.nvim',
-- rust
{
"saecki/crates.nvim",
tag = "v0.3.0",
dependencies = {
"nvim-lua/plenary.nvim"
},
},
{
'mrcjkb/rustaceanvim',
version = '^5',
lazy = false,
},
-- diff
{
"julienvincent/hunk.nvim",
cmd = { "DiffEditor" },
config = function()
require("hunk").setup()
end,
},
-- slint
{ "slint-ui/vim-slint" },
-- zig
"ziglang/zig.vim",
-- glsl
"tikhomirov/vim-glsl",
-- java
"mfussenegger/nvim-jdtls",
-- latex
"lervag/vimtex",
"let-def/texpresso.vim",
-- themes
"xiyaowong/transparent.nvim",
"savq/melange-nvim",
}