diff --git a/.gitignore b/.gitignore index 94cd3d1fd..905c5d503 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ doc/tags *-rplugin~ *rplugin.vim /config/local.vim +.SpaceVim.log diff --git a/BingSiteAuth.xml b/BingSiteAuth.xml index f130d5ab9..04a43a6cf 100644 --- a/BingSiteAuth.xml +++ b/BingSiteAuth.xml @@ -1,4 +1,4 @@ 14716157352C631AD40087A3D69C499B - \ No newline at end of file + diff --git a/autoload/SpaceVim.vim b/autoload/SpaceVim.vim index 65b228c5b..bfdb1d631 100644 --- a/autoload/SpaceVim.vim +++ b/autoload/SpaceVim.vim @@ -84,6 +84,16 @@ let g:spacevim_plugin_manager = 'dein' " neobundle or dein or vim-plug " let g:spacevim_checkinstall = 0 " < let g:spacevim_checkinstall = 1 +"" +" Enable/Disable debug mode for SpaceVim, by default it is disabled. +" +" to enable it: > +" let g:spacevim_enable_debug = 1 +" < +let g:spacevim_enable_debug = 0 +"" +" Set the debug level of SpaceVim, by default it is 1. +let g:spacevim_debug_level = 1 let g:spacevim_hiddenfileinfo = 1 let g:spacevim_plugin_groups_exclude = [] "" diff --git a/autoload/SpaceVim/logger.vim b/autoload/SpaceVim/logger.vim new file mode 100644 index 000000000..1cf7b303f --- /dev/null +++ b/autoload/SpaceVim/logger.vim @@ -0,0 +1,67 @@ +let s:logger_level = g:spacevim_debug_level +let s:levels = ['Info', 'Warn', 'Error'] +let s:logger_file = expand('~/.SpaceVim/.SpaceVim.log') + +"" +" @public +" Set debug level of SpaceVim, by default it is 1. all message will be logged. +" +" 1 : log all the message. +" +" 2 : log warning and error message +" +" 3 : log error message only +function! SpaceVim#logger#setLevel(level) abort + let s:logger_level = a:level +endfunction + +function! SpaceVim#logger#info(msg) abort + if g:spacevim_enable_debug && s:logger_level <= 1 + call s:wite(s:warpMsg(a:msg, 1)) + endif +endfunction + +function! SpaceVim#logger#warn(msg) abort + if g:spacevim_enable_debug && s:logger_level <= 2 + call s:wite(s:warpMsg(a:msg, 2)) + endif +endfunction + +function! SpaceVim#logger#error(msg) abort + if g:spacevim_enable_debug && s:logger_level <= 3 + call s:wite(s:warpMsg(a:msg, 3)) + endif +endfunction + +function! s:wite(msg) abort + let flags = filewritable(s:logger_file) ? 'a' : '' + call writefile([a:msg], s:logger_file, flags) +endfunction + + +function! SpaceVim#logger#viewLog(...) abort + let l = a:0 > 0 ? a:1 : 1 + let logs = readfile(s:logger_file, '') + echo logs[0] + return join(filter(logs, "v:val =~# '\[ SpaceVim \] \[\d\d\:\d\d\:\d\d\] \[" . s:levels[l] . "\]'"), "\n") +endfunction + +"" +" @public +" Set log output file of SpaceVim. by default it is +" `~/.SpaceVim/.SpaceVim.log` +function! SpaceVim#logger#setOutput(file) abort + let s:logger_file = a:file +endfunction + +function! s:warpMsg(msg,l) abort + let time = strftime('%H:%M:%S') + let log = '[ SpaceVim ] [' . time . '] [' . s:levels[a:l - 1] . '] ' . a:msg + return log +endfunction + +function! SpaceVim#logger#echoWarn(msg) abort + echohl WarningMsg + echom s:warpMsg(a:msg, 1) + echohl None +endfunction diff --git a/autoload/SpaceVim/plugins.vim b/autoload/SpaceVim/plugins.vim index 90b85ba23..521dcb8bd 100644 --- a/autoload/SpaceVim/plugins.vim +++ b/autoload/SpaceVim/plugins.vim @@ -1,3 +1,4 @@ +scriptencoding utf-8 let s:plugins = {} let s:plugins.core = [ diff --git a/doc/SpaceVim.txt b/doc/SpaceVim.txt index c3b66cf64..97b9c5b5b 100644 --- a/doc/SpaceVim.txt +++ b/doc/SpaceVim.txt @@ -82,6 +82,17 @@ To disable it: let g:spacevim_checkinstall = 0 < + *g:spacevim_enable_debug* +Enable/Disable debug mode for SpaceVim, by default it is disabled. + +to enable it: +> + let g:spacevim_enable_debug = 1 +< + + *g:spacevim_debug_level* +Set the debug level of SpaceVim, by default it is 1. + *g:spacevim_plugin_groups* groups of plugins should be loaded. @@ -119,5 +130,18 @@ SpaceVim#Layer({layer}) *SpaceVim#Layer()* Load the {layer} you want : autocompletion : Make SpaceVim support autocompletion. unite : Unite centric work-flow +SpaceVim#logger#setLevel({level}) *SpaceVim#logger#setLevel()* + Set debug level of SpaceVim, by default it is 1. all message will be logged. + + 1 : log all the message. + + 2 : log warning and error message + + 3 : log error message only + +SpaceVim#logger#setOutput({file}) *SpaceVim#logger#setOutput()* + Set log output file of SpaceVim. by default it is + `~/.SpaceVim/.SpaceVim.log` + vim:tw=78:ts=8:ft=help:norl: diff --git a/sitemap.xml b/sitemap.xml index f20f74309..5bdd1751d 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -16,4 +16,4 @@ 2017-01-08T05:59:47+00:00 daily - \ No newline at end of file +