summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Vink <>2023-04-02 18:44:00 +0200
committerMike Vink <>2023-04-02 18:44:00 +0200
commit6f9c6aed95fc9bc95125a41f0d67c88919b9d0d6 (patch)
tree9436ec434c050db598d8fcbef79b9e03fb259ef7
parentebdf3ec8a5bc0cc964577a19e8789bc019e72cff (diff)
fixup
-rw-r--r--fnl/conf/pkgs/harpoon.fnl10
-rw-r--r--fnl/conf/pkgs/heirline.fnl60
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]})