mirror of
https://github.com/pojokcodeid/nvim-lazy.git
synced 2025-08-09 12:25:12 +02:00
enc: Change buffer line to cookieline
This commit is contained in:
parent
76277745b3
commit
b30a97b80a
5 changed files with 207 additions and 37 deletions
|
@ -4,6 +4,6 @@ require("pcode.config.lazy_lib")
|
|||
require("pcode.user.colorscheme")
|
||||
require("pcode.core.neovide")
|
||||
|
||||
vim.keymap.set({ "n", "v", "x" }, "<C-i>", function()
|
||||
--[[ vim.keymap.set({ "n", "v", "x" }, "<C-i>", function()
|
||||
require("gemini").ask_gemini()
|
||||
end, { noremap = true, silent = true, desc = "Prompt Gemini CLI" })
|
||||
end, { noremap = true, silent = true, desc = "Prompt Gemini CLI" }) ]]
|
||||
|
|
|
@ -1,34 +1,161 @@
|
|||
return {
|
||||
"akinsho/bufferline.nvim",
|
||||
branch = "main",
|
||||
event = { "BufRead", "InsertEnter", "BufNewFile" },
|
||||
dependencies = "pojokcodeid/auto-bufferline.nvim",
|
||||
config = function()
|
||||
vim.opt.termguicolors = true
|
||||
local config = require("auto-bufferline").config()
|
||||
require("bufferline").setup(config)
|
||||
end,
|
||||
keys = {
|
||||
{ "<leader>b", "", desc = " Buffers", mode = "n" },
|
||||
{
|
||||
"<leader>bb",
|
||||
function()
|
||||
require("telescope.builtin").buffers(require("telescope.themes").get_dropdown({ previewer = false }))
|
||||
end,
|
||||
desc = "All Buffer",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>bc",
|
||||
function()
|
||||
require("auto-bufferline.configs.utils").bufremove()
|
||||
end,
|
||||
desc = "Close current buffer",
|
||||
mode = "n",
|
||||
},
|
||||
{ "<leader>bd", "<cmd>BufferLineCloseLeft<cr>", desc = "Close Buffer Left", mode = "n" },
|
||||
{ "<leader>bD", "<cmd>BufferLineCloseRight<cr>", desc = "Close Buffer Right", mode = "n" },
|
||||
{ "<leader>ba", "<cmd>BufferLineCloseOthers<cr>", desc = "Close Buffer Other", mode = "n" },
|
||||
{ "<leader>bA", "<cmd>BufferLineCloseOthers<cr><cmd>bd!<cr>", desc = "Close Buffer All", mode = "n" },
|
||||
},
|
||||
"willothy/nvim-cokeline",
|
||||
event = { "BufRead", "BufNewFile" },
|
||||
opts = function()
|
||||
local truncate_text = function(text, max_length)
|
||||
if #text > max_length then
|
||||
return text:sub(1, max_length) .. "..."
|
||||
else
|
||||
return text
|
||||
end
|
||||
end
|
||||
|
||||
local yellow = vim.g.terminal_color_3
|
||||
local hlgroups = require("cokeline.hlgroups")
|
||||
local hl_attr = hlgroups.get_hl_attr
|
||||
return {
|
||||
sidebar = {
|
||||
filetype = { "NvimTree", "neo-tree" },
|
||||
components = {
|
||||
{
|
||||
text = "",
|
||||
fg = hl_attr("CursorLine", "bg"),
|
||||
bg = hl_attr("Normal", "bg"),
|
||||
},
|
||||
|
||||
{
|
||||
text = " Explorer ",
|
||||
fg = yellow,
|
||||
bg = function()
|
||||
return hl_attr("CursorLine", "bg")
|
||||
end,
|
||||
bold = true,
|
||||
},
|
||||
{
|
||||
text = "",
|
||||
fg = hl_attr("CursorLine", "bg"),
|
||||
bg = hl_attr("Normal", "bg"),
|
||||
},
|
||||
},
|
||||
},
|
||||
default_hl = {
|
||||
fg = function(buffer)
|
||||
return buffer.is_focused and hl_attr("Normal", "fg") or hl_attr("Comment", "fg")
|
||||
end,
|
||||
bg = function(buffer)
|
||||
return buffer.is_focused and hl_attr("CursorLine", "bg") or hl_attr("Normal", "bg")
|
||||
end,
|
||||
},
|
||||
components = {
|
||||
{
|
||||
text = "|",
|
||||
fg = hl_attr("Comment", "fg"),
|
||||
bg = hl_attr("Normal", "bg"),
|
||||
},
|
||||
{
|
||||
text = "",
|
||||
fg = function(buffer)
|
||||
return buffer.is_focused and hl_attr("CursorLine", "bg") or hl_attr("Normal", "bg")
|
||||
end,
|
||||
bg = hl_attr("Normal", "bg"),
|
||||
},
|
||||
{
|
||||
text = function(buffer)
|
||||
return buffer.devicon.icon
|
||||
end,
|
||||
fg = function(buffer)
|
||||
return buffer.devicon.color
|
||||
end,
|
||||
},
|
||||
{
|
||||
text = " ",
|
||||
},
|
||||
{
|
||||
text = function(buffer)
|
||||
return truncate_text(buffer.filename, 12) .. " "
|
||||
end,
|
||||
style = function(buffer)
|
||||
return buffer.is_focused and "bold" or nil
|
||||
end,
|
||||
italic = function(buffer)
|
||||
return buffer.is_focused and true or nil
|
||||
end,
|
||||
},
|
||||
{
|
||||
text = "",
|
||||
delete_buffer_on_left_click = true,
|
||||
},
|
||||
{
|
||||
text = "",
|
||||
fg = function(buffer)
|
||||
return buffer.is_focused and hl_attr("CursorLine", "bg") or hl_attr("Normal", "bg")
|
||||
end,
|
||||
bg = hl_attr("Normal", "bg"),
|
||||
},
|
||||
},
|
||||
}
|
||||
end,
|
||||
keys = {
|
||||
{ "<leader>b", "", desc = " Buffers", mode = "n" },
|
||||
{
|
||||
"<Leader>bp",
|
||||
"<Plug>(cokeline-switch-prev)",
|
||||
desc = "Focus Previous buffer",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<Leader>bn",
|
||||
"<Plug>(cokeline-switch-next)",
|
||||
desc = "Focus next buffer",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>bb",
|
||||
function()
|
||||
require("telescope.builtin").buffers(require("telescope.themes").get_dropdown({ previewer = false }))
|
||||
end,
|
||||
desc = "All Buffer",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<leader>bc",
|
||||
function()
|
||||
require("pcode.user.buffer").bufremove()
|
||||
end,
|
||||
desc = "Close current buffer",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<S-Tab>",
|
||||
"<Plug>(cokeline-focus-prev)",
|
||||
desc = "Focus previous buffer",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<Tab>",
|
||||
"<Plug>(cokeline-focus-next)",
|
||||
desc = "Focus buffer Next",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<S-PageUp>",
|
||||
"<Plug>(cokeline-switch-prev)",
|
||||
desc = "Switch to previous buffer",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<S-PageDown>",
|
||||
"<Plug>(cokeline-switch-next)",
|
||||
desc = "Switch to next buffer",
|
||||
mode = "n",
|
||||
},
|
||||
{
|
||||
"<S-t>",
|
||||
function()
|
||||
require("pcode.user.buffer").bufremove()
|
||||
end,
|
||||
desc = "Close Current Buffer",
|
||||
mode = "n",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
44
lua/pcode/user/buffer.lua
Normal file
44
lua/pcode/user/buffer.lua
Normal file
|
@ -0,0 +1,44 @@
|
|||
local M = {}
|
||||
function M.bufremove(buf)
|
||||
buf = buf or 0
|
||||
buf = buf == 0 and vim.api.nvim_get_current_buf() or buf
|
||||
|
||||
if vim.bo.modified then
|
||||
local choice = vim.fn.confirm(("Save changes to %q?"):format(vim.fn.bufname()), "&Yes\n&No\n&Cancel")
|
||||
if choice == 0 then -- Cancel
|
||||
return
|
||||
end
|
||||
if choice == 1 then -- Yes
|
||||
vim.cmd.write()
|
||||
end
|
||||
end
|
||||
|
||||
for _, win in ipairs(vim.fn.win_findbuf(buf)) do
|
||||
vim.api.nvim_win_call(win, function()
|
||||
if not vim.api.nvim_win_is_valid(win) or vim.api.nvim_win_get_buf(win) ~= buf then
|
||||
return
|
||||
end
|
||||
-- Try using alternate buffer
|
||||
local alt = vim.fn.bufnr("#")
|
||||
if alt ~= buf and vim.fn.buflisted(alt) == 1 then
|
||||
vim.api.nvim_win_set_buf(win, alt)
|
||||
return
|
||||
end
|
||||
|
||||
-- Try using previous buffer
|
||||
local has_previous = pcall(vim.cmd, "bprevious")
|
||||
if has_previous and buf ~= vim.api.nvim_win_get_buf(win) then
|
||||
return
|
||||
end
|
||||
|
||||
-- Create new listed buffer
|
||||
local new_buf = vim.api.nvim_create_buf(true, false)
|
||||
vim.api.nvim_win_set_buf(win, new_buf)
|
||||
end)
|
||||
end
|
||||
if vim.api.nvim_buf_is_valid(buf) then
|
||||
pcall(vim.cmd, "bdelete! " .. buf)
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
|
@ -18,7 +18,7 @@ return {
|
|||
opts = {
|
||||
-- for more options check out https://github.com/pojokcodeid/auto-lualine.nvim
|
||||
setColor = "auto",
|
||||
setOption = "parallelogram",
|
||||
setOption = "roundedall",
|
||||
setMode = 5,
|
||||
},
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue