diff --git a/autoload/SpaceVim/layers/colorscheme.vim b/autoload/SpaceVim/layers/colorscheme.vim index 348b9b76c..9d989f645 100644 --- a/autoload/SpaceVim/layers/colorscheme.vim +++ b/autoload/SpaceVim/layers/colorscheme.vim @@ -173,3 +173,29 @@ function! SpaceVim#layers#colorscheme#plugins() abort \ ['jacoborus/tender'], \ ] endfunction + +let s:cs = ['gruvbox', 'molokai', 'onedark', 'jellybeans'] +let s:Number = SpaceVim#api#import('data#number') +function! SpaceVim#layers#colorscheme#config() abort + call SpaceVim#mapping#space#def('nnoremap', ['T', 'n'], + \ 'call call(' . string(s:_function('s:cycle_spacevim_theme')) + \ . ', [])', 'cycle-spacevim-theme', 1) +endfunction +" function() wrapper +if v:version > 703 || v:version == 703 && has('patch1170') + function! s:_function(fstr) abort + return function(a:fstr) + endfunction +else + function! s:_SID() abort + return matchstr(expand(''), '\zs\d\+\ze__SID$') + endfunction + let s:_s = '' . s:_SID() . '_' + function! s:_function(fstr) abort + return function(substitute(a:fstr, 's:', s:_s, 'g')) + endfunction +endif +function! s:cycle_spacevim_theme() abort + let id = s:Number.random(0, len(s:cs)) + exe 'colorscheme ' . s:cs[id] +endfunction diff --git a/autoload/SpaceVim/layers/ui.vim b/autoload/SpaceVim/layers/ui.vim index a13611bb6..0633feda4 100644 --- a/autoload/SpaceVim/layers/ui.vim +++ b/autoload/SpaceVim/layers/ui.vim @@ -22,4 +22,24 @@ function! SpaceVim#layers#ui#config() abort let g:signify_disable_by_default = 0 let g:signify_line_highlight = 0 noremap :TagbarToggle + " Ui toggles + call SpaceVim#mapping#space#def('nnoremap', ['T', 'F'], '', 'fullscreen-frame', 0) + call SpaceVim#mapping#space#def('nnoremap', ['T', 'm'], 'call call(' . string(s:_function('s:toggle_menu_bar')) . ', [])', 'menu-bar', 1) +endfunction +" function() wrapper +if v:version > 703 || v:version == 703 && has('patch1170') + function! s:_function(fstr) abort + return function(a:fstr) + endfunction +else + function! s:_SID() abort + return matchstr(expand(''), '\zs\d\+\ze__SID$') + endfunction + let s:_s = '' . s:_SID() . '_' + function! s:_function(fstr) abort + return function(substitute(a:fstr, 's:', s:_s, 'g')) + endfunction +endif +function! s:toggle_menu_bar() abort + echom 1 endfunction diff --git a/autoload/SpaceVim/mapping/space.vim b/autoload/SpaceVim/mapping/space.vim index f14718273..e8a58aeeb 100644 --- a/autoload/SpaceVim/mapping/space.vim +++ b/autoload/SpaceVim/mapping/space.vim @@ -6,7 +6,8 @@ function! SpaceVim#mapping#space#init() abort nmap [SPC] let g:_spacevim_mappings_space = {} let g:_spacevim_mappings_space['?'] = ['Unite menu:CustomKeyMaps -input=[SPC]', 'show mappings'] - let g:_spacevim_mappings_space.t = {'name' : '+Toggle editor visuals'} + let g:_spacevim_mappings_space.t = {'name' : '+Toggles'} + let g:_spacevim_mappings_space.T = {'name' : '+UI toggles/themes'} let g:_spacevim_mappings_space.a = {'name' : '+Applications'} let g:_spacevim_mappings_space.b = {'name' : '+Buffers'} let g:_spacevim_mappings_space.f = {'name' : '+Files'}