huge updates

This commit is contained in:
sankalp committed 2024-08-16 22:39:30 +05:45
1 parent a2b0f73e33
commit b5e4ef3bff
54 files changed
+931 -812

No files matched your search

+589
View File
@@ -0,0 +1,589 @@
return {
-- Delete Buffer
{
'famiu/bufdelete.nvim',
event = { 'BufReadPre', 'BufNewFile' },
init = function()
vim.keymap.set('n', '<leader>q', function()
require('bufdelete').bufdelete(0, false)
end, { silent = true, desc = 'Quit Buffer' })
end,
},
-- Better Escape
{
'max397574/better-escape.nvim',
config = function()
require('better_escape').setup()
end,
},
-- Comment
{
{
'LudoPinelli/comment-box.nvim',
opts = {},
vscode = true,
keys = {
{ '<leader>cb', '<cmd>CBccbox<CR>', mode = { 'n', 'v' }, desc = 'Comment Box' },
{ '<leader>ct', '<cmd>CBllline<CR>', mode = { 'n', 'v' }, desc = 'Tiled line' },
{ '<leader>cl', '<cmd>CBline<CR>', desc = 'Line' },
{ '<leader>cm', '<cmd>CBllbox14<CR>', mode = { 'n', 'v' }, desc = 'Marked' },
{ '<leader>cc', '<cmd>CBcatalog<CR>', desc = 'Catalog' },
{ '<leader>cd', '<cmd>CBd<CR>', mode = { 'n', 'v' }, desc = 'Delete Comment Style' },
},
},
},
-- Code Screnshot
{
'mistricky/codesnap.nvim',
build = 'make',
cmd = { 'CodeSnap', 'CodeSnapSave' },
vscode = false,
keys = {
{ '<leader>cp', mode = 'v', "<cmd>'<,'>CodeSnap<cr>", desc = 'Screenshot (Clipboard)' },
{ '<leader>cP', mode = 'v', "<cmd>'<,'>CodeSnapSave<cr>", desc = 'Screenshot (Save)' },
},
cond = vim.env.KITTY_SCROLLBACK_NVIM == nil,
opts = {
save_path = (os.getenv('HOME') .. '/Pictures/screenshots/code'),
title = 'CodeSnap.nvim',
code_font_family = 'JetBrainsMono Nerd Font',
watermark_font_family = 'JetBrainsMono Nerd Font',
watermark = '',
bg_theme = 'summer',
},
},
-- Generate dotfyle metadata for your config
{
'creativenull/dotfyle-metadata.nvim',
cmd = { 'DotfyleGenerate', 'DotfyleOpen' },
},
-- improve the default vim.ui interfaces
{
'stevearc/dressing.nvim',
event = 'VeryLazy',
},
-- Show diagnostics and lsp info inside a custom window, following the mouse position
{
'soulis-1256/eagle.nvim',
event = { 'BufReadPre', 'BufNewFile' },
config = function()
require('eagle').setup({})
end,
},
-- Navigate your code with search labels, enhanced character motions and Treesitter integration
{
'folke/flash.nvim',
event = { 'CursorHold', 'CursorHoldI' },
vscode = true,
opts = {},
keys = {
{
's',
mode = { 'n', 'x', 'o' },
function()
require('flash').jump()
end,
desc = 'Flash',
},
{
'S',
mode = { 'n', 'o', 'x' },
function()
require('flash').treesitter()
end,
desc = 'Flash Treesitter',
},
{
'r',
mode = 'o',
function()
require('flash').remote()
end,
desc = 'Remote Flash',
},
{
'R',
mode = { 'o', 'x' },
function()
require('flash').treesitter_search()
end,
desc = 'Treesitter Search',
},
{
'<c-s>',
mode = { 'c' },
function()
require('flash').toggle()
end,
desc = 'Toggle Flash Search',
},
},
},
--open files in neovim without creating a nested sessions
{
'willothy/flatten.nvim',
priority = 1001,
opts = {
window = {
open = 'alternate',
},
},
},
-- highlight arguments
{
'm-demare/hlargs.nvim',
event = { 'BufReadPost', 'BufNewFile' },
},
-- emoji picker
{
'ziontee113/icon-picker.nvim',
enabled = true,
cmd = { 'IconPickerInsert' },
vim.keymap.set('n', '<Leader>se', '<cmd>IconPickerInsert emoji<cr>'),
config = function()
require('icon-picker').setup({ disable_legacy_commands = true })
end,
},
-- Incremental rename
{
'smjonas/inc-rename.nvim',
cmd = 'IncRename',
config = true,
},
-- automtically guess indent
{
'nmac427/guess-indent.nvim',
event = 'FileType',
config = function()
require('guess-indent').setup({})
end,
},
-- Faster LuaLS setup
{
'folke/lazydev.nvim',
ft = 'lua', -- only load on lua files
cmd = 'LazyDev',
lazy = true,
event = 'LspAttach',
opts = {
library = {},
},
},
-- Snippets
{
'L3MON4D3/LuaSnip',
event = { 'BufReadPost', 'BufNewFile' },
dependencies = {
'rafamadriz/friendly-snippets',
'mstuttgart/odoo-snippets',
},
opts = {
history = true,
updateevents = 'TextChanged,TextChangedI',
},
keys = function()
return {}
end,
config = function()
require('luasnip.loaders.from_vscode').lazy_load()
end,
},
-- Markdown preview
{
'iamcco/markdown-preview.nvim',
build = 'cd app && yarn install',
ft = { 'markdown' },
keys = {
{
'<leader>mp',
'<cmd>MarkdownPreviewToggle<CR>',
desc = 'toggle markdown preview',
},
},
},
-- Colorscheme
{
'bluz71/vim-moonfly-colors',
name = 'moonfly',
lazy = false,
priority = 1000,
config = function()
require('moonfly').custom_colors({
bg = '#000000',
})
vim.cmd([[colorscheme moonfly]])
end,
},
-- navigate between neovim and terminal
{
'numToStr/Navigator.nvim',
keys = {
{ '<C-h>', '<cmd>NavigatorLeft<cr>' },
{ '<C-j>', '<cmd>NavigatorDown<cr>' },
{ '<C-k>', '<cmd>NavigatorUp<cr>' },
{ '<C-l>', '<cmd>NavigatorRight<cr>' },
{ '<C-\\>', '<cmd>NavigatorPrevious<cr>' },
},
config = function()
require('Navigator').setup()
end,
},
-- popup display that provides breadcrumbs like navigation features
{
'SmiteshP/nvim-navbuddy',
dependencies = {
'neovim/nvim-lspconfig',
'SmiteshP/nvim-navic',
},
keys = {
{ '<leader>nv', '<cmd>Navbuddy<cr>', desc = 'Nav' },
},
config = function()
local actions = require('nvim-navbuddy.actions')
local navbuddy = require('nvim-navbuddy')
navbuddy.setup({
window = {
border = 'double',
},
mappings = {
['k'] = actions.next_sibling,
['i'] = actions.previous_sibling,
['j'] = actions.parent,
['l'] = actions.children,
},
lsp = { auto_attach = true },
})
end,
},
-- smooth scrolling
{
'karb94/neoscroll.nvim',
event = 'UIEnter',
config = function()
require('neoscroll').setup({
mappings = { -- Keys to be mapped to their corresponding default scrolling animation
'<C-u>',
'<C-d>',
'<C-b>',
'<C-f>',
'<C-y>',
'<C-e>',
'zt',
'zz',
'zb',
},
hide_cursor = true, -- Hide cursor while scrolling
stop_eof = true, -- Stop at <EOF> when scrolling downwards
respect_scrolloff = false, -- Stop scrolling when the cursor reaches the scrolloff margin of the file
cursor_scrolls_alone = true, -- The cursor will keep on scrolling even if the window cannot scroll further
easing = 'linear', -- Default easing function
pre_hook = nil, -- Function to run before the scrolling animation starts
post_hook = nil, -- Function to run after the scrolling animation ends
performance_mode = false, -- Disable "Performance Mode" on all buffers.
})
end,
},
-- Notifications
{
'rcarriga/nvim-notify',
event = 'VeryLazy',
keys = {
{
'<leader>un',
function()
require('notify').dismiss({ silent = true, pending = true })
end,
desc = 'Dismiss All Notifications',
},
},
opts = {
level = 2,
minimum_width = 50,
stages = 'fade',
timeout = 3000,
top_down = true,
render = 'compact',
background_colour = '#000000',
},
},
-- Ui components
{
'MunifTanjim/nui.nvim',
lazy = true,
},
-- Peek lines just when you intend
{
'nacro90/numb.nvim',
event = 'CmdlineEnter',
config = function()
require('numb').setup({
show_numbers = true, -- Enable 'number' for the window while peeking
show_cursorline = true, -- Enable 'cursorline' for the window while peeking
hide_relativenumbers = true, -- Enable turning off 'relativenumber' for the window while peeking
number_only = false, -- Peek only when the command is only a number instead of when it starts with a number
centered_peeking = true, -- Peeked line will be centered relative to window
})
end,
},
{
'nvim-lua/plenary.nvim',
lazy = true,
},
-- Session Management
{
'folke/persistence.nvim',
event = 'BufReadPre',
opts = { options = vim.opt.sessionoptions:get() },
keys = {
{
'<leader>ss',
function()
require('persistence').load()
end,
desc = 'Restore Session',
},
{
'<leader>sl',
function()
require('persistence').load({ last = true })
end,
desc = 'Restore Last Session',
},
{
'<leader>sd',
function()
require('persistence').stop()
end,
desc = "Don't Save Current Session",
},
},
},
-- alternating syntax highlighting
{
'HiPhish/rainbow-delimiters.nvim',
event = { 'BufReadPost', 'BufNewFile' },
config = function()
local rainbow_delimiters = require('rainbow-delimiters')
require('rainbow-delimiters.setup').setup({
{
strategy = {
[''] = rainbow_delimiters.strategy['global'],
vim = rainbow_delimiters.strategy['local'],
},
query = {
[''] = 'rainbow-delimiters',
lua = 'rainbow-blocks',
},
priority = {
[''] = 110,
lua = 210,
},
highlight = {
'RainbowDelimiterRed',
'RainbowDelimiterYellow',
'RainbowDelimiterBlue',
'RainbowDelimiterOrange',
'RainbowDelimiterGreen',
'RainbowDelimiterViolet',
'RainbowDelimiterCyan',
},
},
})
end,
},
-- Enhance the usage of macros
{
'chrisgrieser/nvim-recorder',
dependencies = { 'rcarriga/nvim-notify' },
event = 'VeryLazy',
vscode = true,
keys = {
{ 'q', desc = 'Start Recording' },
{ 'Q', desc = 'Play Recording' },
{ '<C-q>', desc = 'Switch Slot' },
{ 'cq', desc = 'Edit Macro' },
{ 'yq', desc = 'Yank Macro' },
{ 'dq', desc = 'Delete All Macros' },
},
opts = {
useNerdFontsIcons = false,
slots = { 'a', 'b', 'c', 'd' },
mapping = {
startStopRecording = 'q',
playMacro = 'Q',
editMacro = 'cq',
switchSlot = '<C-q>',
deleteAllMacros = 'dq',
yankMacro = 'yq',
},
},
},
-- Screencast the keys
{
'NStefan002/screenkey.nvim',
cmd = 'Screenkey',
version = '*',
vim.keymap.set('n', '<leader>kt', '<cmd>Screenkey<CR>', { desc = 'Toggle keys' }),
config = function()
require('screenkey').setup({
-- see :h nvim_open_win
win_opts = {
relative = 'editor',
anchor = 'SE',
width = 40,
height = 1,
border = 'single',
},
-- compress input when repeated <compress_after> times
compress_after = 3,
-- clear the input after <clear_after> seconds of inactivity
clear_after = 3,
-- temporarily disable screenkey (for example when inside of the terminal)
disable = {
filetypes = {}, -- for example: "toggleterm"
-- :h 'buftype'
buftypes = {}, -- for example: "terminal"
},
})
end,
},
-- search panel
{
'nvim-pack/nvim-spectre',
build = false,
cmd = 'Spectre',
opts = { open_cmd = 'noswapfile vnew' },
keys = {
{
'<leader>sr',
function()
require('spectre').open()
end,
desc = 'Replace in Files (Spectre)',
},
},
},
{
'luukvbaal/statuscol.nvim',
event = 'BufReadPre',
config = function()
local builtin = require('statuscol.builtin')
require('statuscol').setup({
setopt = true,
separator = '',
foldfunc = 'builtin',
relculright = true,
segments = {
{ text = { '%s' }, click = 'v:lua.ScSa' },
{
text = { builtin.lnumfunc, ' ' },
click = 'v:lua.ScLa',
},
},
})
end,
},
-- undo history visualizer
{
'mbbill/undotree',
keys = {
{ '<leader>uu', '<cmd>UndotreeToggle<cr>', desc = 'Toggle Undotree' },
},
},
-- maximizer & restore current window
{
'szw/vim-maximizer',
keys = {
{ '<leader>sm', '<cmd>MaximizerToggle<CR>', desc = 'Maximize/minimize a split' },
},
},
-- for programming activity
{
'wakatime/vim-wakatime',
lazy = false,
},
-- show keymaps
{
'folke/which-key.nvim',
event = 'UIEnter',
opts = {
preset = 'helix',
},
keys = {
{
'<leader>?',
function()
require('which-key').show({ global = false })
end,
desc = 'Buffer Local Keymaps (which-key)',
},
},
},
-- Distraction-free coding
{
'folke/zen-mode.nvim',
cmd = { 'ZenMode' },
opts = {},
keys = {
{ '<leader>zz', '<cmd>ZenMode<cr>', desc = 'Toggle zen mode' },
},
},
-- Prismatic line decorations
{
'mvllow/modes.nvim',
event = { 'BufReadPost', 'BufNewFile' },
tag = 'v0.2.0',
config = function()
require('modes').setup({
colors = {
visual = '#f5c359',
delete = '#c75c6a',
copy = '#78ccc5',
insert = '#c5739a',
},
line_opacity = 0.15,
set_cursor = true,
set_cursorline = true,
set_number = true,
ignore_filetypes = { 'NvimTree', 'TelescopePrompt' },
})
end,
},
-- Make editing big files faster
{
'LunarVim/bigfile.nvim',
event = { 'BufEnter', 'WinEnter' },
opts = {
-- Disables LSP/treesitter, etc for files above 5000 lives (even if they have really long lines)
pattern = function(bufnr, filesize_mib)
if filesize_mib >= 2 then
return true
end
-- you can't use `nvim_buf_line_count` because this runs on BufReadPre
local file_contents = vim.fn.readfile(vim.api.nvim_buf_get_name(bufnr))
local file_length = #file_contents
if file_length > 5000 then
return true
end
return false
end,
},
},
-- url-opener
{
'sontungexpt/url-open',
event = { 'BufEnter', 'WinEnter' },
cmd = 'URLOpenUnderCursor',
config = function()
local status_ok, url_open = pcall(require, 'url-open')
if not status_ok then
return
end
url_open.setup({})
end,
vim.keymap.set('n', 'gx', '<esc>:URLOpenUnderCursor<cr>'),
},
}