refactor(nvim): replace bufferline w/ barbar
This commit is contained in:
parent
fca0c5a0a4
commit
e4d005a070
@ -1,18 +0,0 @@
|
|||||||
local bufferline = require('bufferline')
|
|
||||||
|
|
||||||
bufferline.setup({
|
|
||||||
options = {
|
|
||||||
numbers = function(opts)
|
|
||||||
return string.format('%s', opts.id)
|
|
||||||
end,
|
|
||||||
diagnostics = 'nvim_lsp',
|
|
||||||
offsets = {
|
|
||||||
{
|
|
||||||
filetype = 'NvimTree',
|
|
||||||
text = 'File Explorer',
|
|
||||||
highlight = 'Directory',
|
|
||||||
text_align = 'left',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
@ -130,10 +130,10 @@ vim.keymap.set("n", "<leader>dl", dap.run_last, { silent = true, desc = "DAP: Ru
|
|||||||
vim.keymap.set("n", "<leader>/", ":CommentToggle<CR>", { silent = true, desc = "Toggle Comment" })
|
vim.keymap.set("n", "<leader>/", ":CommentToggle<CR>", { silent = true, desc = "Toggle Comment" })
|
||||||
vim.keymap.set("v", "<leader>/", ":'<,'>CommentToggle<CR>", { silent = true, desc = "Toggle Selection Comment" })
|
vim.keymap.set("v", "<leader>/", ":'<,'>CommentToggle<CR>", { silent = true, desc = "Toggle Selection Comment" })
|
||||||
|
|
||||||
-- Bufferline mappings
|
-- Buffer mappings
|
||||||
vim.keymap.set("n", "<A-a>", ":BufferLineCyclePrev<CR>", { silent = true, desc = "Go to Previous Buffer" })
|
vim.keymap.set("n", "<A-a>", ":BufferPrevious<CR>", { silent = true, desc = "Go to Previous Buffer" })
|
||||||
vim.keymap.set("n", "<A-s>", ":BufferLineCycleNext<CR>", { silent = true, desc = "Go to Next Buffer" })
|
vim.keymap.set("n", "<A-s>", ":BufferNext<CR>", { silent = true, desc = "Go to Next Buffer" })
|
||||||
vim.keymap.set("n", "<A-x>", require("utils.funcs").close_buffer, { silent = true, desc = "Close Buffer" })
|
vim.keymap.set("n", "<A-x>", ":BufferClose<CR>", { silent = true, desc = "Close Buffer" })
|
||||||
|
|
||||||
-- Vim Notify Mappings
|
-- Vim Notify Mappings
|
||||||
vim.keymap.set("n", "<leader>nv", ":Telescope notify<CR>", { silent = true, desc = "Notifications: Search" })
|
vim.keymap.set("n", "<leader>nv", ":Telescope notify<CR>", { silent = true, desc = "Notifications: Search" })
|
||||||
|
@ -80,21 +80,21 @@ return packer.startup({
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Tab Line at top of editor
|
-- Tab Line at top of editor
|
||||||
|
|
||||||
use({
|
use({
|
||||||
"akinsho/nvim-bufferline.lua",
|
"romgrk/barbar.nvim",
|
||||||
after = "nvim-web-devicons",
|
requires = { "kyazdani42/nvim-web-devicons" },
|
||||||
requires = { "nvim-web-devicons" },
|
|
||||||
config = function()
|
config = function()
|
||||||
require("plugins.configs.bufferline")
|
require("bufferline").setup({
|
||||||
|
animation = true,
|
||||||
|
auto_hide = true,
|
||||||
|
})
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Statusline.
|
-- Statusline.
|
||||||
use({
|
use({
|
||||||
"nvim-lualine/lualine.nvim",
|
"nvim-lualine/lualine.nvim",
|
||||||
after = {
|
|
||||||
"nvim-bufferline.lua",
|
|
||||||
},
|
|
||||||
config = function()
|
config = function()
|
||||||
require("plugins.configs.statusline")
|
require("plugins.configs.statusline")
|
||||||
end,
|
end,
|
||||||
|
@ -1,121 +1,5 @@
|
|||||||
local U = {}
|
local U = {}
|
||||||
|
|
||||||
U.close_buffer = function(force)
|
|
||||||
-- Yanked from NvChad, thanks to them. This saves
|
|
||||||
-- a lot of pain
|
|
||||||
|
|
||||||
-- This is a modification of a NeoVim plugin from
|
|
||||||
-- Author: ojroques - Olivier Roques
|
|
||||||
-- Src: https://github.com/ojroques/nvim-bufdel
|
|
||||||
|
|
||||||
-- Options
|
|
||||||
local opts = {
|
|
||||||
next = 'cycle', -- how to retrieve the next buffer
|
|
||||||
quit = false, -- exit when last buffer is deleted
|
|
||||||
--TODO make this a chadrc flag/option
|
|
||||||
}
|
|
||||||
|
|
||||||
-- ----------------
|
|
||||||
-- Helper functions
|
|
||||||
-- ----------------
|
|
||||||
|
|
||||||
-- Switch to buffer 'buf' on each window from list 'windows'
|
|
||||||
local function switch_buffer(windows, buf)
|
|
||||||
local cur_win = vim.fn.winnr()
|
|
||||||
for _, winid in ipairs(windows) do
|
|
||||||
vim.cmd(string.format('%d wincmd w', vim.fn.win_id2win(winid)))
|
|
||||||
vim.cmd(string.format('buffer %d', buf))
|
|
||||||
end
|
|
||||||
vim.cmd(string.format('%d wincmd w', cur_win)) -- return to original window
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Select the first buffer with a number greater than given buffer
|
|
||||||
local function get_next_buf(buf)
|
|
||||||
local next = vim.fn.bufnr('#')
|
|
||||||
if opts.next == 'alternate' and vim.fn.buflisted(next) == 1 then
|
|
||||||
return next
|
|
||||||
end
|
|
||||||
for i = 0, vim.fn.bufnr('$') - 1 do
|
|
||||||
next = (buf + i) % vim.fn.bufnr('$') + 1 -- will loop back to 1
|
|
||||||
if vim.fn.buflisted(next) == 1 then
|
|
||||||
return next
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- ----------------
|
|
||||||
-- End helper functions
|
|
||||||
-- ----------------
|
|
||||||
|
|
||||||
local buf = vim.fn.bufnr()
|
|
||||||
if vim.fn.buflisted(buf) == 0 then -- exit if buffer number is invalid
|
|
||||||
vim.cmd('close')
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
if #vim.fn.getbufinfo({ buflisted = 1 }) < 2 then
|
|
||||||
if opts.quit then
|
|
||||||
-- exit when there is only one buffer left
|
|
||||||
if force then
|
|
||||||
vim.cmd('qall!')
|
|
||||||
else
|
|
||||||
vim.cmd('confirm qall')
|
|
||||||
end
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local chad_term, _ = pcall(function()
|
|
||||||
return vim.api.nvim_buf_get_var(buf, 'term_type')
|
|
||||||
end)
|
|
||||||
|
|
||||||
if chad_term then
|
|
||||||
-- Must be a window type
|
|
||||||
vim.cmd(string.format('setlocal nobl', buf))
|
|
||||||
vim.cmd('enew')
|
|
||||||
return
|
|
||||||
end
|
|
||||||
-- don't exit and create a new empty buffer
|
|
||||||
vim.cmd('enew')
|
|
||||||
vim.cmd('bp')
|
|
||||||
end
|
|
||||||
|
|
||||||
local next_buf = get_next_buf(buf)
|
|
||||||
local windows = vim.fn.getbufinfo(buf)[1].windows
|
|
||||||
|
|
||||||
-- force deletion of terminal buffers to avoid the prompt
|
|
||||||
if force or vim.fn.getbufvar(buf, '&buftype') == 'terminal' then
|
|
||||||
local chad_term, type = pcall(function()
|
|
||||||
return vim.api.nvim_buf_get_var(buf, 'term_type')
|
|
||||||
end)
|
|
||||||
|
|
||||||
-- TODO this scope is error prone, make resilient
|
|
||||||
if chad_term then
|
|
||||||
if type == 'wind' then
|
|
||||||
-- hide from bufferline
|
|
||||||
vim.cmd(string.format('%d bufdo setlocal nobl', buf))
|
|
||||||
-- swtich to another buff
|
|
||||||
-- TODO switch to next bufffer, this works too
|
|
||||||
vim.cmd('BufferLineCycleNext')
|
|
||||||
else
|
|
||||||
local cur_win = vim.fn.winnr()
|
|
||||||
-- we can close this window
|
|
||||||
vim.cmd(string.format('%d wincmd c', cur_win))
|
|
||||||
return
|
|
||||||
end
|
|
||||||
else
|
|
||||||
switch_buffer(windows, next_buf)
|
|
||||||
vim.cmd(string.format('bd! %d', buf))
|
|
||||||
end
|
|
||||||
else
|
|
||||||
switch_buffer(windows, next_buf)
|
|
||||||
vim.cmd(string.format('silent! confirm bd %d', buf))
|
|
||||||
end
|
|
||||||
-- revert buffer switches if user has canceled deletion
|
|
||||||
if vim.fn.buflisted(buf) == 1 then
|
|
||||||
switch_buffer(windows, buf)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
U.rgbToHex = function(rgb)
|
U.rgbToHex = function(rgb)
|
||||||
return string.format('#%06x', rgb)
|
return string.format('#%06x', rgb)
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user