diff options
| author | Mike Vink <> | 2023-04-02 18:44:00 +0200 |
|---|---|---|
| committer | Mike Vink <> | 2023-04-02 18:44:00 +0200 |
| commit | 6f9c6aed95fc9bc95125a41f0d67c88919b9d0d6 (patch) | |
| tree | 9436ec434c050db598d8fcbef79b9e03fb259ef7 | |
| parent | ebdf3ec8a5bc0cc964577a19e8789bc019e72cff (diff) | |
fixup
| -rw-r--r-- | fnl/conf/pkgs/harpoon.fnl | 10 | ||||
| -rw-r--r-- | fnl/conf/pkgs/heirline.fnl | 60 |
2 files changed, 53 insertions, 17 deletions
diff --git a/fnl/conf/pkgs/harpoon.fnl b/fnl/conf/pkgs/harpoon.fnl index 00d1367..4bb21ec 100644 --- a/fnl/conf/pkgs/harpoon.fnl +++ b/fnl/conf/pkgs/harpoon.fnl @@ -3,8 +3,8 @@ (vim.keymap.set :n "[]" (lambda [] (harpoon-mark.add_file))) (vim.keymap.set :n "]]" (lambda [] (harpoon-ui.nav_next))) (vim.keymap.set :n "[[" (lambda [] (harpoon-ui.nav_prev))) -(vim.keymap.set :n "[1" (lambda [] (harpoon-ui.nav_file 1))) -(vim.keymap.set :n "[2" (lambda [] (harpoon-ui.nav_prev 2))) -(vim.keymap.set :n "[3" (lambda [] (harpoon-ui.nav_prev 3))) -(vim.keymap.set :n "[4" (lambda [] (harpoon-ui.nav_prev 4))) -(vim.keymap.set :n "[5" (lambda [] (harpoon-ui.nav_prev 5))) +(vim.keymap.set :n "[+" (lambda [] (harpoon-ui.nav_file 1))) +(vim.keymap.set :n "[-" (lambda [] (harpoon-ui.nav_file 2))) +(vim.keymap.set :n "[<" (lambda [] (harpoon-ui.nav_file 3))) +(vim.keymap.set :n "[>" (lambda [] (harpoon-ui.nav_file 4))) +(vim.keymap.set :n "[\"" (lambda [] (harpoon-ui.nav_file 5))) diff --git a/fnl/conf/pkgs/heirline.fnl b/fnl/conf/pkgs/heirline.fnl index 27b2b1b..35f69e3 100644 --- a/fnl/conf/pkgs/heirline.fnl +++ b/fnl/conf/pkgs/heirline.fnl @@ -86,7 +86,15 @@ ScrollBar Space]) +(local harpoon (require :harpoon)) (local harpoon-mark (require :harpoon.mark)) +(local HarpoonMarks {:provider (lambda [] + (local marks (harpoon.get_mark_config)) + (table.concat (icollect [_ mark (ipairs marks.marks)] + (do + (vim.fn.pathshorten mark.filename))) + " "))}) + (local Tabpage {:provider (lambda [self] (fn fnamemod [name mod] @@ -94,17 +102,46 @@ (fn format-name [name] (if (= name "") "[No Name]" - (fnamemod name ":.:t"))) - - (local harpoon_marks - (accumulate - (icollect [_ win (ipairs (vim.api.nvim_tabpage_list_wins self.tabpage))] - (vim.api.nvim_win_get_buf win)))) - (print (vim.inspect harpoon_marks)) - (.. "%" self.tabnr "T " self.tabnr " " " %T")) + (fnamemod name ":t"))) + + (.. "%" self.tabnr "T " self.tabnr " ")) :hl (lambda [self] (if (not (. self :is_active)) :TabLine :TabLineSel))}) +(fn active-tab-hrpn [self] + (local hl {}) + (if (. self :is_active) + (do + (tset hl :fg (theme :syn :identifier)) + (tset hl :bold true))) + hl) + +(fn active-hl [hl] + (lambda [self] + (if self.is_active + hl + {}))) + +(fn tab-harpoon-marks [tab] + (icollect [_ buf (ipairs (accumulate [buffers [] _ buf (ipairs (vim.fn.tabpagebuflist tab))] + (do + (if (not (vim.tbl_contains buffers buf)) + (table.insert buffers buf)) + buffers)))] + (do + (local status (harpoon-mark.status buf)) + (if (not= status "") + status)))) + +(local Tabpage + (utils.insert Tabpage {:hl active-tab-hrpn :provider " [ "} + {:hl (active-hl {:fg (theme :syn :fun)}) + :provider (lambda [self] + (local harpoon_marks + (tab-harpoon-marks self.tabpage)) + (table.concat harpoon_marks " "))} + {:hl active-tab-hrpn :provider " ] %T"})) + (local TabpageClose {:provider "%999X %X" :hl :TabLine}) (local TabPages @@ -112,8 +149,7 @@ :condition (lambda [] (>= (length (vim.api.nvim_list_tabpages)) 2))}) -(local TabPages - (utils.insert TabPages {:provider "%="} (utils.make_tablist Tabpage) - TabpageClose)) +(local TabPages (utils.insert TabPages Align (utils.make_tablist Tabpage) + TabpageClose)) -(heirline.setup {:statusline StatusLine :tabline [TabPages]}) +(heirline.setup {:statusline StatusLine :tabline [HarpoonMarks TabPages]}) |
