302 lines
11 KiB
Lua
302 lines
11 KiB
Lua
return {
|
|
-- ╭───────────────────────────────────────╮
|
|
-- │ bufferline - for mistakes and stuff.. │
|
|
-- ╰───────────────────────────────────────╯
|
|
{
|
|
"akinsho/bufferline.nvim",
|
|
dependencies = { "echasnovski/mini.icons" },
|
|
version = "*",
|
|
opts = {
|
|
options = {
|
|
diagnostics = "nvim_lsp",
|
|
diagnostics_update_on_event = true, -- use nvim's diagnostic handler
|
|
diagnostics_indicator = function(count, level)
|
|
local icon = level:match("error") and " " or " "
|
|
return " " .. icon .. count
|
|
end,
|
|
offsets = { { filetype = "neo-tree", text = "File Explorer", highlight = "Directory" } },
|
|
-- ─< style >───────────────────────────────────────────────────────────────────────────
|
|
indicator = {
|
|
icon = "▎", -- this should be omitted if indicator style is not 'icon'
|
|
style = "icon",
|
|
},
|
|
move_wraps_at_ends = true, -- whether or not the move command "wraps" at the first or last position
|
|
separator_style = "slope",
|
|
-- ─< icons >───────────────────────────────────────────────────────────────────────────
|
|
modified_icon = "",
|
|
left_trunc_marker = "",
|
|
right_trunc_marker = "",
|
|
themable = true, -- allows highlight groups to be overriden i.e. sets highlights as default
|
|
close_icon = "",
|
|
buffer_close_icon = "",
|
|
show_buffer_icons = true, -- disable filetype icons for buffers
|
|
show_buffer_close_icons = true,
|
|
show_close_icon = true,
|
|
show_tab_indicators = true,
|
|
hover = {
|
|
enabled = true,
|
|
delay = 80,
|
|
reveal = { "close" },
|
|
hide = { "nvim_lsp" },
|
|
},
|
|
-- You can set buffer_mode to "list" or "tabbed" based on your preference.
|
|
buffer_mode = "list",
|
|
color_icons = true, -- whether or not to add the filetype icon highlights
|
|
},
|
|
},
|
|
config = function(_, opts)
|
|
require("bufferline").setup(opts)
|
|
-- Remap the tab key for buffer navigation (you can adjust the keys as needed)
|
|
vim.keymap.set("n", "<Tab>", "<cmd>BufferLineCycleNext<CR>")
|
|
vim.keymap.set("n", "<S-Tab>", "<cmd>BufferLineCyclePrev<CR>")
|
|
end,
|
|
},
|
|
|
|
-- ╭───────────────────────────────────╮
|
|
-- │ cmdline - for nice command inputs │
|
|
-- ╰───────────────────────────────────╯
|
|
{
|
|
"VonHeikemen/fine-cmdline.nvim",
|
|
dependencies = {
|
|
{ "MunifTanjim/nui.nvim" },
|
|
},
|
|
config = function()
|
|
require("fine-cmdline").setup({
|
|
cmdline = {
|
|
enable_keymaps = true,
|
|
smart_history = true,
|
|
prompt = " ",
|
|
},
|
|
popup = {
|
|
position = {
|
|
row = "10%",
|
|
col = "50%",
|
|
},
|
|
size = {
|
|
width = "60%",
|
|
},
|
|
border = {
|
|
style = "rounded",
|
|
},
|
|
win_options = {
|
|
winhighlight = "Normal:Normal,FloatBorder:FloatBorder",
|
|
},
|
|
},
|
|
hooks = {
|
|
before_mount = function(input)
|
|
-- code
|
|
end,
|
|
after_mount = function(input)
|
|
-- code
|
|
end,
|
|
set_keymaps = function(imap, feedkeys)
|
|
-- code
|
|
end,
|
|
},
|
|
})
|
|
end,
|
|
},
|
|
|
|
-- ╭───────────────────────────────────────╮
|
|
-- │ barbecue - for a nice breadcrump menu │
|
|
-- ╰───────────────────────────────────────╯
|
|
{
|
|
"utilyre/barbecue.nvim",
|
|
name = "barbecue",
|
|
version = "*",
|
|
dependencies = {
|
|
"SmiteshP/nvim-navic",
|
|
"echasnovski/mini.icons", -- optional dependency
|
|
},
|
|
opts = {
|
|
theme = {
|
|
-- this highlight is used to override other highlights
|
|
-- you can take advantage of its `bg` and set a background throughout your winbar
|
|
-- (e.g. basename will look like this: { fg = "#c0caf5", bold = true })
|
|
normal = { fg = "#c0caf5" },
|
|
|
|
-- these highlights correspond to symbols table from config
|
|
ellipsis = { fg = "#737aa2" },
|
|
separator = { fg = "#737aa2" },
|
|
modified = { fg = "#737aa2" },
|
|
|
|
-- these highlights represent the _text_ of three main parts of barbecue
|
|
dirname = { fg = "#737aa2" },
|
|
basename = { bold = true },
|
|
context = {},
|
|
|
|
-- these highlights are used for context/navic icons
|
|
context_file = { fg = "#ac8fe4" },
|
|
context_module = { fg = "#ac8fe4" },
|
|
context_namespace = { fg = "#ac8fe4" },
|
|
context_package = { fg = "#ac8fe4" },
|
|
context_class = { fg = "#ac8fe4" },
|
|
context_method = { fg = "#ac8fe4" },
|
|
context_property = { fg = "#ac8fe4" },
|
|
context_field = { fg = "#ac8fe4" },
|
|
context_constructor = { fg = "#ac8fe4" },
|
|
context_enum = { fg = "#ac8fe4" },
|
|
context_interface = { fg = "#ac8fe4" },
|
|
context_function = { fg = "#ac8fe4" },
|
|
context_variable = { fg = "#ac8fe4" },
|
|
context_constant = { fg = "#ac8fe4" },
|
|
context_string = { fg = "#ac8fe4" },
|
|
context_number = { fg = "#ac8fe4" },
|
|
context_boolean = { fg = "#ac8fe4" },
|
|
context_array = { fg = "#ac8fe4" },
|
|
context_object = { fg = "#ac8fe4" },
|
|
context_key = { fg = "#ac8fe4" },
|
|
context_null = { fg = "#ac8fe4" },
|
|
context_enum_member = { fg = "#ac8fe4" },
|
|
context_struct = { fg = "#ac8fe4" },
|
|
context_event = { fg = "#ac8fe4" },
|
|
context_operator = { fg = "#ac8fe4" },
|
|
context_type_parameter = { fg = "#ac8fe4" },
|
|
},
|
|
},
|
|
},
|
|
-- ╭─────────────────────────────────╮
|
|
-- │ indentlines - nice indent lines │
|
|
-- ╰─────────────────────────────────╯
|
|
{
|
|
"lukas-reineke/indent-blankline.nvim",
|
|
event = { "BufReadPre", "BufNewFile" },
|
|
main = "ibl",
|
|
opts = {
|
|
indent = {
|
|
char = "┊",
|
|
tab_char = "┊",
|
|
-- char = "│",
|
|
-- tab_char = "│",
|
|
},
|
|
},
|
|
},
|
|
|
|
-- ╭──────────────────╮
|
|
-- │ markdown plugins │
|
|
-- ╰──────────────────╯
|
|
{
|
|
"MeanderingProgrammer/render-markdown.nvim",
|
|
opts = {},
|
|
-- dependencies = { 'nvim-treesitter/nvim-treesitter', 'echasnovski/mini.nvim' }, -- if you use the mini.nvim suite
|
|
dependencies = { "nvim-treesitter/nvim-treesitter", "echasnovski/mini.icons" }, -- if you use standalone mini plugins
|
|
-- dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' }, -- if you prefer nvim-web-devicons
|
|
},
|
|
|
|
-- ╭────────────────────────────────────╮
|
|
-- │ notify for excellent notifications │
|
|
-- ╰────────────────────────────────────╯
|
|
{
|
|
"rcarriga/nvim-notify",
|
|
config = function()
|
|
require("notify").setup({
|
|
stages = "slide",
|
|
background_colour = "FloatShadow",
|
|
max_width = 120,
|
|
timeout = 2750,
|
|
render = "wrapped-compact",
|
|
-- Minimum/Maximum width for notification windows
|
|
minimum_width = 30,
|
|
maximum_width = 120,
|
|
|
|
-- Function called when a new window is opened, use for changing win settings/config
|
|
on_open = nil,
|
|
|
|
-- Function called when a window is closed
|
|
on_close = nil,
|
|
icons = {
|
|
ERROR = "", -- alternate symbol
|
|
WARN = "",
|
|
INFO = "",
|
|
DEBUG = "",
|
|
TRACE = "",
|
|
},
|
|
})
|
|
vim.notify = require("notify")
|
|
end,
|
|
},
|
|
-- ╭──────────────────────────────╮
|
|
-- │ slimline - nice bar for nvim │
|
|
-- ╰──────────────────────────────╯
|
|
{
|
|
-- Calls `require('slimline').setup({})`
|
|
"sschleemilch/slimline.nvim",
|
|
opts = {
|
|
bold = true, -- makes primary parts and mode bold
|
|
verbose_mode = false, -- Mode as single letter or as a word
|
|
style = "bg", -- or "fg". Whether highlights should be applied to bg or fg of components
|
|
mode_follow_style = true, -- Whether the mode color components should follow the style option
|
|
components = { -- Choose components and their location
|
|
left = {
|
|
"mode",
|
|
-- "path",
|
|
-- "git",
|
|
},
|
|
center = {
|
|
"path",
|
|
"git",
|
|
},
|
|
right = {
|
|
"diagnostics",
|
|
"filetype_lsp",
|
|
"progress",
|
|
},
|
|
},
|
|
spaces = {
|
|
components = " ", -- string between components
|
|
left = " ", -- string at the start of the line
|
|
right = " ", -- string at the end of the line
|
|
},
|
|
sep = {
|
|
hide = {
|
|
first = false, -- hides the first separator
|
|
last = false, -- hides the last separator
|
|
},
|
|
left = "", -- left separator of components
|
|
right = "", -- right separator of components
|
|
},
|
|
hl = {
|
|
modes = {
|
|
normal = "Type", -- highlight base of modes
|
|
insert = "Function",
|
|
pending = "Boolean",
|
|
visual = "Keyword",
|
|
command = "String",
|
|
},
|
|
base = "Comment", -- highlight of everything in in between components
|
|
primary = "Normal", -- highlight of primary parts (e.g. filename)
|
|
secondary = "Comment", -- highlight of secondary parts (e.g. filepath)
|
|
},
|
|
icons = {
|
|
diagnostics = {
|
|
ERROR = " ",
|
|
WARN = " ",
|
|
HINT = " ",
|
|
INFO = " ",
|
|
},
|
|
git = {
|
|
branch = "",
|
|
},
|
|
folder = " ",
|
|
lines = " ",
|
|
},
|
|
},
|
|
},
|
|
|
|
-- ╭────────────────────────────────────────╮
|
|
-- │ which key - to know what to press next │
|
|
-- ╰────────────────────────────────────────╯
|
|
{
|
|
"folke/which-key.nvim",
|
|
event = "VeryLazy",
|
|
init = function()
|
|
vim.o.timeout = true
|
|
vim.o.timeoutlen = 350
|
|
end,
|
|
opts = {
|
|
-- your configuration comes here
|
|
-- or leave it empty to use the default settings
|
|
-- refer to the configuration section below
|
|
},
|
|
},
|
|
}
|