diff --git a/autoload/build.vim b/autoload/build.vim index a389436..10f5e20 100644 --- a/autoload/build.vim +++ b/autoload/build.vim @@ -10,12 +10,25 @@ function! build#dir(...) abort let l:dir = s:dirs[0] unlet s:dirs else - " Multiple build directories found, create popup menu to select one. - " Set the callback to this function on completion, handled below. - call popup_menu(s:dirs, #{ - \ filter: 'popup_filter_menu', - \ callback: 'build#dir', - \ }) + " Multiple build directories found, select one. + if exists('*popup_menu') + " Create popup menu to select the build directory. Callback to this + " function on completion, handled in the else branch below. + call popup_menu(s:dirs, #{ + \ filter: 'popup_filter_menu', + \ callback: 'build#dir', + \ }) + else + " Fallback to inputlist when popup_menu is not available. + let l:choices = [] + let l:index = 1 + for l:dir in s:dirs + call add(l:choices, string(l:index).': '.l:dir) + let l:index += 1 + endfor + let l:index = inputlist(l:choices) + let l:dir = s:dirs[l:index - 1] + endif endif else if a:0 == 1