2025-08-16 04:25:00 +06:00

193 lines
7.5 KiB
Lua

return {
{
"folke/snacks.nvim",
priority = 1000,
lazy = false,
---@type snacks.Config
opts = {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
explorer = {
enabled = true,
replace_netrw = true,
},
picker = {
enabled = true,
},
matcher = {
cwd_bonus = true,
ignorecase = true, -- use ignorecase
filename_bonus = true, -- give bonus for matching file names (last part of the path)
frecency = true, -- frecency bonus
history_bonus = true,
},
},
init = function ()
local snacks = require('snacks')
vim.keymap.set('n', '<leader>e', function ()
snacks.picker.explorer()
end, { noremap = true, silent = true })
vim.keymap.set('n', '<leader>f', snacks.picker.files, { noremap = true, silent = true })
vim.keymap.set('n', '<leader>g', snacks.picker.grep, { noremap = true, silent = true })
end
},
{
'romgrk/barbar.nvim',
dependencies = {
'lewis6991/gitsigns.nvim', -- OPTIONAL: for git status
'nvim-tree/nvim-web-devicons', -- OPTIONAL: for file icons
},
init = function() vim.g.barbar_auto_setup = false end,
opts = {
animation = true,
sidebar_filetypes = {
['snacks_picker_list'] = true
}
},
version = '^1.0.0', -- optional: only update when a new 1.x version is released
},
{
"voldikss/vim-floaterm",
init = function ()
vim.g.floaterm_giteditor = false
vim.keymap.set('n', '<leader>cw', '<cmd>:FloatermNew git commit<cr>', { noremap = true, silent = true })
end
},
{
"folke/tokyonight.nvim",
lazy = false,
priority = 1000,
opts = {},
init = function ()
vim.cmd[[colorscheme tokyonight-night]]
-- show column for character limit 80
-- isn't directly related to colorscheme,
-- but related to colorscheme colors
vim.cmd[[hi ColorColumn ctermbg=lightgrey guibg=#20303b]]
vim.cmd[[set colorcolumn=80]]
end
},
{
"folke/zen-mode.nvim",
opts = {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
window = {
backdrop = 0.65,
},
},
},
{
"folke/twilight.nvim",
opts = {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
}
},
-- {
-- "ggandor/leap.nvim",
-- opts = {},
-- },
-- {
-- 'smoka7/hop.nvim',
-- version = "*",
-- opts = {
-- keys = 'etovxqpdygfblzhckisuran'
-- },
-- init = function ()
-- vim.keymap.set('n', 'f', require('hop').hint_words, { noremap = true, silent = true })
-- end
-- },
{
"folke/flash.nvim",
event = "VeryLazy",
---@type Flash.Config
opts = {},
-- stylua: ignore
keys = {
-- { "f", mode = { "n", "x", "o" }, function() require("flash").jump() end, desc = "Flash" },
-- { "F", mode = { "n", "x", "o" }, function() require("flash").treesitter() end, desc = "Flash Treesitter" },
-- { "r", mode = "n", function() require("flash").remote() end, desc = "Remote Flash" },
-- { "R", mode = { "n", "x" }, function() require("flash").treesitter_search() end, desc = "Treesitter Search" },
-- { "<c-s>", mode = { "c" }, function() require("flash").toggle() end, desc = "Toggle Flash Search" },
{ "r", mode = "n", function() require("flash").remote() end, desc = "Remote Flash" },
{ "R", mode = { "n", "x" }, function() require("flash").treesitter_search() end, desc = "Treesitter Search" },
},
},
{
'stevearc/oil.nvim',
---@module 'oil'
---@type oil.SetupOpts
opts = {},
-- Optional dependencies
dependencies = { { "echasnovski/mini.icons", opts = {} } },
-- dependencies = { "nvim-tree/nvim-web-devicons" }, -- use if you prefer nvim-web-devicons
-- Lazy loading is not recommended because it is very tricky to make it work correctly in all situations.
lazy = false,
},
{
"folke/noice.nvim",
event = "VeryLazy",
opts = {
-- add any options here
messages = {
enabled = false,
},
},
dependencies = {
-- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
"MunifTanjim/nui.nvim",
-- OPTIONAL:
-- `nvim-notify` is only needed, if you want to use the notification view.
-- If not available, we use `mini` as the fallback
"rcarriga/nvim-notify",
}
},
{
"Isrothy/neominimap.nvim",
version = "v3.x.x",
lazy = false, -- NOTE: NO NEED to Lazy load
-- Optional. You can alse set your own keybindings
keys = {
-- Global Minimap Controls
{ "<leader>mm", "<cmd>Neominimap Toggle<cr>", desc = "Toggle global minimap" },
-- { "<leader>no", "<cmd>Neominimap Enable<cr>", desc = "Enable global minimap" },
-- { "<leader>nc", "<cmd>Neominimap Disable<cr>", desc = "Disable global minimap" },
-- { "<leader>nr", "<cmd>Neominimap Refresh<cr>", desc = "Refresh global minimap" },
-- Window-Specific Minimap Controls
{ "<leader>nwt", "<cmd>Neominimap WinToggle<cr>", desc = "Toggle minimap for current window" },
{ "<leader>nwr", "<cmd>Neominimap WinRefresh<cr>", desc = "Refresh minimap for current window" },
{ "<leader>nwo", "<cmd>Neominimap WinEnable<cr>", desc = "Enable minimap for current window" },
{ "<leader>nwc", "<cmd>Neominimap WinDisable<cr>", desc = "Disable minimap for current window" },
-- Tab-Specific Minimap Controls
{ "<leader>ntt", "<cmd>Neominimap TabToggle<cr>", desc = "Toggle minimap for current tab" },
{ "<leader>ntr", "<cmd>Neominimap TabRefresh<cr>", desc = "Refresh minimap for current tab" },
{ "<leader>nto", "<cmd>Neominimap TabEnable<cr>", desc = "Enable minimap for current tab" },
{ "<leader>ntc", "<cmd>Neominimap TabDisable<cr>", desc = "Disable minimap for current tab" },
-- Buffer-Specific Minimap Controls
{ "<leader>nbt", "<cmd>Neominimap BufToggle<cr>", desc = "Toggle minimap for current buffer" },
{ "<leader>nbr", "<cmd>Neominimap BufRefresh<cr>", desc = "Refresh minimap for current buffer" },
{ "<leader>nbo", "<cmd>Neominimap BufEnable<cr>", desc = "Enable minimap for current buffer" },
{ "<leader>nbc", "<cmd>Neominimap BufDisable<cr>", desc = "Disable minimap for current buffer" },
---Focus Controls
{ "<leader>nf", "<cmd>Neominimap Focus<cr>", desc = "Focus on minimap" },
{ "<leader>nu", "<cmd>Neominimap Unfocus<cr>", desc = "Unfocus minimap" },
{ "<leader>ns", "<cmd>Neominimap ToggleFocus<cr>", desc = "Switch focus on minimap" },
},
init = function()
-- The following options are recommended when layout == "float"
vim.opt.wrap = false
vim.opt.sidescrolloff = 36 -- Set a large value
--- Put your configuration here
---@type Neominimap.UserConfig
vim.g.neominimap = {
auto_enable = false,
}
end,
},
}