spacevim/.SpaceVim.d/autoload/SpaceVim/dev/layers.vim
JIe 2bb7059579
Some checks failed
Detach Plugins / check (FlyGrep.vim) (push) Has been cancelled
Detach Plugins / check (GitHub.vim) (push) Has been cancelled
Detach Plugins / check (JavaUnit.vim) (push) Has been cancelled
Detach Plugins / check (SourceCounter.vim) (push) Has been cancelled
Detach Plugins / check (cpicker.nvim) (push) Has been cancelled
Detach Plugins / check (dein-ui.vim) (push) Has been cancelled
Detach Plugins / check (git.vim) (push) Has been cancelled
Detach Plugins / check (iedit.vim) (push) Has been cancelled
Detach Plugins / check (scrollbar.vim) (push) Has been cancelled
Detach Plugins / check (vim-chat) (push) Has been cancelled
Detach Plugins / check (vim-cheat) (push) Has been cancelled
Detach Plugins / check (vim-todo) (push) Has been cancelled
Detach Plugins / check (xmake.vim) (push) Has been cancelled
test / Linux (nvim, nightly) (push) Has been cancelled
test / Linux (nvim, v0.3.8) (push) Has been cancelled
test / Linux (nvim, v0.4.0) (push) Has been cancelled
test / Linux (nvim, v0.4.2) (push) Has been cancelled
test / Linux (nvim, v0.4.3) (push) Has been cancelled
test / Linux (nvim, v0.4.4) (push) Has been cancelled
test / Linux (nvim, v0.5.0) (push) Has been cancelled
test / Linux (nvim, v0.5.1) (push) Has been cancelled
test / Linux (nvim, v0.6.0) (push) Has been cancelled
test / Linux (nvim, v0.6.1) (push) Has been cancelled
test / Linux (nvim, v0.7.0) (push) Has been cancelled
test / Linux (nvim, v0.7.2) (push) Has been cancelled
test / Linux (nvim, v0.8.0) (push) Has been cancelled
test / Linux (nvim, v0.8.1) (push) Has been cancelled
test / Linux (nvim, v0.8.2) (push) Has been cancelled
test / Linux (nvim, v0.8.3) (push) Has been cancelled
test / Linux (nvim, v0.9.0) (push) Has been cancelled
test / Linux (nvim, v0.9.1) (push) Has been cancelled
test / Linux (true, vim, v7.4.052) (push) Has been cancelled
test / Linux (true, vim, v7.4.1689) (push) Has been cancelled
test / Linux (true, vim, v7.4.629) (push) Has been cancelled
test / Linux (true, vim, v8.0.0027) (push) Has been cancelled
test / Linux (true, vim, v8.0.0183) (push) Has been cancelled
test / Linux (vim, nightly) (push) Has been cancelled
test / Linux (vim, v8.0.0184) (push) Has been cancelled
test / Linux (vim, v8.0.1453) (push) Has been cancelled
test / Linux (vim, v8.1.2269) (push) Has been cancelled
test / Linux (vim, v8.2.2434) (push) Has been cancelled
test / Linux (vim, v8.2.3995) (push) Has been cancelled
test / Windows (nvim, nightly) (push) Has been cancelled
test / Windows (nvim, v0.3.8) (push) Has been cancelled
test / Windows (nvim, v0.4.2) (push) Has been cancelled
test / Windows (nvim, v0.4.3) (push) Has been cancelled
test / Windows (nvim, v0.4.4) (push) Has been cancelled
test / Windows (nvim, v0.5.0) (push) Has been cancelled
test / Windows (nvim, v0.5.1) (push) Has been cancelled
test / Windows (nvim, v0.6.0) (push) Has been cancelled
test / Windows (nvim, v0.6.1) (push) Has been cancelled
test / Windows (nvim, v0.7.0) (push) Has been cancelled
test / Windows (nvim, v0.7.2) (push) Has been cancelled
test / Windows (nvim, v0.8.0) (push) Has been cancelled
test / Windows (nvim, v0.8.1) (push) Has been cancelled
test / Windows (nvim, v0.8.2) (push) Has been cancelled
test / Windows (nvim, v0.8.3) (push) Has been cancelled
test / Windows (nvim, v0.9.0) (push) Has been cancelled
test / Windows (nvim, v0.9.1) (push) Has been cancelled
test / Windows (vim, nightly) (push) Has been cancelled
test / Windows (vim, v7.4.1185) (push) Has been cancelled
test / Windows (vim, v7.4.1689) (push) Has been cancelled
test / Windows (vim, v8.0.0027) (push) Has been cancelled
test / Windows (vim, v8.0.1453) (push) Has been cancelled
test / Windows (vim, v8.1.2269) (push) Has been cancelled
test / Windows (vim, v8.2.2434) (push) Has been cancelled
test / Windows (vim, v8.2.3995) (push) Has been cancelled
docker / docker (push) Has been cancelled
mirror / check (coding) (push) Has been cancelled
mirror / check (gitee) (push) Has been cancelled
mirror / check (gitlab) (push) Has been cancelled
init
2024-08-21 14:17:26 +08:00

142 lines
4.7 KiB
VimL

