323 lines
10 KiB
Lua
323 lines
10 KiB
Lua
return {
|
|
|
|
{
|
|
'nvim-lua/plenary.nvim',
|
|
-- event = 'VeryLazy',
|
|
lazy = true,
|
|
},
|
|
|
|
{
|
|
"sindrets/diffview.nvim",
|
|
event = 'VeryLazy',
|
|
},
|
|
|
|
{
|
|
'windwp/nvim-autopairs',
|
|
event = "InsertEnter",
|
|
config = true
|
|
-- use opts = {} for passing setup options
|
|
-- this is equivalent to setup({}) function
|
|
},
|
|
|
|
{
|
|
"NeogitOrg/neogit",
|
|
lazy = true,
|
|
dependencies = {
|
|
"nvim-lua/plenary.nvim", -- required
|
|
"sindrets/diffview.nvim", -- optional - Diff integration
|
|
|
|
-- Only one of these is needed.
|
|
"nvim-telescope/telescope.nvim", -- optional
|
|
-- "ibhagwan/fzf-lua", -- optional
|
|
-- "echasnovski/mini.pick", -- optional
|
|
-- "folke/snacks.nvim", -- optional
|
|
},
|
|
},
|
|
|
|
{
|
|
'brenoprata10/nvim-highlight-colors',
|
|
event = 'VeryLazy',
|
|
opts = {
|
|
render = 'virtual',
|
|
},
|
|
},
|
|
|
|
{
|
|
'ggandor/leap.nvim',
|
|
dependencies = {
|
|
'tpope/vim-repeat',
|
|
},
|
|
},
|
|
|
|
{
|
|
'LukasPietzschmann/telescope-tabs',
|
|
-- event = 'VeryLazy',
|
|
lazy = true,
|
|
branch = 'vim_ui_select',
|
|
dependencies = {
|
|
'nvim-telescope/telescope.nvim',
|
|
},
|
|
config = function()
|
|
require('telescope-tabs').setup()
|
|
end
|
|
},
|
|
|
|
{
|
|
"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
|
|
bigfile = { enabled = true },
|
|
-- dashboard = { enabled = true },
|
|
dim = { enabled = true },
|
|
-- explorer = { enabled = true },
|
|
-- git = { enabled = false },
|
|
image = {
|
|
enabled = true
|
|
},
|
|
indent = { enabled = true },
|
|
input = { enabled = true },
|
|
lazygit = { enabled = false },
|
|
picker = {
|
|
enabled = true,
|
|
layout = {
|
|
preset = 'ivy_split',
|
|
layout = {
|
|
height = 0.3,
|
|
},
|
|
},
|
|
},
|
|
notifier = { enabled = true },
|
|
-- quickfile = { enabled = true },
|
|
-- scope = { enabled = true },
|
|
-- scroll = { enabled = true },
|
|
terminal = { enabled = false },
|
|
-- statuscolumn = { enabled = true },
|
|
-- words = { enabled = true },
|
|
},
|
|
},
|
|
|
|
{
|
|
'echasnovski/mini.nvim',
|
|
config = function()
|
|
require('mini.starter').setup()
|
|
-- require('mini.cursorword').setup()
|
|
local miniclue = require'mini.clue'
|
|
miniclue.setup{
|
|
window = {
|
|
delay = 0,
|
|
config = {
|
|
width = 'auto',
|
|
},
|
|
},
|
|
triggers = {
|
|
-- Leader triggers
|
|
{ mode = 'n', keys = '<Leader>' },
|
|
{ mode = 'x', keys = '<Leader>' },
|
|
|
|
-- Built-in completion
|
|
{ mode = 'i', keys = '<C-x>' },
|
|
|
|
-- `g` key
|
|
{ mode = 'n', keys = 'g' },
|
|
{ mode = 'x', keys = 'g' },
|
|
|
|
-- Next
|
|
{ mode = 'n', keys = '['},
|
|
{ mode = 'n', keys = ']'},
|
|
{ mode = 'x', keys = '['},
|
|
{ mode = 'x', keys = ']'},
|
|
|
|
-- Marks
|
|
{ mode = 'n', keys = "'" },
|
|
{ mode = 'n', keys = '`' },
|
|
{ mode = 'x', keys = "'" },
|
|
{ mode = 'x', keys = '`' },
|
|
|
|
-- Registers
|
|
{ mode = 'n', keys = '"' },
|
|
{ mode = 'x', keys = '"' },
|
|
{ mode = 'i', keys = '<C-r>' },
|
|
{ mode = 'c', keys = '<C-r>' },
|
|
|
|
-- Window commands
|
|
{ mode = 'n', keys = '<C-w>' },
|
|
|
|
-- `z` key
|
|
{ mode = 'n', keys = 'z' },
|
|
{ mode = 'x', keys = 'z' },
|
|
},
|
|
|
|
clues = {
|
|
-- Enhance this by adding descriptions for <Leader> mapping groups
|
|
miniclue.gen_clues.builtin_completion(),
|
|
miniclue.gen_clues.g(),
|
|
miniclue.gen_clues.marks(),
|
|
miniclue.gen_clues.registers(),
|
|
miniclue.gen_clues.windows(),
|
|
miniclue.gen_clues.z(),
|
|
|
|
{ mode = 'n', keys = '<leader>f', desc = '+Find' },
|
|
{ mode = 'x', keys = '<leader>f', desc = '+Find' },
|
|
|
|
{ mode = 'n', keys = '<leader>o', desc = '+Open' },
|
|
{ mode = 'x', keys = '<leader>o', desc = '+Open' },
|
|
|
|
{ mode = 'n', keys = '<leader>g', desc = '+Git' },
|
|
{ mode = 'x', keys = '<leader>g', desc = '+Git' },
|
|
},
|
|
}
|
|
end
|
|
},
|
|
|
|
{
|
|
'stevearc/oil.nvim',
|
|
---@module 'oil'
|
|
---@type oil.SetupOpts
|
|
opts = {
|
|
triggers = {
|
|
{ 'g', mode = { 'n', 'x' } },
|
|
},
|
|
},
|
|
-- Optional dependencies
|
|
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,
|
|
},
|
|
|
|
{
|
|
'eandrju/cellular-automaton.nvim',
|
|
-- event = 'VeryLazy',
|
|
cmd = 'CellularAutomaton',
|
|
},
|
|
|
|
{
|
|
"kylechui/nvim-surround",
|
|
version = "^3.0.0", -- Use for stability; omit to use `main` branch for the latest features
|
|
event = "VeryLazy",
|
|
config = function()
|
|
require("nvim-surround").setup({
|
|
-- Configuration here, or leave empty to use defaults
|
|
})
|
|
end
|
|
},
|
|
|
|
{
|
|
'jbyuki/nabla.nvim',
|
|
lazy = true,
|
|
},
|
|
|
|
{
|
|
'krady21/compiler-explorer.nvim',
|
|
-- event = 'VeryLazy',
|
|
cmd = {
|
|
'CECompile',
|
|
'CECompileLive',
|
|
'CEFormat',
|
|
'CEAddLibrary',
|
|
'CELoadExample',
|
|
'CEOpenWebsite',
|
|
'CEDeleteCache',
|
|
'CEShowTooltip',
|
|
'CEGotoLabel',
|
|
},
|
|
opts = {
|
|
autocmd = {
|
|
enable = true,
|
|
hl = 'Cursorline',
|
|
},
|
|
}
|
|
},
|
|
|
|
{
|
|
'samjwill/nvim-unception',
|
|
event = 'VeryLazy',
|
|
},
|
|
|
|
-- {
|
|
-- "jake-stewart/multicursor.nvim",
|
|
-- branch = "1.0",
|
|
-- config = function()
|
|
-- local mc = require("multicursor-nvim")
|
|
-- mc.setup()
|
|
--
|
|
-- local set = vim.keymap.set
|
|
--
|
|
-- -- Add or skip cursor above/below the main cursor.
|
|
-- set({"n", "x"}, "<up>", function() mc.lineAddCursor(-1) end)
|
|
-- set({"n", "x"}, "<down>", function() mc.lineAddCursor(1) end)
|
|
-- -- set({"n", "x"}, "<leader><up>", function() mc.lineSkipCursor(-1) end)
|
|
-- -- set({"n", "x"}, "<leader><down>", function() mc.lineSkipCursor(1) end)
|
|
--
|
|
-- -- Add or skip adding a new cursor by matching word/selection
|
|
-- -- set({"n", "x"}, "<leader>n", function() mc.matchAddCursor(1) end)
|
|
-- -- set({"n", "x"}, "<leader>s", function() mc.matchSkipCursor(1) end)
|
|
-- -- set({"n", "x"}, "<leader>N", function() mc.matchAddCursor(-1) end)
|
|
-- -- set({"n", "x"}, "<leader>S", function() mc.matchSkipCursor(-1) end)
|
|
--
|
|
-- -- Add cursor at next argument treesitter
|
|
-- set({'n', 'x'}, ']A', function()
|
|
-- if vim.v.count < 1 then
|
|
-- mc.addCursor(']a')
|
|
-- else
|
|
-- for i=1, vim.v.count - 1 do
|
|
-- mc.addCursor(']a')
|
|
-- end
|
|
-- end
|
|
-- end, { desc = 'Create multicursor on next argument'})
|
|
-- set({'n', 'x'}, '[A', function()
|
|
-- if vim.v.count < 1 then
|
|
-- mc.addCursor('[a')
|
|
-- else
|
|
-- for i=1, vim.v.count - 1 do
|
|
-- mc.addCursor('[a')
|
|
-- end
|
|
-- end
|
|
-- end, { desc = 'Create multicursor on previous argument'})
|
|
--
|
|
-- -- Add and remove cursors with control + left click.
|
|
-- set("n", "<c-leftmouse>", mc.handleMouse)
|
|
-- set("n", "<c-leftdrag>", mc.handleMouseDrag)
|
|
-- set("n", "<c-leftrelease>", mc.handleMouseRelease)
|
|
--
|
|
-- -- Disable and enable cursors.
|
|
-- set({"n", "x"}, "<c-q>", mc.toggleCursor)
|
|
--
|
|
-- -- Mappings defined in a keymap layer only apply when there are
|
|
-- -- multiple cursors. This lets you have overlapping mappings.
|
|
-- mc.addKeymapLayer(function(layerSet)
|
|
--
|
|
-- -- Select a different cursor as the main one.
|
|
-- layerSet({"n", "x"}, "<left>", mc.prevCursor)
|
|
-- layerSet({"n", "x"}, "<right>", mc.nextCursor)
|
|
--
|
|
-- -- Delete the main cursor.
|
|
-- layerSet({"n", "x"}, "<leader>x", mc.deleteCursor)
|
|
--
|
|
-- -- Enable and clear cursors using escape.
|
|
-- layerSet("n", "<esc>", function()
|
|
-- if not mc.cursorsEnabled() then
|
|
-- mc.enableCursors()
|
|
-- else
|
|
-- mc.clearCursors()
|
|
-- end
|
|
-- end)
|
|
-- end)
|
|
--
|
|
-- -- Customize how cursors look.
|
|
-- local hl = vim.api.nvim_set_hl
|
|
-- hl(0, "MultiCursorCursor", { reverse = true })
|
|
-- hl(0, "MultiCursorVisual", { link = "Visual" })
|
|
-- hl(0, "MultiCursorSign", { link = "SignColumn"})
|
|
-- hl(0, "MultiCursorMatchPreview", { link = "Search" })
|
|
-- hl(0, "MultiCursorDisabledCursor", { reverse = true })
|
|
-- hl(0, "MultiCursorDisabledVisual", { link = "Visual" })
|
|
-- hl(0, "MultiCursorDisabledSign", { link = "SignColumn"})
|
|
-- end
|
|
-- },
|
|
}
|