X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=vim%2F.vim%2Fpack%2Fstargrave%2Fstart%2Fbuftabline%2Fautoload%2Fbuftabline.vim;h=d4c6efc6a7540668337ad4d3ca78f548a246611d;hb=9cbfa59ca421fac5422cbf0c2c52f48f8f2adb4c;hp=7098d7b3404f2a1cf48587d8baea93e07cf62ef0;hpb=e21853080f5005ad6c6b548146d339abd197f28e;p=dotfiles.git diff --git a/vim/.vim/pack/stargrave/start/buftabline/autoload/buftabline.vim b/vim/.vim/pack/stargrave/start/buftabline/autoload/buftabline.vim index 7098d7b..d4c6efc 100644 --- a/vim/.vim/pack/stargrave/start/buftabline/autoload/buftabline.vim +++ b/vim/.vim/pack/stargrave/start/buftabline/autoload/buftabline.vim @@ -1,18 +1,27 @@ -function! buftabline#do() - let bufsRaw = execute("buffers", "silent") - let bufs = [] - for buf in split(bufsRaw, "\n")[:16] - let leftIdx = stridx(buf, '"') - let rightIdx = strridx(buf, '"') - let filename = substitute(buf[leftIdx + 1 : rightIdx - 1], "%", "%%", "g") - let linenum = split(buf[rightIdx:], " ")[-1] - let attrs = split(buf[:leftIdx-1], '\s\+') - let attrs = map(attrs, 'substitute(v:val, "%", "%%", "g")') - let attrs = (len(attrs) == 1) ? attrs[0] : attrs[0] . ":" . join(attrs[1:], "") - let attrs = "%#TabLine#" . attrs . "%*" - if len(filename) > 20 | let filename = "<" . filename[-(20-1):] | endif - let hl = (match(attrs, "%%") == -1) ? "%#TabLine#:" : "%#TabLineSel#" - let bufs = add(bufs, attrs . hl . filename . ":" . linenum . "%*") +vim9script + +export def Do(): string + var bufsRaw = execute("buffers", "silent") + var bufs: list + var leftIdx: number + var rightIdx: number + var filename: string + var linenum: string + var attrs: list + var attr: string + var hl: string + for buf in split(bufsRaw, "\n")[ : 16] + leftIdx = stridx(buf, '"') + rightIdx = strridx(buf, '"') + filename = substitute(buf[leftIdx + 1 : rightIdx - 1], "%", "%%", "g") + linenum = split(buf[rightIdx : ], " ")[-1] + attrs = split(buf[ : leftIdx - 1], '\s\+') + attrs = map(attrs, 'substitute(v:val, "%", "%%", "g")') + attr = (len(attrs) == 1) ? attrs[0] : attrs[0] .. ":" .. join(attrs[1 :], "") + attr = "%#TabLine#" .. attr .. "%*" + if len(filename) > 20 | filename = "<" .. filename[-(20 - 1) :] | endif + hl = (match(attr, "%%") == -1) ? "%#TabLine#:" : "%#TabLineSel#" + bufs = add(bufs, attr .. hl .. filename .. ":" .. linenum .. "%*") endfor return join(bufs, " ") -endfunction +enddef