From a686e4b253fd145669d352a299f1b5b41a1a1cb7 Mon Sep 17 00:00:00 2001 From: janabhumi Date: Sat, 17 Sep 2022 15:59:06 +0300 Subject: [PATCH] plugin/theme: setup optional tabline plugin --- default.nix | 13 ++++++++----- lib.nix | 14 +++++++++----- plugins/explorer/nvim-tree.lua | 2 +- plugins/theme/default.nix | 9 ++++++--- plugins/theme/tabline.lua | 2 ++ 5 files changed, 26 insertions(+), 14 deletions(-) create mode 100644 plugins/theme/tabline.lua diff --git a/default.nix b/default.nix index 5b5a916..fdb8607 100644 --- a/default.nix +++ b/default.nix @@ -3,18 +3,21 @@ let lib = import ./lib.nix; - callPlugins = list: builtins.map (p: import p vimPlugins) list; + pluginParams = vimPlugins // { inherit lib; }; + + callPlugin = op: if builtins.isFunction op then op pluginParams else import op pluginParams; + callPlugins = list: builtins.map callPlugin list; plugins = callPlugins [ ./plugins/syntax ./plugins/explorer - ./plugins/theme + (import ./plugins/theme { enableTabline = false; }) ./plugins/lsp ./plugins/formatter ]; - basicConfigs = map builtins.readFile [ ./config/basic.lua ]; - pluginConfigs = lib.extractAttrs "luaConfig" plugins; + basicConfigs = builtins.map builtins.readFile [ ./config/basic.lua ]; + pluginConfigs = builtins.catAttrs "luaConfig" plugins; allConfigs = basicConfigs ++ pluginConfigs; in wrapNeovim neovim-unwrapped { @@ -25,6 +28,6 @@ wrapNeovim neovim-unwrapped { configure = { customRC = lib.mkLuaRc allConfigs; - packages.myVimPackages = { start = lib.extractAttrs "plugins" plugins; }; + packages.myVimPackages = { start = builtins.catAttrs "plugins" plugins; }; }; } diff --git a/lib.nix b/lib.nix index c4479bd..2a198b5 100644 --- a/lib.nix +++ b/lib.nix @@ -19,13 +19,17 @@ rec { in foldr concat "" list; - extractAttrs = attr: list: + ############################################################################ + # Configs + + optional = cond: val: let - getAttr' = builtins.getAttr attr; - hasAttr' = builtins.hasAttr attr; - filteredList = builtins.filter hasAttr' list; + def = + if builtins.isList val then [ ] + else if builtins.isString val then "" + else null; in - builtins.map getAttr' filteredList; + if cond then val else def; ############################################################################# # Lua diff --git a/plugins/explorer/nvim-tree.lua b/plugins/explorer/nvim-tree.lua index 01d6e0b..4f6182f 100644 --- a/plugins/explorer/nvim-tree.lua +++ b/plugins/explorer/nvim-tree.lua @@ -7,5 +7,5 @@ vim.g.loaded_netrwPlugin = 1 -- empty setup using defaults require("nvim-tree").setup() -vim.keymap.set("n", "nt", ":NvimTreeFocus") +vim.keymap.set("n", "nt", ":NvimTreeToggle") vim.keymap.set("n", "nf", ":NvimTreeFindFile") diff --git a/plugins/theme/default.nix b/plugins/theme/default.nix index 7a70e5b..79f007c 100644 --- a/plugins/theme/default.nix +++ b/plugins/theme/default.nix @@ -1,13 +1,16 @@ -{ catppuccin-nvim, lualine-nvim, lualine-lsp-progress, ... }: +{ enableTabline ? false }: + +{ lib, catppuccin-nvim, lualine-nvim, lualine-lsp-progress, tabline-nvim, ... }: { luaConfig = (builtins.readFile ./catppuccin-nvim.lua) - + (builtins.readFile ./lualine.lua); + + (builtins.readFile ./lualine.lua) + + (lib.optional enableTabline (builtins.readFile ./tabline.lua)); plugins = [ catppuccin-nvim lualine-nvim lualine-lsp-progress - ]; + ] ++ (lib.optional enableTabline [ tabline-nvim ]); } diff --git a/plugins/theme/tabline.lua b/plugins/theme/tabline.lua new file mode 100644 index 0000000..2317233 --- /dev/null +++ b/plugins/theme/tabline.lua @@ -0,0 +1,2 @@ +-- See: https://github.com/kdheepak/tabline.nvim +require("tabline").setup({})