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(
17 strpart(buf, leftIdx + 1, rightIdx - leftIdx - 1), "%", "%%", "g")
18 linenum = split(strpart(buf, rightIdx), " ")[-1]
19 attrs = split(strpart(buf, 0, leftIdx - 1), '\s\+')
20 attrs = map(attrs, 'substitute(v:val, "%", "%%", "g")')
21 attr = (len(attrs) == 1) ? attrs[0] : attrs[0] .. ":" .. join(attrs[1 :], "")
22 attr = "%#TabLine#" .. attr .. "%*"
23 if len(filename) > 20 | filename = "<" .. filename[-(20 - 1) :] | endif
24 hl = (match(attr, "%%") == -1) ? "%#TabLine#:" : "%#TabLineSel#"
25 bufs = add(bufs, attr .. hl .. filename .. ":" .. linenum .. "%*")
27 return join(bufs, " ")