From e23936b1dc3f68eaeb3eda0c0fab22faedb93765 Mon Sep 17 00:00:00 2001 From: Daniel Kempkens Date: Wed, 25 May 2022 20:19:11 +0200 Subject: [PATCH] nvim: Switch from lualine to heirline --- config/nvim/nifoc/statusline.fnl | 295 +++++++++++++++++++++++++------ config/nvim/plugins/heirline.fnl | 33 ++++ config/nvim/plugins/lualine.fnl | 31 ---- flake.lock | 36 ++-- programs/nvim/default.nix | 4 +- programs/nvim/plugins.nix | 81 +++++---- programs/nvim/plugins.yaml | 3 +- 7 files changed, 342 insertions(+), 141 deletions(-) create mode 100644 config/nvim/plugins/heirline.fnl delete mode 100644 config/nvim/plugins/lualine.fnl diff --git a/config/nvim/nifoc/statusline.fnl b/config/nvim/nifoc/statusline.fnl index ab5ff6f..59af7f4 100644 --- a/config/nvim/nifoc/statusline.fnl +++ b/config/nvim/nifoc/statusline.fnl @@ -1,62 +1,249 @@ -(let [mod {} - web-devicons (require :nvim-web-devicons)] - (fn buffer-not-empty? [] - (not= (vim.fn.empty (vim.fn.expand "%:t")) 1)) - +(let [mod {:heirline {}} + api vim.api + heirline-utils (require :heirline.utils) + heirline-conditions (require :heirline.conditions) + web-devicons (require :nvim-web-devicons) + dracula (require :dracula) + colors (dracula.colors)] (fn buffer-variable-exists? [key] - (and (buffer-not-empty?) (not= (. vim.b key) nil))) + (not= (. vim :b key) nil)) - (fn maybe-insert-git-status [format value result] - (when (and (not= value nil) (> value 0)) - (table.insert result (string.format format value)))) + (fn get-current-line [] + (let [cl (api.nvim_win_get_cursor 0)] + (. cl 1))) - (fn mod.line-column [] - (let [line (tostring (vim.fn.line ".")) - column (tostring (vim.fn.col "."))] - (string.format "%3s:%-3s" line column))) + (fn get-total-lines [] + (vim.api.nvim_buf_line_count 0)) - (fn mod.current-line-percent [] - (let [current-line (vim.fn.line ".") - total-lines (vim.fn.line "$")] - (if (= current-line 1) :Top - (= current-line total-lines) :Bot - "%2p%%"))) + ;; Utils + (set mod.heirline.default-hl + (fn [] + {:bg colors.black})) + (set mod.heirline.space {:provider " "}) + (set mod.heirline.spacer {:provider " " :hl {:fg colors.bg :bg colors.bg}}) + ;; Mode + (set mod.heirline.vi-mode + {:init (fn [self] + (let [mode (. (api.nvim_get_mode) :mode)] + (set self.mode mode))) + :static {:mode-names {:n :NORMAL + :no :O-PENDING + :nov :O-PENDING + :noV :O-PENDING + "no\022" :O-PENDING + :niI :NORMAL + :niR :NORMAL + :niV :NORMAL + :nt :NORMAL + :v :VISUAL + :vs :VISUAL + :V :V-LINE + :Vs :V-LINE + "\022" :V-BLOCK + "\022s" :V-BLOCK + :s :SELECT + :S :S-LINE + "\019" :S-BLOCK + :i :INSERT + :ic :INSERT + :ix :INSERT + :R :REPLACE + :Rc :REPLACE + :Rx :REPLACE + :Rv :V-REPLACE + :Rvc :V-REPLACE + :Rvx :V-REPLACE + :c :COMMAND + :cv :EX + :ce :EX + :r :REPLACE + :rm :MORE + :r? :CONFIRM + :! :SHELL + :t :TERMINAL} + :mode-hl {:n {:fg colors.black :bg colors.purple :bold true} + :i {:fg colors.black :bg colors.green :bold true} + :v {:fg colors.black :bg colors.pink :bold true} + :V {:fg colors.black :bg colors.pink :bold true} + "\022" {:fg colors.black :bg colors.pink :bold true} + :c {:fg colors.black :bg colors.yellow :bold true} + :s {:fg colors.black :bg colors.orange :bold true} + :S {:fg colors.black :bg colors.orange :bold true} + "\019" {:fg colors.black + :bg colors.orange + :bold true} + :R {:fg colors.black :bg colors.yellow :bold true} + :r {:fg colors.black :bg colors.yellow :bold true} + :! {:fg colors.black :bg colors.purple :bold true} + :t {:fg colors.black :bg colors.purple :bold true}}} + :provider (fn [self] + (.. " " (. self :mode-names self.mode) " ")) + :hl (fn [self] + (let [short-mode (self.mode:sub 1 1)] + (. self :mode-hl short-mode)))}) + ;; Filetype + (set mod.heirline.filetype-block + {:init (fn [self] + (set self.filename (api.nvim_buf_get_name 0)))}) + (set mod.heirline.file-icon + {:init (fn [self] + (let [filename self.filename + ext (vim.fn.fnamemodify filename ":e") + (icon color) (web-devicons.get_icon_color filename ext + {:default true})] + (set self.icon icon) + (set self.icon-color color))) + :provider (fn [self] + (when self.icon + (.. self.icon " "))) + :hl (fn [self] + {:fg self.icon-color})}) + (set mod.heirline.filetype + {:provider (fn [] + (let [ft vim.bo.filetype] + (if (> (ft:len) 0) ft "no ft"))) + :hl {:fg colors.white}}) + (set mod.heirline.filetype-block + (heirline-utils.insert mod.heirline.filetype-block + mod.heirline.file-icon mod.heirline.filetype)) + ;; git + (set mod.heirline.git {:condition heirline-conditions.is_git_repo + :init (fn [self] + (let [git-status vim.b.gitsigns_status_dict] + (set self.git-head git-status.head) + (set self.git-added (or git-status.added 0)) + (set self.git-removed + (or git-status.removed 0)) + (set self.git-changed + (or git-status.changed 0)) + (set self.has-changes? + (or (> self.git-added 0) + (> self.git-removed 0) + (> self.git-changed 0))))) + 1 {:provider (fn [self] + (.. "  " self.git-head " ")) + :hl {:fg colors.black :bg colors.orange :bold true}} + 2 {:condition (fn [self] + self.has-changes?) + :provider " "} + 3 {:provider (fn [self] + (let [spacer (if (or (> self.git-removed + 0) + (> self.git-changed + 0)) + " " "")] + (when (> self.git-added 0) + (.. " " self.git-added spacer)))) + :hl {:fg colors.bright_green}} + 4 {:provider (fn [self] + (let [spacer (if (> self.git-changed 0) + " " "")] + (when (> self.git-removed 0) + (.. " " self.git-removed spacer)))) + :hl {:fg colors.bright_red}} + 5 {:provider (fn [self] + (when (> self.git-changed 0) + (.. " " self.git-changed))) + :hl {:fg colors.cyan}}}) + ;; Diagnostics + (set mod.heirline.diagnostics + {:condition heirline-conditions.has_diagnostics + :init (fn [self] + (let [d vim.diagnostic] + (set self.errors + (length (d.get 0 {:severity d.severity.ERROR}))) + (set self.warnings + (length (d.get 0 {:severity d.severity.WARN}))) + (set self.info (length (d.get 0 {:severity d.severity.INFO}))) + (set self.hints + (length (d.get 0 {:severity d.severity.HINT}))))) + 1 {:provider (fn [self] + (let [spacer (if (or (> self.warnings 0) (> self.info 0) + (> self.hints 0)) + " " "")] + (when (> self.errors 0) + (.. " " self.errors spacer)))) + :hl {:fg colors.red}} + 2 {:provider (fn [self] + (let [spacer (if (or (> self.info 0) (> self.hints 0)) + " " "")] + (when (> self.warnings 0) + (.. " " self.warnings spacer)))) + :hl {:fg colors.yellow}} + 3 {:provider (fn [self] + (let [spacer (if (> self.hints 0) " " "")] + (when (> self.info 0) + (.. " " self.info spacer)))) + :hl {:fg colors.cyan}} + 4 {:provider (fn [self] + (when (> self.hints 0) + (.. " " self.hints))) + :hl {:fg colors.cyan}}}) + ;; Current Function + (set mod.heirline.current-function + {:condition heirline-conditions.lsp_attached + :provider (fn [] + (let [ctx vim.b.nifoc_lsp_current_context] + (when (and (not= ctx nil) (> (ctx:len) 0)) + ctx))) + :hl {:fg colors.white}}) + ;; Buffer Options + (set mod.heirline.buffer-options + {:init (fn [self] + (set self.has-options? + (or (buffer-variable-exists? :nifoc_lsp_enabled) + (buffer-variable-exists? :nifoc_treesitter_enabled) + vim.wo.spell))) + :hl {:fg colors.black :bg colors.orange} + 1 {:condition (fn [self] + self.has-options?) + :provider " "} + 2 {:provider (fn [] + (when (buffer-variable-exists? :nifoc_lsp_enabled) + " "))} + 3 {:provider (fn [] + (when (or (buffer-variable-exists? :nifoc_lsp_formatter_enabled) + (not= (vim.opt_local.formatprg:get) "")) + " "))} + 4 {:provider (fn [] + (when (buffer-variable-exists? :nifoc_treesitter_enabled) + " "))} + 5 {:provider (fn [] + (when vim.wo.spell + "暈 "))}}) + ;; Position + (set mod.heirline.position {:init (fn [self] + (let [pos (api.nvim_win_get_cursor 0)] + (set self.position-line + (tostring (. pos 1))) + (set self.position-column + (tostring (. pos 2))))) + :provider (fn [self] + (string.format " %3s:%-3s " + self.position-line + self.position-column)) + :hl {:fg colors.black + :bg colors.purple + :bold true}}) + ;; Scrollbar + (set mod.heirline.scrollbar + {:init (fn [self] + (set self.current-line (get-current-line)) + (set self.total-lines (get-total-lines))) + :static {:scrollbar-icons ["🭶" "🭷" "🭸" "🭹" "🭺" "🭻"]} + :provider (fn [self] + (let [i (+ (math.floor (* (/ (- self.current-line 1) + self.total-lines) + (length self.scrollbar-icons))) + 1) + new-scrollbar (. self :scrollbar-icons i)] + (string.rep new-scrollbar 2))) + :hl {:fg colors.purple}}) + ;; Custom Mode - (fn mod.filetype [] - (let [name (vim.fn.expand "%:t") - extension (vim.fn.expand "%:e") - ftype vim.bo.filetype] - (if (> (ftype:len) 0) (let [icon (web-devicons.get_icon name extension - {:default true})] - (.. ftype " " icon)) - "no ft"))) - - (fn mod.gitsigns-diff-source [] - (let [signs vim.b.gitsigns_status_dict] - (when signs - {:added signs.added :modified signs.changed :removed signs.removed}))) - - (fn mod.current-function [] - (let [ctx vim.b.nifoc_lsp_current_context] - (if (and (not= ctx nil) (> (ctx:len) 0)) ctx ""))) - - (fn mod.spell-enabled? [] - (if (and (buffer-not-empty?) vim.wo.spell) "ﮒ" "")) - - (fn mod.fixer-enabled? [] - (if (or (buffer-variable-exists? :nifoc_lsp_formatter_enabled) - (not= (vim.opt_local.formatprg:get) "")) "" "")) - - (fn mod.treesitter-enabled? [] - (if (buffer-variable-exists? :nifoc_treesitter_enabled) "" "")) - - (fn mod.lsp-enabled? [] - (if (buffer-variable-exists? :nifoc_lsp_enabled) "" "")) - - (fn mod.extension-telescope [] - {:filetypes [:TelescopePrompt] - :sections {:lualine_a [(fn [] - :Telescope)]}}) + (fn mod.heirline.custom-mode [str] + {:provider (.. " " str " ") + :hl {:fg colors.black :bg colors.green :bold true}}) mod) diff --git a/config/nvim/plugins/heirline.fnl b/config/nvim/plugins/heirline.fnl new file mode 100644 index 0000000..8007591 --- /dev/null +++ b/config/nvim/plugins/heirline.fnl @@ -0,0 +1,33 @@ +(let [heirline (require :heirline) + utils (require :heirline.utils) + conditions (require :heirline.conditions) + ns (. (require :nifoc.statusline) :heirline)] + (local default-statusline [;; Left + ns.spacer + ns.vi-mode + (utils.surround [" " ""] nil ns.git) + (utils.surround [" " ""] nil ns.diagnostics) + (utils.surround [" " ""] nil ns.current-function) + ;; Right + {:provider "%="} + ns.filetype-block + ns.space + ns.buffer-options + ns.space + ns.scrollbar + ns.space + ns.position + ns.spacer]) + (local telescope-statusline + {:condition (fn [] + (conditions.buffer_matches {:filetype [:TelescopePrompt]})) + 1 ns.spacer + 2 (ns.custom-mode :Telescope)}) + (local statuslines {:hl ns.default-hl + :init utils.pick_child_on_condition + 1 telescope-statusline + 2 default-statusline}) + ;; Load Statusline + (set vim.opt.laststatus 3) + (heirline.setup statuslines)) + diff --git a/config/nvim/plugins/lualine.fnl b/config/nvim/plugins/lualine.fnl deleted file mode 100644 index b9d9551..0000000 --- a/config/nvim/plugins/lualine.fnl +++ /dev/null @@ -1,31 +0,0 @@ -(let [lualine (require :lualine) - ns (require :nifoc.statusline)] - (lualine.setup {:options {:globalstatus true - :theme :dracula-nvim - :section_separators "" - :component_separators "|" - :icons_enabled true} - :sections {; Left - :lualine_a [:mode] - :lualine_b [{1 :diff - :source ns.gitsigns-diff-source - :symbols {:added " " - :modified " " - :removed " "}} - {1 :diagnostics - :sources [:nvim_diagnostic] - :symbols {:error " " - :warn " " - :info " " - :hint " "}}] - :lualine_c [ns.current-function] - ; Right - :lualine_x [:filetype - ns.lsp-enabled? - ns.treesitter-enabled? - ns.fixer-enabled? - ns.spell-enabled?] - :lualine_y [ns.current-line-percent] - :lualine_z [ns.line-column]} - :extensions [:toggleterm (ns.extension-telescope)]})) - diff --git a/flake.lock b/flake.lock index 70c5e4a..53b54a3 100644 --- a/flake.lock +++ b/flake.lock @@ -73,11 +73,11 @@ ] }, "locked": { - "lastModified": 1653153149, - "narHash": "sha256-8B/tWWZziFq4DqnAm9uO7M4Z4PNfllYg5+teX1e5yDQ=", + "lastModified": 1653340164, + "narHash": "sha256-t6BPApyasx6FOv2cEVyFBXvkEDrknyUe7bngMbNSBkA=", "owner": "nix-community", "repo": "home-manager", - "rev": "94780dd888881bf35165dfdd334a57ef6b14ead8", + "rev": "e66f0ff69a6c0698b35034b842c4b68814440778", "type": "github" }, "original": { @@ -96,11 +96,11 @@ }, "locked": { "dir": "contrib", - "lastModified": 1653177131, - "narHash": "sha256-YfPM6yjKWu4RPAtLefggWC0ZOGgbcPsk6VT5M3D41B0=", + "lastModified": 1653434172, + "narHash": "sha256-hCm9+5ehYeWHzU/n3T7QKi5n+k1JuOZeETvKg/YDpic=", "owner": "neovim", "repo": "neovim", - "rev": "5193b17839c6524bb72ca35cbfc477c4ddd8ef13", + "rev": "af2899aee0b27e27d658c5f9053b83f439210cea", "type": "github" }, "original": { @@ -119,11 +119,11 @@ ] }, "locked": { - "lastModified": 1653207336, - "narHash": "sha256-5NCzF/G5zSmxStF4dFvsoGlI7Od8PX+64KneXDRilKA=", + "lastModified": 1653466640, + "narHash": "sha256-fMWq/my9Yk4pIuI1VTgBcT1NSFzdnkUFQJ39pgIdxes=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "c24e0cc74d11eef383e36af039782f757613352f", + "rev": "bd94793744ee0adcad78c0bbf65a6fcaadf65300", "type": "github" }, "original": { @@ -139,11 +139,11 @@ ] }, "locked": { - "lastModified": 1650397177, - "narHash": "sha256-zS8PPLdFP3j73u6RXUIkYvGamU55UZAy7qT1JS5dpyg=", + "lastModified": 1653380067, + "narHash": "sha256-FdHY/GYXVwk81lEwZA3pNObi6CEB/1BY417rpzuQZ3o=", "owner": "nifoc", "repo": "nix-overlay", - "rev": "2a6fab18b3365a33b23d0b620a0fb30bbbd64898", + "rev": "9c529749fc00729a987e9724cf157fbe76d34d78", "type": "github" }, "original": { @@ -154,11 +154,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1653117584, - "narHash": "sha256-5uUrHeHBIaySBTrRExcCoW8fBBYVSDjDYDU5A6iOl+k=", + "lastModified": 1653326962, + "narHash": "sha256-W8feCYqKTsMre4nAEpv5Kx1PVFC+hao/LwqtB2Wci/8=", "owner": "nixos", "repo": "nixpkgs", - "rev": "f4dfed73ee886b115a99e5b85fdfbeb683290d83", + "rev": "41cc1d5d9584103be4108c1815c350e07c807036", "type": "github" }, "original": { @@ -186,11 +186,11 @@ ] }, "locked": { - "lastModified": 1653180168, - "narHash": "sha256-FRV/JM1N8B7MTaSrVCP5dNN+m5oxq1YwTu1/f5cOKic=", + "lastModified": 1653353214, + "narHash": "sha256-pK7WaX3IkYuWPCB9DxdMLUWPwLPqWk+Fx330kXNxF1Q=", "owner": "arqv", "repo": "zig-overlay", - "rev": "3bb47ae2991f3cb441d20a129f2936c460bf242a", + "rev": "2768194b80bfb51d7fd70c055ffe0b6c82ec4943", "type": "github" }, "original": { diff --git a/programs/nvim/default.nix b/programs/nvim/default.nix index e6365ec..29b513f 100644 --- a/programs/nvim/default.nix +++ b/programs/nvim/default.nix @@ -182,8 +182,8 @@ in # UI { - plugin = lualine-nvim; - config = builtins.readFile ../../config/nvim/plugins/lualine.fnl; + plugin = heirline-nvim; + config = builtins.readFile ../../config/nvim/plugins/heirline.fnl; type = "fennel"; } diff --git a/programs/nvim/plugins.nix b/programs/nvim/plugins.nix index 63c461d..9c01cbf 100644 --- a/programs/nvim/plugins.nix +++ b/programs/nvim/plugins.nix @@ -58,23 +58,23 @@ }; substitute-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix { pname = "substitute.nvim"; - version = "2022-04-06"; + version = "2022-05-25"; src = pkgs.fetchFromGitHub { owner = "gbprod"; repo = "substitute.nvim"; - rev = "66379e99812ce5f46aa4810c05460c87b7b40aac"; - sha256 = "1j85rxj8cb7jxdaw3jwjgg46wsic28304b2bm2wrfj0idnmlrwki"; + rev = "2dda396e8cfa6463a5c6fdb98b52635d200e3775"; + sha256 = "0hvjxpag3cyklnfgbxk423y5icrmi936hzapa851qirxpw9zxj18"; fetchSubmodules = false; }; }; leap-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix { pname = "leap.nvim"; - version = "2022-05-21"; + version = "2022-05-23"; src = pkgs.fetchFromGitHub { owner = "ggandor"; repo = "leap.nvim"; - rev = "e45af6e06eacefd7d1aa1c8526aeeccea61fe874"; - sha256 = "0p2hlzxq80l642d8160jyhayl8w3hzzdr8fpzh92202rp2p117bw"; + rev = "e518433923f4ab4ca9b328d97e209d3ef18a4df9"; + sha256 = "1zh86cp41z7zxl005wzl7lv2mw9wcv62vhd3h582djy48bypcrk2"; fetchSubmodules = false; }; }; @@ -91,12 +91,12 @@ }; nvim-treesitter = pkgs.vimUtils.buildVimPluginFrom2Nix { pname = "nvim-treesitter"; - version = "2022-05-22"; + version = "2022-05-25"; src = pkgs.fetchFromGitHub { owner = "nvim-treesitter"; repo = "nvim-treesitter"; - rev = "b8fd5df8ff706fc2967f79a269c356916aaca4ae"; - sha256 = "0wswfnp76v391y9bj1bv5m7kihh2as2mx44jvcca8vncffqp6q5f"; + rev = "3dea0bbf71438d2d5a79de0145b509dfb16525a5"; + sha256 = "08chqv4a2d3f629v78dym0pq56pmdnp8j4xp4s93wnj4mpz3qmpz"; fetchSubmodules = false; }; }; @@ -124,12 +124,12 @@ }; telescope-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix { pname = "telescope.nvim"; - version = "2022-05-20"; + version = "2022-05-25"; src = pkgs.fetchFromGitHub { owner = "nvim-telescope"; repo = "telescope.nvim"; - rev = "1a91238a6ad7a1f77fabdbee7225692a04b20d48"; - sha256 = "10kyimz5zggjwv9nmrkgkz2f3w9scsanjw9n3fjl51zjf80hj6wf"; + rev = "328232e090004274f2c830fdaad9a2bda8ba2e60"; + sha256 = "1lnl87b3bp31340ilp12dwr4gimxj8vajjf6nhqabd0w54r7g243"; fetchSubmodules = false; }; }; @@ -197,23 +197,23 @@ }; LuaSnip = pkgs.vimUtils.buildVimPluginFrom2Nix { pname = "LuaSnip"; - version = "2022-05-21"; + version = "2022-05-23"; src = pkgs.fetchFromGitHub { owner = "L3MON4D3"; repo = "LuaSnip"; - rev = "07cf1a1fa01c7ecb2091d0cd04af2a2e70676058"; - sha256 = "158mj2sc9ga5dc5x5rn1j7r3m8jikq2vs0d4c48pgzqgvzm0iczf"; + rev = "08b06c3dace531cac7cf297ce407f0f43bfd192b"; + sha256 = "0wvpnanymr3p5aqqkwggjs30gsyxrn14j6fihqblaw1m2dbl4zli"; fetchSubmodules = false; }; }; nvim-cmp = pkgs.vimUtils.buildVimPluginFrom2Nix { pname = "nvim-cmp"; - version = "2022-05-18"; + version = "2022-05-25"; src = pkgs.fetchFromGitHub { owner = "hrsh7th"; repo = "nvim-cmp"; - rev = "6e1e3865158f340d6cd3936937eb56947b5a90f9"; - sha256 = "0gblj2agswxnd9p4avyqbsxzwd58c87516qa9pzx7bzssa1sfc0w"; + rev = "033a817ced907c8bcdcbe3355d7ea67446264f4b"; + sha256 = "0ywdjcic3ipc0igss3nmd9j2vdx3jh4wmfsx2895kasjb0x50fqg"; fetchSubmodules = false; }; }; @@ -338,17 +338,6 @@ fetchSubmodules = false; }; }; - nvim-treesitter-textobjects = pkgs.vimUtils.buildVimPluginFrom2Nix { - pname = "nvim-treesitter-textobjects"; - version = "2022-05-14"; - src = pkgs.fetchFromGitHub { - owner = "nvim-treesitter"; - repo = "nvim-treesitter-textobjects"; - rev = "b00b344c0f5a0a458d6e66eb570cfb347ebf4c38"; - sha256 = "190k6p07769ykz54fdy0y5zrqyhca8dnnfji5pd6ccws1ghgqqd2"; - fetchSubmodules = false; - }; - }; vim-matchup = pkgs.vimUtils.buildVimPluginFrom2Nix { pname = "vim-matchup"; version = "2022-05-06"; @@ -360,6 +349,28 @@ fetchSubmodules = false; }; }; + nvim-treesitter-textobjects = pkgs.vimUtils.buildVimPluginFrom2Nix { + pname = "nvim-treesitter-textobjects"; + version = "2022-05-23"; + src = pkgs.fetchFromGitHub { + owner = "nvim-treesitter"; + repo = "nvim-treesitter-textobjects"; + rev = "b1e850b77e57b2720c06d523d6fc4776ad6a5608"; + sha256 = "070ldvra2xmg76nvx1xa5wx2pmfrfmjqbhxy2qpr6nyj0cbb5ndg"; + fetchSubmodules = false; + }; + }; + heirline-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix { + pname = "heirline.nvim"; + version = "2022-05-25"; + src = pkgs.fetchFromGitHub { + owner = "rebelot"; + repo = "heirline.nvim"; + rev = "bb7eaec8f5f8e762b23da91109b54e1b3518c7b8"; + sha256 = "0hly8zaqn7fvvak7dapr2rhx9z4y4rga8sh3v3w3divk9nnqf55v"; + fetchSubmodules = false; + }; + }; lualine-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix { pname = "lualine.nvim"; version = "2022-05-22"; @@ -384,12 +395,12 @@ }; indent-blankline-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix { pname = "indent-blankline.nvim"; - version = "2022-05-10"; + version = "2022-05-24"; src = pkgs.fetchFromGitHub { owner = "lukas-reineke"; repo = "indent-blankline.nvim"; - rev = "8567ac8ccd19ee41a6ec55bf044884799fa3f56b"; - sha256 = "0gbdgn8031i4wgl5w2halaxjir39710n5cs8997cf3fhjj8zk5ss"; + rev = "6177a59552e35dfb69e1493fd68194e673dc3ee2"; + sha256 = "1bsyzbcj9jmpx6sl6mf2f5k1a60lhgq7vmsrpqab2wc0vm4v8kap"; fetchSubmodules = false; }; }; @@ -428,12 +439,12 @@ }; gitsigns-nvim = pkgs.vimUtils.buildVimPluginFrom2Nix { pname = "gitsigns.nvim"; - version = "2022-05-22"; + version = "2022-05-24"; src = pkgs.fetchFromGitHub { owner = "lewis6991"; repo = "gitsigns.nvim"; - rev = "ada01db9ddb31a124c52b8ea25191a0790da74e0"; - sha256 = "0j527indacyvdsjplim2wl2fm90qg8qvcvfd9xc0vs03g1a282cy"; + rev = "44372ff5dca2ca4c0cff13bb9a0d382238756c68"; + sha256 = "0gzgsc6abpwdmx5mx6656rific4gbfkwnmkbii5w2x5bxp98lz6z"; fetchSubmodules = false; }; }; diff --git a/programs/nvim/plugins.yaml b/programs/nvim/plugins.yaml index 54b5768..3256535 100644 --- a/programs/nvim/plugins.yaml +++ b/programs/nvim/plugins.yaml @@ -58,12 +58,13 @@ # Pairs - src: windwp/nvim-autopairs - src: windwp/nvim-ts-autotag +- src: andymass/vim-matchup # Textobjects - src: nvim-treesitter/nvim-treesitter-textobjects # UI -- src: andymass/vim-matchup +- src: rebelot/heirline.nvim - src: nvim-lualine/lualine.nvim - src: akinsho/bufferline.nvim - src: lukas-reineke/indent-blankline.nvim