From 8286466113f9485f06e3897823abdd4696cef38b Mon Sep 17 00:00:00 2001 From: Roman Lyakhovchik Date: Tue, 19 Aug 2025 21:45:16 +0300 Subject: [PATCH 1/2] receive ordered buffers list from the outside --- autoload/bufferline.vim | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/autoload/bufferline.vim b/autoload/bufferline.vim index 9be66c9..9f75313 100644 --- a/autoload/bufferline.vim +++ b/autoload/bufferline.vim @@ -4,12 +4,22 @@ let s:updatetime = &updatetime " keep track of scrollinf window start let s:window_start = 0 +function! s:get_buffers_list() + if exists('g:bufferline_get_buffers_list') + let result = g:bufferline_get_buffers_list() + " echo result + return result + else + return range(1, bufnr('$')) + endif +endfunction + function! s:generate_names() let names = [] let i = 1 let last_buffer = bufnr('$') let current_buffer = bufnr('%') - while i <= last_buffer + for i in s:get_buffers_list() if bufexists(i) && buflisted(i) let modified = ' ' if getbufvar(i, '&mod') @@ -46,8 +56,7 @@ function! s:generate_names() call add(names, [i, name]) endif endif - let i += 1 - endwhile + endfor if len(names) > 1 if g:bufferline_rotate == 1 From 70500cefef15eb6f83775b9f3660c55db39e0da7 Mon Sep 17 00:00:00 2001 From: Roman Lyakhovchik Date: Tue, 19 Aug 2025 22:40:36 +0300 Subject: [PATCH 2/2] update config key --- autoload/bufferline.vim | 12 +----------- plugin/bufferline.vim | 5 +++++ 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/autoload/bufferline.vim b/autoload/bufferline.vim index 9f75313..0f3e321 100644 --- a/autoload/bufferline.vim +++ b/autoload/bufferline.vim @@ -4,22 +4,12 @@ let s:updatetime = &updatetime " keep track of scrollinf window start let s:window_start = 0 -function! s:get_buffers_list() - if exists('g:bufferline_get_buffers_list') - let result = g:bufferline_get_buffers_list() - " echo result - return result - else - return range(1, bufnr('$')) - endif -endfunction - function! s:generate_names() let names = [] let i = 1 let last_buffer = bufnr('$') let current_buffer = bufnr('%') - for i in s:get_buffers_list() + for i in g:Bufferline_get_buffers_list() if bufexists(i) && buflisted(i) let modified = ' ' if getbufvar(i, '&mod') diff --git a/plugin/bufferline.vim b/plugin/bufferline.vim index 24c05cc..aef6837 100644 --- a/plugin/bufferline.vim +++ b/plugin/bufferline.vim @@ -9,6 +9,10 @@ function! s:check_defined(variable, default) endif endfunction +function! s:get_buffers_list_default() + return range(1, bufnr('$')) +endfunction + call s:check_defined('g:bufferline_active_buffer_left', '[') call s:check_defined('g:bufferline_active_buffer_right', ']') call s:check_defined('g:bufferline_separator', ' ') @@ -23,6 +27,7 @@ call s:check_defined('g:bufferline_fixed_index', 1) call s:check_defined('g:bufferline_solo_highlight', 0) call s:check_defined('g:bufferline_excludes', ['\[vimfiler\]']) call s:check_defined('g:bufferline_pathshorten', 0) +call s:check_defined('g:Bufferline_get_buffers_list', function('s:get_buffers_list_default')) function! bufferline#generate_string() return "bufferline#generate_string() is obsolete! Please consult README."