diff --git a/autoload/SpaceVim.vim b/autoload/SpaceVim.vim index b930f1619..1b59af740 100644 --- a/autoload/SpaceVim.vim +++ b/autoload/SpaceVim.vim @@ -595,6 +595,13 @@ function! SpaceVim#loadCustomConfig() abort exe 'source ' . custom_glob_conf endif + " json config + let json_global = expand('~/.SpaceVim.d/init.json') + if filereadable(json_global) + let config = join(readfile(json_global), '') + call SpaceVim#custom#apply(config) + endif + if g:spacevim_enable_ycm && g:spacevim_snippet_engine !=# 'ultisnips' call SpaceVim#logger#info('YCM only support ultisnips, change g:spacevim_snippet_engine to ultisnips') let g:spacevim_snippet_engine = 'ultisnips' diff --git a/autoload/SpaceVim/custom.vim b/autoload/SpaceVim/custom.vim index 8124da0af..75b2bdb00 100644 --- a/autoload/SpaceVim/custom.vim +++ b/autoload/SpaceVim/custom.vim @@ -70,3 +70,17 @@ endfunction function! SpaceVim#custom#SPCGroupName(keys, name) abort call add(g:_spacevim_mappings_space_custom_group_name, [a:keys, a:name]) endfunction + + +function! SpaceVim#custom#apply(config) abort + let config = json_decode(a:config) + for key in keys(config) + if exists('g:spacevim_' . key) + exe 'let g:spacevim_' . key . ' = "' . config[key] . '"' + endif + endfor +endfunction + +function! SpaceVim#custom#write(force) abort + +endfunction diff --git a/mode/basic.json b/mode/basic.json new file mode 100644 index 000000000..7ec2ca6a3 --- /dev/null +++ b/mode/basic.json @@ -0,0 +1,10 @@ +{ + "colorscheme": "grubox", + "background": "dark", + "guicolors": true, + "statusline_separator": "nil", + "statusline_inactive_separator": "bar", + "buffer_index_type": 4, + "filetype_icon": false, + "statusline_display_mode": false +}