Some checks failed
		
		
	
	Detach Plugins / check (FlyGrep.vim) (push) Has been cancelled
				
			Detach Plugins / check (GitHub.vim) (push) Has been cancelled
				
			Detach Plugins / check (JavaUnit.vim) (push) Has been cancelled
				
			Detach Plugins / check (SourceCounter.vim) (push) Has been cancelled
				
			Detach Plugins / check (cpicker.nvim) (push) Has been cancelled
				
			Detach Plugins / check (dein-ui.vim) (push) Has been cancelled
				
			Detach Plugins / check (git.vim) (push) Has been cancelled
				
			Detach Plugins / check (iedit.vim) (push) Has been cancelled
				
			Detach Plugins / check (scrollbar.vim) (push) Has been cancelled
				
			Detach Plugins / check (vim-chat) (push) Has been cancelled
				
			Detach Plugins / check (vim-cheat) (push) Has been cancelled
				
			Detach Plugins / check (vim-todo) (push) Has been cancelled
				
			Detach Plugins / check (xmake.vim) (push) Has been cancelled
				
			test / Linux (nvim, nightly) (push) Has been cancelled
				
			test / Linux (nvim, v0.3.8) (push) Has been cancelled
				
			test / Linux (nvim, v0.4.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.4.2) (push) Has been cancelled
				
			test / Linux (nvim, v0.4.3) (push) Has been cancelled
				
			test / Linux (nvim, v0.4.4) (push) Has been cancelled
				
			test / Linux (nvim, v0.5.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.5.1) (push) Has been cancelled
				
			test / Linux (nvim, v0.6.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.6.1) (push) Has been cancelled
				
			test / Linux (nvim, v0.7.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.7.2) (push) Has been cancelled
				
			test / Linux (nvim, v0.8.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.8.1) (push) Has been cancelled
				
			test / Linux (nvim, v0.8.2) (push) Has been cancelled
				
			test / Linux (nvim, v0.8.3) (push) Has been cancelled
				
			test / Linux (nvim, v0.9.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.9.1) (push) Has been cancelled
				
			test / Linux (true, vim, v7.4.052) (push) Has been cancelled
				
			test / Linux (true, vim, v7.4.1689) (push) Has been cancelled
				
			test / Linux (true, vim, v7.4.629) (push) Has been cancelled
				
			test / Linux (true, vim, v8.0.0027) (push) Has been cancelled
				
			test / Linux (true, vim, v8.0.0183) (push) Has been cancelled
				
			test / Linux (vim, nightly) (push) Has been cancelled
				
			test / Linux (vim, v8.0.0184) (push) Has been cancelled
				
			test / Linux (vim, v8.0.1453) (push) Has been cancelled
				
			test / Linux (vim, v8.1.2269) (push) Has been cancelled
				
			test / Linux (vim, v8.2.2434) (push) Has been cancelled
				
			test / Linux (vim, v8.2.3995) (push) Has been cancelled
				
			test / Windows (nvim, nightly) (push) Has been cancelled
				
			test / Windows (nvim, v0.3.8) (push) Has been cancelled
				
			test / Windows (nvim, v0.4.2) (push) Has been cancelled
				
			test / Windows (nvim, v0.4.3) (push) Has been cancelled
				
			test / Windows (nvim, v0.4.4) (push) Has been cancelled
				
			test / Windows (nvim, v0.5.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.5.1) (push) Has been cancelled
				
			test / Windows (nvim, v0.6.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.6.1) (push) Has been cancelled
				
			test / Windows (nvim, v0.7.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.7.2) (push) Has been cancelled
				
			test / Windows (nvim, v0.8.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.8.1) (push) Has been cancelled
				
			test / Windows (nvim, v0.8.2) (push) Has been cancelled
				
			test / Windows (nvim, v0.8.3) (push) Has been cancelled
				
			test / Windows (nvim, v0.9.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.9.1) (push) Has been cancelled
				
			test / Windows (vim, nightly) (push) Has been cancelled
				
			test / Windows (vim, v7.4.1185) (push) Has been cancelled
				
			test / Windows (vim, v7.4.1689) (push) Has been cancelled
				
			test / Windows (vim, v8.0.0027) (push) Has been cancelled
				
			test / Windows (vim, v8.0.1453) (push) Has been cancelled
				
			test / Windows (vim, v8.1.2269) (push) Has been cancelled
				
			test / Windows (vim, v8.2.2434) (push) Has been cancelled
				
			test / Windows (vim, v8.2.3995) (push) Has been cancelled
				
			docker / docker (push) Has been cancelled
				
			mirror / check (coding) (push) Has been cancelled
				
			mirror / check (gitee) (push) Has been cancelled
				
			mirror / check (gitlab) (push) Has been cancelled
				
			
		
			
				
	
	
		
			138 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			138 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
"=============================================================================
 | 
						|
" cmdlinemenu.vim --- SpaceVim cmdlinemenu API
 | 
						|
" Copyright (c) 2016-2023 Wang Shidong & Contributors
 | 
						|
" Author: Wang Shidong < wsdjeg@outlook.com >
 | 
						|
" URL: https://spacevim.org
 | 
						|
" License: GPLv3
 | 
						|
"=============================================================================
 | 
						|
