From ab06dbf6e4c557aa90cf7d7b87c1e4d1c26b3e2f Mon Sep 17 00:00:00 2001 From: janabhumi Date: Sat, 17 Sep 2022 17:26:13 +0300 Subject: [PATCH] plugin/theme: setup optional barbar plugin --- default.nix | 2 +- plugins/theme/barbar.lua | 38 ++++++++++++++++++++++++++++++++++++++ plugins/theme/default.nix | 29 ++++++++++++++++++++--------- 3 files changed, 59 insertions(+), 10 deletions(-) create mode 100644 plugins/theme/barbar.lua diff --git a/default.nix b/default.nix index fdb8607..67254a4 100644 --- a/default.nix +++ b/default.nix @@ -11,7 +11,7 @@ let plugins = callPlugins [ ./plugins/syntax ./plugins/explorer - (import ./plugins/theme { enableTabline = false; }) + (import ./plugins/theme { enableBarBar = true; }) ./plugins/lsp ./plugins/formatter ]; diff --git a/plugins/theme/barbar.lua b/plugins/theme/barbar.lua new file mode 100644 index 0000000..222b492 --- /dev/null +++ b/plugins/theme/barbar.lua @@ -0,0 +1,38 @@ +-- See: https://github.com/romgrk/barbar.nvim +require("bufferline").setup({ + auto_hide = false, + closable = false, + clickable = false, + icons = false, -- TODO: add icons (required nvim-web-devicons) +}) + +------------------------------------------------------------------------------- +-- Keybindings + +local opts = { silent = true } + +vim.keymap.set("n", "gB", "BufferPrevious", opts) +vim.keymap.set("n", "gb", "BufferNext", opts) +vim.keymap.set("n", "gQ", "BufferClose", opts) + +------------------------------------------------------------------------------- +-- Integration with nvim-tree + +local nvim_tree_events = require("nvim-tree.events") +local bufferline_state = require("bufferline.state") + +local function get_tree_size() + return require("nvim-tree.view").View.width +end + +nvim_tree_events.subscribe("TreeOpen", function() + bufferline_state.set_offset(get_tree_size()) +end) + +nvim_tree_events.subscribe("Resize", function() + bufferline_state.set_offset(get_tree_size()) +end) + +nvim_tree_events.subscribe("TreeClose", function() + bufferline_state.set_offset(0) +end) diff --git a/plugins/theme/default.nix b/plugins/theme/default.nix index 79f007c..fb9fc1a 100644 --- a/plugins/theme/default.nix +++ b/plugins/theme/default.nix @@ -1,16 +1,27 @@ -{ enableTabline ? false }: +{ enableTabline ? false +, enableBarBar ? false +}: -{ lib, catppuccin-nvim, lualine-nvim, lualine-lsp-progress, tabline-nvim, ... }: +{ lib +, catppuccin-nvim +, lualine-nvim +, lualine-lsp-progress +, tabline-nvim +, barbar-nvim +, ... +}: +let + lualinePlugins = [ lualine-nvim lualine-lsp-progress ]; +in { luaConfig = (builtins.readFile ./catppuccin-nvim.lua) + (builtins.readFile ./lualine.lua) - + (lib.optional enableTabline (builtins.readFile ./tabline.lua)); + + (lib.optional enableTabline (builtins.readFile ./tabline.lua)) + + (lib.optional enableBarBar (builtins.readFile ./barbar.lua)); - plugins = [ - catppuccin-nvim - - lualine-nvim - lualine-lsp-progress - ] ++ (lib.optional enableTabline [ tabline-nvim ]); + plugins = [ catppuccin-nvim ] + ++ lualinePlugins + ++ (lib.optional enableTabline [ tabline-nvim ]) + ++ (lib.optional enableBarBar [ barbar-nvim ]); }