]> Sergey Matveev's repositories - dotfiles.git/blobdiff - vim/.vim/pack/stargrave/start/buftabline/autoload/buftabline.vim
Move to vim9script
[dotfiles.git] / vim / .vim / pack / stargrave / start / buftabline / autoload / buftabline.vim
index 7098d7b3404f2a1cf48587d8baea93e07cf62ef0..d4c6efc6a7540668337ad4d3ca78f548a246611d 100644 (file)
@@ -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<string>
+    var leftIdx: number
+    var rightIdx: number
+    var filename: string
+    var linenum: string
+    var attrs: list<string>
+    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