diff --git a/autoload/SpaceVim/layers.vim b/autoload/SpaceVim/layers.vim index 328f6fbdc..c204d038c 100644 --- a/autoload/SpaceVim/layers.vim +++ b/autoload/SpaceVim/layers.vim @@ -41,8 +41,16 @@ function! s:find_layers() abort if layer =~# pattern let name = layer[matchend(layer, pattern):-5] let status = index(g:spacevim_plugin_groups, substitute(name, '/', '#','g')) ? 'loaded' : 'not loaded' - let website = 'https://spacevim.org/layers/' . name - call add(rst, name . repeat(' ', 25 - len(name)) . status . repeat(' ', 10) . website) + if filereadable(expand('~/.SpaceVim/docs/layers/' . name . '.md')) + let website = 'https://spacevim.org/layers/' . name + else + let website = 'no exists' + endif + if status == 'loaded' + call add(rst, '+ ' . name . ':' . repeat(' ', 25 - len(name)) . status . repeat(' ', 10) . website) + else + call add(rst, '- ' . name . ':' . repeat(' ', 25 - len(name)) . status . repeat(' ', 10) . website) + endif endif endfor return rst diff --git a/syntax/SpaceVimLayerManager.vim b/syntax/SpaceVimLayerManager.vim new file mode 100644 index 000000000..81f090446 --- /dev/null +++ b/syntax/SpaceVimLayerManager.vim @@ -0,0 +1,49 @@ +syntax clear +syntax region plug1 start=/\%1l/ end=/\%2l/ contains=plugNumber +syntax region plug2 start=/\%2l/ end=/\%3l/ contains=plugBracket,plugX +syn match plugNumber /[0-9]\+[0-9.]*/ contained +syn match plugBracket /[[\]]/ contained +syn match plugX /x/ contained +syn match plugDash /^-/ +syn match plugPlus /^+/ +syn match plugStar /^*/ +syn match plugMessage /\(^- \)\@<=.*/ +syn match plugName /\(^- \)\@<=[^ ]*:/ +syn match plugSha /\%(: \)\@<=[0-9a-f]\{4,}$/ +syn match plugTag /(tag: [^)]\+)/ +syn match plugInstall /\(^+ \)\@<=[^:]*/ +syn match plugUpdate /\(^* \)\@<=[^:]*/ +syn match plugCommit /^ \X*[0-9a-f]\{7,9} .*/ contains=plugRelDate,plugEdge,plugTag +syn match plugEdge /^ \X\+$/ +syn match plugEdge /^ \X*/ contained nextgroup=plugSha +syn match plugSha /[0-9a-f]\{7,9}/ contained +syn match plugRelDate /([^)]*)$/ contained +syn match plugNotLoaded /(not loaded)$/ +syn match plugError /^x.*/ +syn region plugDeleted start=/^\~ .*/ end=/^\ze\S/ +syn match plugH2 /^.*:\n-\+$/ +syn keyword Function PlugInstall PlugStatus PlugUpdate PlugClean +hi def link plug1 Title +hi def link plug2 Repeat +hi def link plugH2 Type +hi def link plugX Exception +hi def link plugBracket Structure +hi def link plugNumber Number + +hi def link plugDash Special +hi def link plugPlus Constant +hi def link plugStar Boolean + +hi def link plugMessage Function +hi def link plugName Label +hi def link plugInstall Function +hi def link plugUpdate Type + +hi def link plugError Error +hi def link plugDeleted Ignore +hi def link plugRelDate Comment +hi def link plugEdge PreProc +hi def link plugSha Identifier +hi def link plugTag Constant + +hi def link plugNotLoaded Comment