diff options
Diffstat (limited to 'vim/init/config.vim')
-rw-r--r-- | vim/init/config.vim | 45 |
1 files changed, 33 insertions, 12 deletions
diff --git a/vim/init/config.vim b/vim/init/config.vim index 5c53728..ce81f8a 100644 --- a/vim/init/config.vim +++ b/vim/init/config.vim | |||
@@ -221,26 +221,47 @@ augroup InitFileTypes | |||
221 | au FileType javascript call InitJavascriptFile() | 221 | au FileType javascript call InitJavascriptFile() |
222 | function! InitJavascriptFile() | 222 | function! InitJavascriptFile() |
223 | setlocal wrap sw=2 ts=2 | 223 | setlocal wrap sw=2 ts=2 |
224 | 224 | setlocal foldexpr=JsdocLevel() foldmethod=expr foldtext=JSdocFoldText() | |
225 | setlocal foldexpr=JsdocLevel() foldmethod=expr | ||
226 | |||
227 | let l:jsdocPrefix = "JSDOC: " | ||
228 | setlocal foldtext=JSdocFoldText() | ||
229 | endfunc | 225 | endfunc |
230 | 226 | ||
231 | function! JsdocLevel() | 227 | function! JsdocLevel() |
232 | let jsdoc = matchstr(getline(v:lnum), '^\zs\s*\/\*\*\ze') | 228 | let line = getline(v:lnum) |
229 | let jsdoc = matchstr(line, '^\zs[ \/]*\/\*\*\ze') | ||
230 | let indent = len(matchstr(line, '^\zs\s*\ze')) / 2 | ||
231 | |||
233 | if !empty(jsdoc) | 232 | if !empty(jsdoc) |
234 | let foldlevel = len(matchstr(jsdoc, '^\zs\s*\ze')) + 1 | 233 | let foldlevel = indent + 1 |
235 | return '>'.foldlevel | 234 | return '>'.foldlevel |
236 | else | 235 | else |
237 | " Contents | 236 | let foldlevel = foldlevel(v:lnum - 1) |
238 | return "=" | 237 | " let lastIndent = len(matchstr(getline(v:lnum - 1), '^\zs\s*\ze')) / 2 |
238 | " let pattern = matchstr(line, '^\s*\zs[})]\+;*\ze$') | ||
239 | " if !empty(line) && len(pattern) > 0 && indent + 1 == foldlevel && indent < lastIndent | ||
240 | " return "<".foldlevel | ||
241 | if empty(line) && empty(getline(v:lnum - 1)) | ||
242 | return "<".foldlevel | ||
243 | else | ||
244 | return "=" | ||
245 | endif | ||
239 | endif | 246 | endif |
240 | endfunc | 247 | endfunc |
241 | 248 | ||
242 | function! JSdocFoldText() | 249 | function! JSdocFoldText() |
243 | return "JSDOC: ".matchstr(getline(v:foldstart + 1), '^[\* ]*\zs.*\ze') | 250 | let line = getline(v:foldstart) |
251 | let message = matchstr(line, '\*\s\zs.*\ze\s\*\+/$') | ||
252 | let lines = v:foldend - v:foldstart | ||
253 | |||
254 | if empty(message) | ||
255 | let line = getline(v:foldstart + 1) | ||
256 | let message = "@ ".matchstr(line, '^[\* ]*\zs.*\ze') | ||
257 | endif | ||
258 | |||
259 | let comment = matchstr(line, '^\s*\zs//\ze') | ||
260 | if !empty(comment) | ||
261 | let message = '/** '.message.' */' | ||
262 | endif | ||
263 | |||
264 | return repeat(" ", v:foldlevel - 1).repeat(" ", 4 - len(lines)).lines." lines -- ".message | ||
244 | endfunc | 265 | endfunc |
245 | 266 | ||
246 | " }}} | 267 | " }}} |
@@ -265,8 +286,8 @@ augroup InitFileTypes | |||
265 | endfunc | 286 | endfunc |
266 | autocmd FileType html,markdown,javascript nnoremap <buffer> <leader>cl :call <SID>ChangeAttr("class")<CR> | 287 | autocmd FileType html,markdown,javascript nnoremap <buffer> <leader>cl :call <SID>ChangeAttr("class")<CR> |
267 | autocmd FileType html,markdown,javascript nnoremap <buffer> <leader>id :call <SID>ChangeAttr("id")<CR> | 288 | autocmd FileType html,markdown,javascript nnoremap <buffer> <leader>id :call <SID>ChangeAttr("id")<CR> |
268 | autocmd FileType css,javascript nnoremap <buffer> <F9> :let LINE=line(".")<CR>:silent! %!npx standard --stdin --fix 2>/dev/null<CR>:exe LINE<CR> | 289 | autocmd FileType css,javascript nnoremap <buffer> <F9> :let LINE=line(".")<CR>:silent! %!standard --stdin --fix 2>/dev/null<CR>:exe LINE<CR> |
269 | autocmd FileType css,javascript nmap <buffer> <F8> cdg:let LINE=line(".")<CR>:%!stylelint --fix --stdin 2>/dev/null<CR>:exe LINE<CR> | 290 | autocmd FileType css,javascript nmap <buffer> <F8> cdg:let LINE=line(".")<CR>:%!stylelint -c scripts/stylelintrc.json --fix --stdin 2>/dev/null<CR>:exe LINE<CR> |
270 | autocmd FileType css,javascript set formatprg=prettier | 291 | autocmd FileType css,javascript set formatprg=prettier |
271 | 292 | ||
272 | " Reload preview server | 293 | " Reload preview server |