let s:api = {}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
function! s:parseInput(char) abort
 | 
						|
  if a:char == 27
 | 
						|
    return ''
 | 
						|
  else
 | 
						|
    return a:char
 | 
						|
  endif
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:nextItem(list, item) abort
 | 
						|
  let id = index(a:list, a:item)
 | 
						|
  if id == len(a:list) - 1
 | 
						|
    return a:list[0]
 | 
						|
  else
 | 
						|
    return a:list[id + 1]
 | 
						|
  endif
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:previousItem(list, item) abort
 | 
						|
  let id = index(a:list, a:item)
 | 
						|
  if id == 0
 | 
						|
    return a:list[len(a:list) - 1]
 | 
						|
  else
 | 
						|
    return a:list[id - 1]
 | 
						|
  endif
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:parseItems(items) abort
 | 
						|
  let items = {}
 | 
						|
  for item in a:items
 | 
						|
    let id = index(a:items, item) + 1
 | 
						|
    let items[id] = ['(' . id . ')' . item[0]] + item[1:]
 | 
						|
  endfor
 | 
						|
  return items
 | 
						|
endfunction
 | 
						|
 | 
						|
" items should be a list of [name, funcrc or string]
 | 
						|
 | 
						|
""
 | 
						|
" @section cmdlinemenu, api-cmdlinemenu
 | 
						|
" @parentsection api
 | 
						|
" menu({items})
 | 
						|
"
 | 
						|
" Create a cmdline selection menu from a list of {items}, each item should be a
 | 
						|
" list of two value in it, first one is the description, and the next one
 | 
						|
" should be a funcrc.
 | 
						|
"
 | 
						|
" Example:
 | 
						|
" >
 | 
						|
" let menu = SpaceVim#api#import('cmdlinemenu')
 | 
						|
" let ques = [
 | 
						|
"     \ ['basic mode', function('s:basic_mode')],
 | 
						|
"     \ ['dark powered mode', function('s:awesome_mode')],
 | 
						|
"     \ ]
 | 
						|
" call menu.menu(ques)
 | 
						|
" <
 | 
						|
 | 
						|
function! s:menu(items) abort
 | 
						|
  let cancelled = 0
 | 
						|
  let saved_more = &more
 | 
						|
  let save_cmdheight = &cmdheight
 | 
						|
  set nomore
 | 
						|
  let items = s:parseItems(a:items)
 | 
						|
  let &cmdheight = len(items) + 1
 | 
						|
  redrawstatus!
 | 
						|
  let selected = '1'
 | 
						|
  let exit = 0
 | 
						|
  let indent = repeat(' ', 7)
 | 
						|
  while !exit
 | 
						|
    let menu = "Cmdline menu: Use j/k/enter and the shortcuts indicated\n"
 | 
						|
    for id in keys(items)
 | 
						|
      let m = items[id]
 | 
						|
      if type(m) == type([])
 | 
						|
        let m = m[0]
 | 
						|
      endif
 | 
						|
      if id == selected
 | 
						|
        let menu .= indent . '>' . items[id][0] . "\n"
 | 
						|
      else
 | 
						|
        let menu .= indent . ' ' . items[id][0] . "\n"
 | 
						|
      endif
 | 
						|
    endfor
 | 
						|
    redraw!
 | 
						|
    echo menu[:-2]
 | 
						|
    let nr = getchar()
 | 
						|
    if s:parseInput(nr) ==# '' || nr == 3
 | 
						|
      let exit = 1
 | 
						|
      let cancelled = 1
 | 
						|
      normal! :
 | 
						|
    elseif index(keys(items), nr2char(nr)) != -1  || nr == 13
 | 
						|
      if nr != 13
 | 
						|
        let selected = nr2char(nr)
 | 
						|
      endif
 | 
						|
      let Value =  items[selected][1]
 | 
						|
      normal! :
 | 
						|
      if type(Value) == 2
 | 
						|
        let args = get(items[selected], 2, [])
 | 
						|
        call call(Value, args)
 | 
						|
      elseif type(Value) == type('') && !empty(Value)
 | 
						|
        execute Value
 | 
						|
      endif
 | 
						|
      let exit = 1
 | 
						|
    elseif nr2char(nr) ==# 'j' || nr ==# 9
 | 
						|
      let selected = s:nextItem(keys(items), selected)
 | 
						|
      normal! :
 | 
						|
    elseif nr2char(nr) ==# 'k' || nr ==# "\<S-Tab>"
 | 
						|
      let selected = s:previousItem(keys(items), selected)
 | 
						|
      normal! :
 | 
						|
    else
 | 
						|
      normal! :
 | 
						|
    endif
 | 
						|
  endwhile
 | 
						|
  let &more = saved_more
 | 
						|
  let &cmdheight = save_cmdheight
 | 
						|
  redraw!
 | 
						|
  if cancelled
 | 
						|
    echo 'cancelled!'
 | 
						|
  endif
 | 
						|
endfunction
 | 
						|
 | 
						|
let s:api['menu'] = function('s:menu')
 | 
						|
 | 
						|
function! SpaceVim#api#cmdlinemenu#get() abort
 | 
						|
  return deepcopy(s:api)
 | 
						|
endfunction
 | 
						|
 | 
						|
 | 
						|
" vim:set et sw=2 cc=80:
 |