summaryrefslogtreecommitdiff
path: root/lua/tabby.lua
blob: a189656e26d337504094a7255b439492f91bde38 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
local theme = {
  fill = 'TabLineFill',
  -- Also you can do this: fill = { fg='#f2e9de', bg='#907aa9', style='italic' }
  head = 'TabLine',
  current_tab = 'TabLineSel',
  tab = 'TabLine',
  win = 'TabLine',
  tail = 'TabLineTail',
  close_sel = 'TabLineCloseSel',
  close = 'TabLineClose',
}
require('tabby.tabline').set(function(line)
  return {
    {
      { '   ', hl = theme.head },
      line.sep(' ', theme.head, theme.fill),
    },
    line.tabs().foreach(function(tab)
      local hl = tab.is_current() and theme.current_tab or theme.tab
      return {
        line.sep(' ', hl, theme.fill),
        tab.is_current() and '' or '',
        tab.number(),
        tab.name(),
        tab.close_btn({' ', hl = tab.is_current() and theme.close_sel or theme.close}),
        line.sep(' ', hl, theme.fill),
        hl = hl,
        margin = ' ',
      }
    end),
    line.spacer(),
    line.wins_in_tab(line.api.get_current_tab()).foreach(function(win)
      return {
        line.sep(' ', theme.win, theme.fill),
        win.is_current() and '·' or ' ',
        win.buf_name(),
        line.sep(' ', theme.win, theme.fill),
        hl = theme.win,
        margin = ' ',
      }
    end),
    {
      line.sep(' ', theme.tail, theme.fill),
      { '   ', hl = theme.tail },
    },
    hl = theme.fill,
  }
end)