208 lines
7.8 KiB
Lua
208 lines
7.8 KiB
Lua
return {
|
|
{"nvim-neo-tree/neo-tree.nvim",
|
|
branch = "v3.x",
|
|
dependencies = {
|
|
"nvim-lua/plenary.nvim",
|
|
"nvim-tree/nvim-web-devicons", -- not strictly required, but recommended
|
|
"MunifTanjim/nui.nvim",
|
|
{"3rd/image.nvim",
|
|
opts={
|
|
backend = "kitty",
|
|
processor = "magick_rock", -- or "magick_cli"
|
|
integrations = {
|
|
markdown = {
|
|
enabled = true,
|
|
clear_in_insert_mode = false,
|
|
download_remote_images = true,
|
|
only_render_image_at_cursor = false,
|
|
floating_windows = false, -- if true, images will be rendered in floating markdown windows
|
|
filetypes = { "markdown", "vimwiki" }, -- markdown extensions (ie. quarto) can go here
|
|
},
|
|
neorg = {
|
|
enabled = true,
|
|
filetypes = { "norg" },
|
|
},
|
|
typst = {
|
|
enabled = true,
|
|
filetypes = { "typst" },
|
|
},
|
|
html = {
|
|
enabled = false,
|
|
},
|
|
css = {
|
|
enabled = false,
|
|
},
|
|
},
|
|
max_width = nil,
|
|
max_height = nil,
|
|
max_width_window_percentage = nil,
|
|
max_height_window_percentage = 50,
|
|
window_overlap_clear_enabled = false, -- toggles images when windows are overlapped
|
|
window_overlap_clear_ft_ignore = { "cmp_menu", "cmp_docs", "snacks_notif", "scrollview", "scrollview_sign" },
|
|
editor_only_render_when_focused = false, -- auto show/hide images when the editor gains/looses focus
|
|
tmux_show_only_in_active_window = false, -- auto show/hide images in the correct Tmux window (needs visual-activity off)
|
|
hijack_file_patterns = { "*.png", "*.jpg", "*.jpeg", "*.gif", "*.webp", "*.avif" }, -- render image files as images when opened
|
|
}
|
|
}, -- Optional image support in preview window: See `# Preview Mode` for more information
|
|
},
|
|
opts={
|
|
window = {
|
|
mappings = {
|
|
["P"] = { "toggle_preview", config = { use_float = false, use_image_nvim = true } },
|
|
["l"] = "focus_preview",
|
|
["<C-b>"] = { "scroll_preview", config = {direction = 10} },
|
|
["<C-f>"] = { "scroll_preview", config = {direction = -10} },
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{"catppuccin/nvim", lazy=true, name="catppuccin"},
|
|
{
|
|
"folke/twilight.nvim",
|
|
opts = {
|
|
dimming = {
|
|
alpha = 0.25, -- amount of dimming
|
|
-- we try to get the foreground from the highlight groups or fallback color
|
|
color = { "Normal", "#ffffff" },
|
|
term_bg = "#000000", -- if guibg=NONE, this will be used to calculate text color
|
|
inactive = false, -- when true, other windows will be fully dimmed (unless they contain the same buffer)
|
|
},
|
|
context = 10, -- amount of lines we will try to show around the current line
|
|
treesitter = true, -- use treesitter when available for the filetype
|
|
-- treesitter is used to automatically expand the visible text,
|
|
-- but you can further control the types of nodes that should always be fully expanded
|
|
expand = { -- for treesitter, we we always try to expand to the top-most ancestor with these types
|
|
"function",
|
|
"method",
|
|
"table",
|
|
"if_statement",
|
|
},
|
|
exclude = {}, -- exclude these filetypes
|
|
}
|
|
},
|
|
{"folke/zen-mode.nvim", opts={
|
|
window = {
|
|
backdrop = 0.95, -- shade the backdrop of the Zen window. Set to 1 to keep the same as Normal
|
|
-- height and width can be:
|
|
-- * an absolute number of cells when > 1
|
|
-- * a percentage of the width / height of the editor when <= 1
|
|
-- * a function that returns the width or the height
|
|
width = 120, -- width of the Zen window
|
|
height = 1, -- height of the Zen window
|
|
-- by default, no options are changed for the Zen window
|
|
-- uncomment any of the options below, or add other vim.wo options you want to apply
|
|
options = {
|
|
-- signcolumn = "no", -- disable signcolumn
|
|
-- number = false, -- disable number column
|
|
-- relativenumber = false, -- disable relative numbers
|
|
-- cursorline = false, -- disable cursorline
|
|
-- cursorcolumn = false, -- disable cursor column
|
|
-- foldcolumn = "0", -- disable fold column
|
|
-- list = false, -- disable whitespace characters
|
|
},
|
|
},
|
|
plugins = {
|
|
-- disable some global vim options (vim.o...)
|
|
-- comment the lines to not apply the options
|
|
options = {
|
|
enabled = true,
|
|
ruler = false, -- disables the ruler text in the cmd line area
|
|
showcmd = false, -- disables the command in the last line of the screen
|
|
-- you may turn on/off statusline in zen mode by setting 'laststatus'
|
|
-- statusline will be shown only if 'laststatus' == 3
|
|
laststatus = 0, -- turn off the statusline in zen mode
|
|
},
|
|
twilight = { enabled = true }, -- enable to start Twilight when zen mode opens
|
|
gitsigns = { enabled = false }, -- disables git signs
|
|
tmux = { enabled = false }, -- disables the tmux statusline
|
|
-- this will change the font size on kitty when in zen mode
|
|
-- to make this work, you need to set the following kitty options:
|
|
-- - allow_remote_control socket-only
|
|
-- - listen_on unix:/tmp/kitty
|
|
kitty = {
|
|
enabled = true,
|
|
font = "+4", -- font size increment
|
|
},
|
|
-- this will change the font size on alacritty when in zen mode
|
|
-- requires Alacritty Version 0.10.0 or higher
|
|
-- uses `alacritty msg` subcommand to change font size
|
|
alacritty = {
|
|
enabled = false,
|
|
font = "14", -- font size
|
|
},
|
|
-- this will change the font size on wezterm when in zen mode
|
|
-- See alse also the Plugins/Wezterm section in this projects README
|
|
wezterm = {
|
|
enabled = true,
|
|
-- can be either an absolute font size or the number of incremental steps
|
|
font = "+4", -- (10% increase per step)
|
|
},
|
|
},
|
|
}},
|
|
{
|
|
"akinsho/bufferline.nvim",
|
|
event = "VeryLazy",
|
|
keys = {
|
|
{ "<leader>bp", "<Cmd>BufferLineTogglePin<CR>", desc = "Toggle Pin" },
|
|
{ "<leader>bP", "<Cmd>BufferLineGroupClose ungrouped<CR>", desc = "Delete Non-Pinned Buffers" },
|
|
{ "<leader>br", "<Cmd>BufferLineCloseRight<CR>", desc = "Delete Buffers to the Right" },
|
|
{ "<leader>bl", "<Cmd>BufferLineCloseLeft<CR>", desc = "Delete Buffers to the Left" },
|
|
{ "<S-h>", "<cmd>BufferLineCyclePrev<cr>", desc = "Prev Buffer" },
|
|
{ "<S-l>", "<cmd>BufferLineCycleNext<cr>", desc = "Next Buffer" },
|
|
{ "[b", "<cmd>BufferLineCyclePrev<cr>", desc = "Prev Buffer" },
|
|
{ "]b", "<cmd>BufferLineCycleNext<cr>", desc = "Next Buffer" },
|
|
{ "[B", "<cmd>BufferLineMovePrev<cr>", desc = "Move buffer prev" },
|
|
{ "]B", "<cmd>BufferLineMoveNext<cr>", desc = "Move buffer next" },
|
|
},
|
|
opts = {
|
|
options = {
|
|
-- stylua: ignore
|
|
-- close_command = function(n) Snacks.bufdelete(n) end,
|
|
-- stylua: ignore
|
|
-- right_mouse_command = function(n) Snacks.bufdelete(n) end,
|
|
diagnostics = "nvim_lsp",
|
|
always_show_bufferline = false,
|
|
-- diagnostics_indicator = function(_, _, diag)
|
|
-- local icons = LazyVim.config.icons.diagnostics
|
|
-- local ret = (diag.error and icons.Error .. diag.error .. " " or "")
|
|
-- .. (diag.warning and icons.Warn .. diag.warning or "")
|
|
-- return vim.trim(ret)
|
|
-- end,
|
|
offsets = {
|
|
{
|
|
filetype = "neo-tree",
|
|
text = "Neo-tree",
|
|
highlight = "Directory",
|
|
text_align = "left",
|
|
},
|
|
},
|
|
-- ---@param opts bufferline.IconFetcherOpts
|
|
-- get_element_icon = function(opts)
|
|
-- return LazyVim.config.icons.ft[opts.filetype]
|
|
-- end,
|
|
},
|
|
},
|
|
config = function(_, opts)
|
|
require("bufferline").setup(opts)
|
|
-- Fix bufferline when restoring a session
|
|
vim.api.nvim_create_autocmd({ "BufAdd", "BufDelete" }, {
|
|
callback = function()
|
|
vim.schedule(function()
|
|
pcall(nvim_bufferline)
|
|
end)
|
|
end,
|
|
})
|
|
end,
|
|
},
|
|
{"rhysd/committia.vim"},
|
|
{
|
|
's1n7ax/nvim-window-picker',
|
|
name = 'window-picker',
|
|
event = 'VeryLazy',
|
|
version = '2.*',
|
|
config = function()
|
|
require'window-picker'.setup()
|
|
end,
|
|
},
|
|
}
|