Nvim is now running Lazy as its plugin Manager.
New keymaps Nvim.leap instead of flash
This commit is contained in:
233
nvim/lua/plugins/init.lua
Normal file
233
nvim/lua/plugins/init.lua
Normal file
@@ -0,0 +1,233 @@
|
||||
-- ~/.config/nvim/lua/plugins/init.lua
|
||||
return {
|
||||
-- Colorschemes
|
||||
{ "gruvbox-community/gruvbox", priority = 1000 },
|
||||
{ "folke/tokyonight.nvim", priority = 1000 },
|
||||
{ "catppuccin/nvim", name = "catppuccin", priority = 1000 },
|
||||
{ "EdenEast/nightfox.nvim", priority = 1000 },
|
||||
{ "rose-pine/neovim", name = "rose-pine", priority = 1000 },
|
||||
{ "rebelot/kanagawa.nvim", priority = 1000 },
|
||||
{ "sainnhe/everforest", priority = 1000 },
|
||||
|
||||
|
||||
-- Auto-save
|
||||
{
|
||||
"okuuva/auto-save.nvim",
|
||||
version = "v1.*",
|
||||
event = { "InsertLeave", "TextChanged" },
|
||||
opts = {
|
||||
enabled = true,
|
||||
execution_message = {
|
||||
enabled = false,
|
||||
},
|
||||
trigger_events = {
|
||||
immediate_save = { "BufLeave", "FocusLost" },
|
||||
defer_save = { "InsertLeave", "TextChanged" },
|
||||
cancel_defered_save = { "InsertEnter" },
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- File explorer
|
||||
{ import = "plugins.nvim-tree" },
|
||||
|
||||
-- Treesitter
|
||||
{ import = "plugins.treesitter" },
|
||||
|
||||
-- Rainbow delimiters
|
||||
{ import = "plugins.rainbow_delimiters" },
|
||||
|
||||
-- Git integration
|
||||
{
|
||||
"lewis6991/gitsigns.nvim",
|
||||
opts = {
|
||||
signs = {
|
||||
add = { text = "│" },
|
||||
change = { text = "│" },
|
||||
delete = { text = "_" },
|
||||
topdelete = { text = "‾" },
|
||||
changedelete = { text = "~" },
|
||||
untracked = { text = "┆" },
|
||||
},
|
||||
signcolumn = false, -- Disable signs by default
|
||||
numhl = false, -- Disable number highlights by default
|
||||
linehl = false, -- Disable line highlights by default
|
||||
word_diff = false,
|
||||
current_line_blame = false,
|
||||
}
|
||||
},
|
||||
{ "tpope/vim-fugitive" },
|
||||
|
||||
-- Status line
|
||||
{ import = "plugins.lualine" },
|
||||
|
||||
-- FZF
|
||||
{
|
||||
"junegunn/fzf",
|
||||
build = function()
|
||||
vim.fn["fzf#install"]()
|
||||
end,
|
||||
},
|
||||
{ "junegunn/fzf.vim" },
|
||||
|
||||
-- Productivity
|
||||
{ "numToStr/Comment.nvim", opts = {} },
|
||||
{ "windwp/nvim-autopairs", opts = {} },
|
||||
{ "tpope/vim-surround" },
|
||||
|
||||
-- Tmux navigation
|
||||
{ "christoomey/vim-tmux-navigator" },
|
||||
|
||||
-- LaTeX
|
||||
{ import = "plugins.vimtex" },
|
||||
|
||||
-- Org-mode
|
||||
{
|
||||
"nvim-orgmode/orgmode",
|
||||
dependencies = { "nvim-treesitter/nvim-treesitter" },
|
||||
opts = {},
|
||||
},
|
||||
|
||||
-- Telescope
|
||||
{
|
||||
"nvim-telescope/telescope.nvim",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
keys = {
|
||||
{ "<leader>ff", ":Telescope find_files<CR>", desc = "Find files" },
|
||||
{ "<leader>fg", ":Telescope live_grep<CR>", desc = "Live grep" },
|
||||
{ "<leader>fb", ":Telescope buffers<CR>", desc = "Buffers" },
|
||||
{ "<leader>fh", ":Telescope help_tags<CR>", desc = "Help tags" },
|
||||
},
|
||||
},
|
||||
|
||||
-- Yazi file manager
|
||||
{
|
||||
"mikavilpas/yazi.nvim",
|
||||
keys = {
|
||||
{ "<leader>y", ":Yazi<CR>", desc = "Open Yazi" },
|
||||
},
|
||||
opts = {
|
||||
open_for_directories = false,
|
||||
keymaps = {
|
||||
show_help = "<F1>",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- Leap (motion)
|
||||
{
|
||||
"ggandor/leap.nvim",
|
||||
event = "VeryLazy",
|
||||
config = function()
|
||||
require('leap').add_default_mappings()
|
||||
-- Override default s/S with f/F to avoid conflict with surround
|
||||
vim.keymap.del({'n', 'x', 'o'}, 's')
|
||||
vim.keymap.del({'n', 'x', 'o'}, 'S')
|
||||
vim.keymap.set({'n', 'x', 'o'}, 'f', '<Plug>(leap-forward)')
|
||||
vim.keymap.set({'n', 'x', 'o'}, 'F', '<Plug>(leap-backward)')
|
||||
end,
|
||||
},
|
||||
|
||||
-- Markdown
|
||||
{ "SidOfc/mkdx" },
|
||||
{
|
||||
"MeanderingProgrammer/render-markdown.nvim",
|
||||
dependencies = { "nvim-treesitter/nvim-treesitter", "echasnovski/mini.icons" },
|
||||
ft = { "markdown", "norg", "rmd", "org" },
|
||||
config = function()
|
||||
require('render-markdown').setup({
|
||||
heading = {
|
||||
enabled = true,
|
||||
sign = true,
|
||||
position = 'overlay',
|
||||
icons = { ' ', ' ', ' ', ' ', ' ', ' ' },
|
||||
backgrounds = {
|
||||
'RenderMarkdownH1Bg',
|
||||
'RenderMarkdownH2Bg',
|
||||
'RenderMarkdownH3Bg',
|
||||
'RenderMarkdownH4Bg',
|
||||
'RenderMarkdownH5Bg',
|
||||
'RenderMarkdownH6Bg',
|
||||
},
|
||||
foregrounds = {
|
||||
'RenderMarkdownH1',
|
||||
'RenderMarkdownH2',
|
||||
'RenderMarkdownH3',
|
||||
'RenderMarkdownH4',
|
||||
'RenderMarkdownH5',
|
||||
'RenderMarkdownH6',
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
-- Set highlights after ColorScheme event to ensure they persist
|
||||
vim.api.nvim_create_autocmd("ColorScheme", {
|
||||
callback = function()
|
||||
-- Translucent heading backgrounds with alpha blending
|
||||
vim.api.nvim_set_hl(0, 'RenderMarkdownH1Bg', { bg = '#2d5a7b', fg = 'NONE' })
|
||||
vim.api.nvim_set_hl(0, 'RenderMarkdownH2Bg', { bg = '#3d5f4e', fg = 'NONE' })
|
||||
vim.api.nvim_set_hl(0, 'RenderMarkdownH3Bg', { bg = '#5f5e3a', fg = 'NONE' })
|
||||
vim.api.nvim_set_hl(0, 'RenderMarkdownH4Bg', { bg = '#5f4a3e', fg = 'NONE' })
|
||||
vim.api.nvim_set_hl(0, 'RenderMarkdownH5Bg', { bg = '#4e4a5f', fg = 'NONE' })
|
||||
vim.api.nvim_set_hl(0, 'RenderMarkdownH6Bg', { bg = '#4a5e5f', fg = 'NONE' })
|
||||
|
||||
-- Bold, colored heading text
|
||||
vim.api.nvim_set_hl(0, 'RenderMarkdownH1', { fg = '#88c0d0', bold = true })
|
||||
vim.api.nvim_set_hl(0, 'RenderMarkdownH2', { fg = '#a3be8c', bold = true })
|
||||
vim.api.nvim_set_hl(0, 'RenderMarkdownH3', { fg = '#ebcb8b', bold = true })
|
||||
vim.api.nvim_set_hl(0, 'RenderMarkdownH4', { fg = '#d08770', bold = true })
|
||||
vim.api.nvim_set_hl(0, 'RenderMarkdownH5', { fg = '#b48ead', bold = true })
|
||||
vim.api.nvim_set_hl(0, 'RenderMarkdownH6', { fg = '#8fbcbb', bold = true })
|
||||
end,
|
||||
})
|
||||
|
||||
-- Apply highlights immediately
|
||||
vim.schedule(function()
|
||||
vim.cmd('doautocmd ColorScheme')
|
||||
end)
|
||||
end,
|
||||
},
|
||||
|
||||
-- Code formatting
|
||||
{ import = "plugins.prettier" },
|
||||
|
||||
-- Copilot
|
||||
{
|
||||
"zbirenbaum/copilot.lua",
|
||||
event = "InsertEnter",
|
||||
opts = {
|
||||
suggestion = { enabled = true },
|
||||
panel = { enabled = true },
|
||||
},
|
||||
},
|
||||
|
||||
-- Indent guides
|
||||
{
|
||||
"lukas-reineke/indent-blankline.nvim",
|
||||
main = "ibl",
|
||||
opts = {},
|
||||
},
|
||||
|
||||
-- UFO (folding)
|
||||
{
|
||||
"kevinhwang91/nvim-ufo",
|
||||
dependencies = { "kevinhwang91/promise-async" },
|
||||
event = "BufReadPost",
|
||||
config = function()
|
||||
vim.o.foldcolumn = "0"
|
||||
vim.o.foldlevel = 99
|
||||
vim.o.foldlevelstart = 99
|
||||
vim.o.foldenable = true
|
||||
|
||||
require("ufo").setup({
|
||||
provider_selector = function(bufnr, filetype, buftype)
|
||||
-- Disable for latex and markdown files
|
||||
if filetype == "tex" or filetype == "latex" or filetype == "markdown" then
|
||||
return ""
|
||||
end
|
||||
return { "treesitter", "indent" }
|
||||
end,
|
||||
})
|
||||
end,
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user