"=============================================================================
" layers.vim --- Develop script for update layer index
" Copyright (c) 2016-2023 Wang Shidong & Contributors
" Author: Wang Shidong < wsdjeg@outlook.com >
" URL: https://spacevim.org
" License: GPLv3
"=============================================================================
scriptencoding utf-8
let s:FILE = SpaceVim#api#import('file')
let s:SYS = SpaceVim#api#import('system')
let s:CMP = SpaceVim#api#import('vim#compatible')
let s:AUTODOC = SpaceVim#api#import('dev#autodoc')
let s:AUTODOC.autoformat = 1
function! SpaceVim#dev#layers#update() abort
let s:AUTODOC.begin = '^<!-- SpaceVim layer list start -->$'
let s:AUTODOC.end = '^<!-- SpaceVim layer list end -->$'
let s:AUTODOC.content_func = function('s:generate_content')
call s:AUTODOC.update()
endfunction
function! SpaceVim#dev#layers#updateCn() abort
let s:AUTODOC.begin = '^<!-- SpaceVim layer cn list start -->$'
let s:AUTODOC.end = '^<!-- SpaceVim layer cn list end -->$'
let s:AUTODOC.content_func = function('s:generate_content_cn')
call s:AUTODOC.update()
endfunction
function! SpaceVim#dev#layers#updatedocker() abort
let [start, end] = s:find_docker_position()
if start != 0 && end != 0
if end - start > 1
exe (start + 1) . ',' . (end - 1) . 'delete'
endif
call append(start, s:generate_docker_content())
endif
endfunction
function! s:find_position() abort
let start = search('^<!-- SpaceVim layer list start -->$','bwnc')
let end = search('^<!-- SpaceVim layer list end -->$','bnwc')
return sort([start, end], 'n')
endfunction
function! s:find_docker_position() abort
let start = search('^## -- SpaceVim layer list start$','bwnc')
let end = search('^## -- SpaceVim layer list end$','bnwc')
return sort([start, end], 'n')
endfunction
function! s:find_position_cn() abort
let start = search('^<!-- SpaceVim layer cn list start -->$','bwnc')
let end = search('^<!-- SpaceVim layer cn list end -->$','bnwc')
return sort([start, end], 'n')
endfunction
function! s:generate_content() abort
let content = ['', '## Available layers', '']
let content += s:layer_list()
let content += ['']
return content
endfunction
function! s:generate_content_cn() abort
let content = ['', '## 可用模块', '']
let content += s:layer_list_cn()
let content += ['']
return content
endfunction
function! s:generate_docker_content() abort
let layers = s:CMP.globpath('~/.SpaceVim/', 'docs/cn/layers/**/*.md')
let list = [
\ ]
call remove(layers, index(layers, '/home/wsdjeg/.SpaceVim/docs/cn/layers/index.md'))
for layer in layers
let name = split(layer, '/docs/cn/layers/')[1][:-4] . '/'
if name ==# 'language-server-protocol/'
let name = 'lsp'
endif
let name = join(split(name, '/'), '#')
let snippet = ['[[layers]]', ' name = "' . name . '"', '']
let list += snippet
endfor
return list
endfunction
function! s:layer_list() abort
let layers = s:CMP.globpath('~/.SpaceVim/', 'docs/layers/**/*.md')
let list = [
\ '| Name | Description |',
\ '| ---------- | ------------ |'
\ ]
if s:SYS.isWindows
let pattern = join(['', 'docs', 'layers', ''], s:FILE.separator . s:FILE.separator)
else
let pattern = join(['', 'docs', 'layers', ''], s:FILE.separator)
endif
for layer in layers
let name = split(layer, pattern)[1][:-4] . s:FILE.separator
let url = join(split(name, s:FILE.separator), '/') . '/'
let content = readfile(layer)
if len(content) > 3
let line = '| [' . join(split(name, s:FILE.separator), '#') . '](' . url . ') | ' . content[2][14:-2] . ' | '
else
let line = '| [' . join(split(name, s:FILE.separator), '#') . '](' . url . ') | can not find Description |'
endif
call add(list, line)
endfor
return list
endfunction
function! s:layer_list_cn() abort
let layers = s:CMP.globpath('~/.SpaceVim/', 'docs/cn/layers/**/*.md')
let list = [
\ '| 名称 | 描述 |',
\ '| ---------- | ------------ |'
\ ]
if s:SYS.isWindows
let pattern = join(['', 'docs', 'cn', 'layers', ''], s:FILE.separator . s:FILE.separator)
else
let pattern = join(['', 'docs', 'cn', 'layers', ''], s:FILE.separator)
endif
for layer in layers
let name = split(layer, pattern)[1][:-4] . s:FILE.separator
let url = join(split(name, s:FILE.separator), '/') . '/'
let content = readfile(layer)
if len(content) > 3
let line = '| [' . join(split(name, s:FILE.separator), '#') . '](' . url . ') | ' . content[2][14:-2] . ' | '
else
let line = '| [' . join(split(name, s:FILE.separator), '#') . '](' . url . ') | can not find Description |'
endif
call add(list, line)
endfor
return list
endfunction