diff --git a/autoload/SpaceVim.vim b/autoload/SpaceVim.vim index ae414bc14..f1d53066e 100644 --- a/autoload/SpaceVim.vim +++ b/autoload/SpaceVim.vim @@ -91,6 +91,22 @@ let g:spacevim_relativenumber = 1 " < let g:spacevim_max_column = 120 +"" +" @section max_column, options-home_files_number +" @parentsection options +" Change the list number of files for SpaceVim home. Default is 6. +" > +" home_files_number = 6 +" < + +"" +" Change the list number of files for SpaceVim home. Default is 6. +" > +" let g:spacevim_home_files_number = 6 +" < +let g:spacevim_home_files_number = 6 + + "" " @section enable_guicolors, options-enable_guicolors " @parentsection options diff --git a/autoload/SpaceVim/layers/fzf.vim b/autoload/SpaceVim/layers/fzf.vim index ba8e29354..dfd8cdf7e 100644 --- a/autoload/SpaceVim/layers/fzf.vim +++ b/autoload/SpaceVim/layers/fzf.vim @@ -425,3 +425,39 @@ function! s:helptags(...) abort \ 'down': '40%' \ })) endfunction + + +" fzf menu command +function! SpaceVim#layers#fzf#complete_menu(ArgLead, CmdLine, CursorPos) abort + return join(keys(g:unite_source_menu_menus), "\n") +endfunction + +command! -nargs=* -complete=custom,SpaceVim#layers#fzf#complete_menu FzfMenu call menu() +function! s:menu_action(e) abort + let action = get(s:menu_action, a:e, '') + exe action +endfunction +function! s:menu(name) abort + let s:source = 'menu' + let s:menu_name = a:name + let s:menu_action = {} + function! s:menu_content() abort + let menu = get(g:unite_source_menu_menus, s:menu_name, {}) + if has_key(menu, 'command_candidates') + let rt = [] + for item in menu.command_candidates + call add(rt, item[0]) + call extend(s:menu_action, {item[0] : item[1]}, 'force') + endfor + return rt + else + return [] + endif + endfunction + call fzf#run(fzf#wrap('menu', { + \ 'source': reverse(menu_content()), + \ 'sink': function('s:menu_action'), + \ 'options': '+m', + \ 'down': '40%' + \ })) +endfunction diff --git a/autoload/SpaceVim/layers/test.vim b/autoload/SpaceVim/layers/test.vim index 72020a3a6..3e1c042cc 100644 --- a/autoload/SpaceVim/layers/test.vim +++ b/autoload/SpaceVim/layers/test.vim @@ -39,3 +39,13 @@ function! SpaceVim#layers#test#config() abort let g:test#custom_strategies = {'spacevim': function('SpaceVim#plugins#runner#open')} let g:test#strategy = 'spacevim' endfunction + +function! SpaceVim#layers#test#set_variable(var) abort + let l:override = get(a:var, 'override_config', {}) + if !empty(l:override) + for l:option in keys(l:override) + let l:varname = 'test#'.substitute(l:option, '_', '#', 'g') + execute 'let g:'.l:varname.' = '."'".l:override[l:option]."'" + endfor + endif +endfunction diff --git a/autoload/SpaceVim/plugins/projectmanager.vim b/autoload/SpaceVim/plugins/projectmanager.vim index 76bd0f705..b3aee23e0 100644 --- a/autoload/SpaceVim/plugins/projectmanager.vim +++ b/autoload/SpaceVim/plugins/projectmanager.vim @@ -36,8 +36,19 @@ let g:unite_source_menu_menus.Projects = {'description': let g:unite_source_menu_menus.Projects.command_candidates = \ get(g:unite_source_menu_menus.Projects,'command_candidates', []) +" this function will use fuzzy find layer, now only denite and unite are +" supported. + function! SpaceVim#plugins#projectmanager#list() abort - Unite menu:Projects + if SpaceVim#layers#isLoaded('unite') + Unite menu:Projects + elseif SpaceVim#layers#isLoaded('denite') + Denite menu:Projects + elseif SpaceVim#layers#isLoaded('fzf') + FzfMenu Projects + else + call SpaceVim#logger#warn('fuzzy find layer is needed to find project!') + endif endfunction function! SpaceVim#plugins#projectmanager#open(project) abort diff --git a/config/plugins/vim-startify.vim b/config/plugins/vim-startify.vim index b5d23aea4..e5530110c 100644 --- a/config/plugins/vim-startify.vim +++ b/config/plugins/vim-startify.vim @@ -24,7 +24,7 @@ fu! s:update_logo() endif endf let g:startify_session_dir = $HOME . '/.data/' . ( has('nvim') ? 'nvim' : 'vim' ) . '/session' -let g:startify_files_number = 6 +let g:startify_files_number = g:spacevim_home_files_number let g:startify_list_order = [ \ [' My most recently used files in the current directory:'], \ 'dir', diff --git a/docs/layers/test.md b/docs/layers/test.md index 726cb5074..940e3ba63 100644 --- a/docs/layers/test.md +++ b/docs/layers/test.md @@ -26,6 +26,27 @@ To use this configuration layer, add following snippet to your custom configurat name = "test" ``` +## Configuration + +To set or override any configuration ([see supported settings here](https://github.com/janko/vim-test)) you may use the `override_config`: + +```toml +[[layers]] + name = "test" + [layers.override_config] + java_runner = "gradletest" + java_gradletest_executable = "./gradlew test" +``` + +In the example above is equivalent to adding the following in viml: + +```viml +let test#java#runner = "gradletest" +let test#java#gradletest#executable = "./gradlew test" +``` + +In essence, it replaces `_` with `#` and prepends `test#` to the keys inside `override_config`. + ## Key bindings | Key Binding | Description |