chore(lua/plugins): cleanup and reorganize plugin configurations, dropping deprecated plugins and introducing new folding, smoothing, and screenshot tools
New Features: - Added ufo.nvim for advanced folding with Treesitter and indent providers - Added neoscroll.nvim for smooth scrolling - Added smartcolumn.nvim to enforce colorcolumn only when needed - Added codesnap.nvim for markdown screenshot generation - Added Markview toggle shortcut for markdown preview Enhancements: - Configured folding options (foldcolumn, foldlevel, provider selector) - Added keybindings for opening/closing all folds and toggling fold visibility - Updated plugin loading conditions and lazy loading patterns Bug Fixes: — No bug fixes included in this change —
This commit is contained in:
6 files changed
+259
-234
No files matched your search
+6
-82
@@ -80,56 +80,6 @@ return {
|
||||
end,
|
||||
},
|
||||
|
||||
-- auto pairs
|
||||
{
|
||||
'windwp/nvim-autopairs',
|
||||
event = 'InsertEnter',
|
||||
config = function()
|
||||
local npairs = require('nvim-autopairs')
|
||||
local Rule = require('nvim-autopairs.rule')
|
||||
local conds = require('nvim-autopairs.conds')
|
||||
|
||||
npairs.setup()
|
||||
|
||||
-- Autoclosing angle-brackets.
|
||||
npairs.add_rule(Rule('<', '>', {
|
||||
-- Avoid conflicts with nvim-ts-autotag.
|
||||
'-html',
|
||||
'-javascriptreact',
|
||||
'-typescriptreact',
|
||||
}):with_pair(conds.before_regex('%a+:?:?$', 3)):with_move(function(opts)
|
||||
return opts.char == '>'
|
||||
end))
|
||||
end,
|
||||
},
|
||||
|
||||
-- auto tag
|
||||
{
|
||||
'windwp/nvim-ts-autotag',
|
||||
ft = {
|
||||
'html',
|
||||
'xml',
|
||||
'javascript',
|
||||
'typescript',
|
||||
'javascriptreact',
|
||||
'typescriptreact',
|
||||
'jsx',
|
||||
'tsx',
|
||||
'vue',
|
||||
'svelte',
|
||||
'markdown',
|
||||
'htmldjango',
|
||||
},
|
||||
event = 'InsertEnter',
|
||||
lazy = true,
|
||||
opts = {
|
||||
-- Defaults
|
||||
enable_close = true, -- Auto close tags
|
||||
enable_rename = true, -- Auto rename pairs of tags
|
||||
enable_close_on_slash = false, -- Auto close on trailing </
|
||||
},
|
||||
},
|
||||
|
||||
-- comment
|
||||
{
|
||||
'numToStr/Comment.nvim',
|
||||
@@ -146,35 +96,15 @@ return {
|
||||
})
|
||||
end,
|
||||
keys = {
|
||||
{ 'gcc', mode = 'n', desc = 'Toggle comment line' },
|
||||
{ 'gc', mode = { 'n', 'o' }, desc = 'Toggle comment linewise' },
|
||||
{ 'gc', mode = 'x', desc = 'Toggle comment linewise (visual)' },
|
||||
{ 'gbc', mode = 'n', desc = 'Toggle comment block' },
|
||||
{ 'gb', mode = { 'n', 'o' }, desc = 'Toggle comment blockwise' },
|
||||
{ 'gb', mode = 'x', desc = 'Toggle comment blockwise (visual)' },
|
||||
{ 'gcc', mode = 'n', desc = 'Toggle comment line' },
|
||||
{ 'gc', mode = { 'n', 'o' }, desc = 'Toggle comment linewise' },
|
||||
{ 'gc', mode = 'x', desc = 'Toggle comment linewise (visual)' },
|
||||
{ 'gbc', mode = 'n', desc = 'Toggle comment block' },
|
||||
{ 'gb', mode = { 'n', 'o' }, desc = 'Toggle comment blockwise' },
|
||||
{ 'gb', mode = 'x', desc = 'Toggle comment blockwise (visual)' },
|
||||
},
|
||||
},
|
||||
|
||||
-- treesitter
|
||||
{
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
build = ':TSUpdate',
|
||||
event = { 'BufReadPost', 'BufNewFile' },
|
||||
config = function()
|
||||
require('nvim-treesitter.configs').setup({
|
||||
ensure_installed = require('config.extensions').ts_parsers,
|
||||
auto_install = true,
|
||||
highlight = {
|
||||
enable = true,
|
||||
additional_vim_regex_highlighting = true,
|
||||
},
|
||||
indent = {
|
||||
enable = true,
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
|
||||
-- annotation generator
|
||||
{
|
||||
'danymat/neogen',
|
||||
@@ -189,10 +119,4 @@ return {
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- syntax highlight for mdx
|
||||
{
|
||||
'davidmh/mdx.nvim',
|
||||
dependencies = { 'nvim-treesitter/nvim-treesitter' },
|
||||
},
|
||||
}
|
||||
@@ -1,63 +1,4 @@
|
||||
return {
|
||||
-- gitignore generator
|
||||
{
|
||||
'wintermute-cell/gitignore.nvim',
|
||||
cmd = { 'Gitignore' },
|
||||
opts = {},
|
||||
},
|
||||
|
||||
-- git signs
|
||||
{
|
||||
'lewis6991/gitsigns.nvim',
|
||||
events = { 'BufReadPost', 'BufNewFile' },
|
||||
opts = {
|
||||
signcolumn = true,
|
||||
current_line_blame = true,
|
||||
attach_to_untracked = false,
|
||||
current_line_blame_formatter = '<author>, <author_time:%R> - <summary>',
|
||||
watch_gitdir = {
|
||||
follow_files = true,
|
||||
},
|
||||
current_line_blame_opts = {
|
||||
virt_text = true,
|
||||
virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align'
|
||||
delay = 1000,
|
||||
ignore_whitespace = false,
|
||||
virt_text_priority = 100,
|
||||
use_focus = true,
|
||||
},
|
||||
signs = {
|
||||
add = { text = ' ' },
|
||||
change = { text = ' ' },
|
||||
delete = { text = ' ' },
|
||||
topdelete = { text = ' ' },
|
||||
changedelete = { text = ' ' },
|
||||
untracked = { text = ' ' },
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- lazygit integration
|
||||
{
|
||||
'kdheepak/lazygit.nvim',
|
||||
lazy = true,
|
||||
enabled = true,
|
||||
cmd = {
|
||||
'LazyGit',
|
||||
'LazyGitConfig',
|
||||
'LazyGitCurrentFile',
|
||||
'LazyGitFilter',
|
||||
'LazyGitFilterCurrentFile',
|
||||
},
|
||||
keys = {
|
||||
{ '<leader>lg', '<cmd>LazyGit<cr>', desc = 'LazyGit' },
|
||||
},
|
||||
config = function()
|
||||
vim.g.lazygit_floating_window_winblend = 0
|
||||
vim.g.lazygit_floating_window_scaling_factor = 0.9
|
||||
vim.g.lazygit_floating_window_border_chars = { '╭', '─', '╮', '│', '╯', '─', '╰', '│' }
|
||||
end,
|
||||
},
|
||||
|
||||
-- Todo Comments
|
||||
{
|
||||
@@ -162,70 +103,6 @@ return {
|
||||
},
|
||||
},
|
||||
|
||||
-- Better folding
|
||||
{
|
||||
'kevinhwang91/nvim-ufo',
|
||||
dependencies = 'kevinhwang91/promise-async',
|
||||
event = 'BufReadPost',
|
||||
keys = {
|
||||
{
|
||||
'zR',
|
||||
function()
|
||||
require('ufo').openAllFolds()
|
||||
end,
|
||||
},
|
||||
{
|
||||
'zM',
|
||||
function()
|
||||
require('ufo').closeAllFolds()
|
||||
end,
|
||||
},
|
||||
{
|
||||
'zr',
|
||||
function()
|
||||
require('ufo').openFoldsExceptKinds()
|
||||
end,
|
||||
},
|
||||
{
|
||||
'zm',
|
||||
function()
|
||||
require('ufo').closeFoldsWith()
|
||||
end,
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
vim.o.foldcolumn = '1'
|
||||
vim.o.foldlevel = 99
|
||||
vim.o.foldlevelstart = 99
|
||||
vim.o.foldenable = true
|
||||
|
||||
require('ufo').setup({
|
||||
provider_selector = function()
|
||||
return { 'treesitter', 'indent' }
|
||||
end,
|
||||
})
|
||||
end,
|
||||
},
|
||||
|
||||
-- rendering for html and markdown
|
||||
{
|
||||
'OXY2DEV/markview.nvim',
|
||||
lazy = false,
|
||||
-- to load before treesitter
|
||||
priority = 45,
|
||||
config = function()
|
||||
require('markview').setup({
|
||||
preview = {
|
||||
icon_provider = 'mini',
|
||||
enable = false,
|
||||
},
|
||||
})
|
||||
end,
|
||||
keys = {
|
||||
{ '<leader>cv', '<Cmd>Markview toggle<CR>', desc = 'Toggle markdown preview', mode = 'n' },
|
||||
},
|
||||
},
|
||||
|
||||
-- markdown preview
|
||||
{
|
||||
'iamcco/markdown-preview.nvim',
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
return {
|
||||
-- gitignore generator
|
||||
{
|
||||
'wintermute-cell/gitignore.nvim',
|
||||
cmd = { 'Gitignore' },
|
||||
opts = {},
|
||||
},
|
||||
|
||||
-- git signs
|
||||
{
|
||||
'lewis6991/gitsigns.nvim',
|
||||
events = { 'BufReadPost', 'BufNewFile' },
|
||||
opts = {
|
||||
signcolumn = true,
|
||||
current_line_blame = true,
|
||||
attach_to_untracked = false,
|
||||
current_line_blame_formatter = '<author>, <author_time:%R> - <summary>',
|
||||
watch_gitdir = {
|
||||
follow_files = true,
|
||||
},
|
||||
current_line_blame_opts = {
|
||||
virt_text = true,
|
||||
virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align'
|
||||
delay = 1000,
|
||||
ignore_whitespace = false,
|
||||
virt_text_priority = 100,
|
||||
use_focus = true,
|
||||
},
|
||||
signs = {
|
||||
add = { text = ' ' },
|
||||
change = { text = ' ' },
|
||||
delete = { text = ' ' },
|
||||
topdelete = { text = ' ' },
|
||||
changedelete = { text = ' ' },
|
||||
untracked = { text = ' ' },
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- lazygit integration
|
||||
{
|
||||
'kdheepak/lazygit.nvim',
|
||||
lazy = true,
|
||||
enabled = true,
|
||||
cmd = {
|
||||
'LazyGit',
|
||||
'LazyGitConfig',
|
||||
'LazyGitCurrentFile',
|
||||
'LazyGitFilter',
|
||||
'LazyGitFilterCurrentFile',
|
||||
},
|
||||
keys = {
|
||||
{ '<leader>lg', '<cmd>LazyGit<cr>', desc = 'LazyGit' },
|
||||
},
|
||||
config = function()
|
||||
vim.g.lazygit_floating_window_winblend = 0
|
||||
vim.g.lazygit_floating_window_scaling_factor = 0.9
|
||||
vim.g.lazygit_floating_window_border_chars = { '╭', '─', '╮', '│', '╯', '─', '╰', '│' }
|
||||
end,
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
return {
|
||||
|
||||
-- treesitter
|
||||
{
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
build = ':TSUpdate',
|
||||
event = { 'BufReadPost', 'BufNewFile' },
|
||||
config = function()
|
||||
require('nvim-treesitter.configs').setup({
|
||||
ensure_installed = require('config.extensions').ts_parsers,
|
||||
auto_install = true,
|
||||
highlight = {
|
||||
enable = true,
|
||||
additional_vim_regex_highlighting = true,
|
||||
},
|
||||
indent = {
|
||||
enable = true,
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
|
||||
-- auto pairs
|
||||
{
|
||||
'windwp/nvim-autopairs',
|
||||
event = 'InsertEnter',
|
||||
config = function()
|
||||
local npairs = require('nvim-autopairs')
|
||||
local Rule = require('nvim-autopairs.rule')
|
||||
local conds = require('nvim-autopairs.conds')
|
||||
|
||||
npairs.setup()
|
||||
|
||||
-- Autoclosing angle-brackets.
|
||||
npairs.add_rule(Rule('<', '>', {
|
||||
-- Avoid conflicts with nvim-ts-autotag.
|
||||
'-html',
|
||||
'-javascriptreact',
|
||||
'-typescriptreact',
|
||||
}):with_pair(conds.before_regex('%a+:?:?$', 3)):with_move(function(opts)
|
||||
return opts.char == '>'
|
||||
end))
|
||||
end,
|
||||
},
|
||||
|
||||
-- auto tag
|
||||
{
|
||||
'windwp/nvim-ts-autotag',
|
||||
ft = {
|
||||
'html',
|
||||
'xml',
|
||||
'javascript',
|
||||
'typescript',
|
||||
'javascriptreact',
|
||||
'typescriptreact',
|
||||
'jsx',
|
||||
'tsx',
|
||||
'vue',
|
||||
'svelte',
|
||||
'markdown',
|
||||
'htmldjango',
|
||||
},
|
||||
event = 'InsertEnter',
|
||||
lazy = true,
|
||||
opts = {
|
||||
-- Defaults
|
||||
enable_close = true, -- Auto close tags
|
||||
enable_rename = true, -- Auto rename pairs of tags
|
||||
enable_close_on_slash = false, -- Auto close on trailing </
|
||||
},
|
||||
},
|
||||
|
||||
-- syntax highlight for mdx
|
||||
{
|
||||
'davidmh/mdx.nvim',
|
||||
dependencies = { 'nvim-treesitter/nvim-treesitter' },
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
return {
|
||||
|
||||
-- rendering for html and markdown
|
||||
{
|
||||
'OXY2DEV/markview.nvim',
|
||||
lazy = false,
|
||||
-- to load before treesitter
|
||||
priority = 45,
|
||||
config = function()
|
||||
require('markview').setup({
|
||||
preview = {
|
||||
icon_provider = 'mini',
|
||||
enable = false,
|
||||
},
|
||||
})
|
||||
end,
|
||||
keys = {
|
||||
{ '<leader>cv', '<Cmd>Markview toggle<CR>', desc = 'Toggle markdown preview', mode = 'n' },
|
||||
},
|
||||
},
|
||||
|
||||
-- Better folding
|
||||
{
|
||||
'kevinhwang91/nvim-ufo',
|
||||
dependencies = 'kevinhwang91/promise-async',
|
||||
event = 'BufReadPost',
|
||||
keys = {
|
||||
{
|
||||
'zR',
|
||||
function()
|
||||
require('ufo').openAllFolds()
|
||||
end,
|
||||
},
|
||||
{
|
||||
'zM',
|
||||
function()
|
||||
require('ufo').closeAllFolds()
|
||||
end,
|
||||
},
|
||||
{
|
||||
'zr',
|
||||
function()
|
||||
require('ufo').openFoldsExceptKinds()
|
||||
end,
|
||||
},
|
||||
{
|
||||
'zm',
|
||||
function()
|
||||
require('ufo').closeFoldsWith()
|
||||
end,
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
vim.o.foldcolumn = '1'
|
||||
vim.o.foldlevel = 99
|
||||
vim.o.foldlevelstart = 99
|
||||
vim.o.foldenable = true
|
||||
|
||||
require('ufo').setup({
|
||||
provider_selector = function()
|
||||
return { 'treesitter', 'indent' }
|
||||
end,
|
||||
})
|
||||
end,
|
||||
},
|
||||
|
||||
-- smooth scrolling
|
||||
{
|
||||
'karb94/neoscroll.nvim',
|
||||
opts = {},
|
||||
},
|
||||
|
||||
-- Smart column (colorcolumn only when needed)
|
||||
{
|
||||
'm4xshen/smartcolumn.nvim',
|
||||
event = { 'BufReadPost', 'BufNewFile' },
|
||||
opts = {
|
||||
colorcolumn = '120',
|
||||
disabled_filetypes = {
|
||||
'help',
|
||||
'text',
|
||||
'markdown',
|
||||
'dashboard',
|
||||
'snacks_dashboard',
|
||||
'lazy',
|
||||
'mason',
|
||||
'oil',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- Screenshot Tool
|
||||
{
|
||||
'mistricky/codesnap.nvim',
|
||||
build = 'make',
|
||||
cmd = {
|
||||
'CodeSnap',
|
||||
'CodeSnapSave',
|
||||
'CodeSnapHighlight',
|
||||
'CodeSnapSaveHighlight',
|
||||
'CodeSnapASCII',
|
||||
},
|
||||
opts = {
|
||||
bg_theme = 'dusk',
|
||||
code_font_family = 'JetBrainsMono Nerd Font',
|
||||
save_path = os.getenv('XDG_SCREENSHOTS_DIR') or (os.getenv('HOME') .. '/Pictures'),
|
||||
watermark = 'SANKALP',
|
||||
watermark_font_family = 'Anurati',
|
||||
has_breadcrumbs = true,
|
||||
breadcrumbs_separator = '/',
|
||||
has_line_number = true,
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -72,12 +72,6 @@ return {
|
||||
end,
|
||||
},
|
||||
|
||||
-- smooth scrolling
|
||||
{
|
||||
'karb94/neoscroll.nvim',
|
||||
opts = {},
|
||||
},
|
||||
|
||||
-- discord presence
|
||||
-- {
|
||||
-- "vyfor/cord.nvim",
|
||||
@@ -117,29 +111,6 @@ return {
|
||||
opts = {},
|
||||
},
|
||||
|
||||
-- Screenshot Tool
|
||||
{
|
||||
'mistricky/codesnap.nvim',
|
||||
build = 'make',
|
||||
cmd = {
|
||||
'CodeSnap',
|
||||
'CodeSnapSave',
|
||||
'CodeSnapHighlight',
|
||||
'CodeSnapSaveHighlight',
|
||||
'CodeSnapASCII',
|
||||
},
|
||||
opts = {
|
||||
bg_theme = 'dusk',
|
||||
code_font_family = 'JetBrainsMono Nerd Font',
|
||||
save_path = os.getenv('XDG_SCREENSHOTS_DIR') or (os.getenv('HOME') .. '/Pictures'),
|
||||
watermark = 'SANKALP',
|
||||
watermark_font_family = 'Anurati',
|
||||
has_breadcrumbs = true,
|
||||
breadcrumbs_separator = '/',
|
||||
has_line_number = true,
|
||||
},
|
||||
},
|
||||
|
||||
-- buffer manager
|
||||
{
|
||||
'serhez/bento.nvim',
|
||||
|
||||
Reference in new issue
Block a user