aboutsummaryrefslogtreecommitdiffhomepage
path: root/vim/init/config.vim
diff options
context:
space:
mode:
Diffstat (limited to 'vim/init/config.vim')
-rw-r--r--vim/init/config.vim45
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