3 export def Do(): string
4 var bufsRaw = execute("buffers", "silent")
10 var attrs: list<string>
13 for buf in split(bufsRaw, "\n")[ : 16]
14 leftIdx = stridx(buf, '"')
15 rightIdx = strridx(buf, '"')
16 filename = substitute(buf[leftIdx + 1 : rightIdx - 1], "%", "%%", "g")
17 linenum = split(buf[rightIdx : ], " ")[-1]
18 attrs = split(buf[ : leftIdx - 1], '\s\+')
19 attrs = map(attrs, 'substitute(v:val, "%", "%%", "g")')
20 attr = (len(attrs) == 1) ? attrs[0] : attrs[0] .. ":" .. join(attrs[1 :], "")
21 attr = "%#TabLine#" .. attr .. "%*"
22 if len(filename) > 20 | filename = "<" .. filename[-(20 - 1) :] | endif
23 hl = (match(attr, "%%") == -1) ? "%#TabLine#:" : "%#TabLineSel#"
24 bufs = add(bufs, attr .. hl .. filename .. ":" .. linenum .. "%*")
26 return join(bufs, " ")