diff options
| author | Hsieh Chin Fan <pham@topo.tw> | 2024-10-25 11:58:32 +0800 |
|---|---|---|
| committer | Hsieh Chin Fan <pham@topo.tw> | 2024-10-25 11:58:32 +0800 |
| commit | 0cc4a179cfed5c2be516186dd134c6d208b7f2a9 (patch) | |
| tree | 47eb657e7f3a84e95e55b6560d63ac07cbe3878f /vim/init | |
| parent | 544734673b2235fc9d011f740118fb56f21bf0ff (diff) | |
Update
Diffstat (limited to 'vim/init')
| -rw-r--r-- | vim/init/basic.vim | 2 | ||||
| -rw-r--r-- | vim/init/config.vim | 45 |
2 files changed, 34 insertions, 13 deletions
diff --git a/vim/init/basic.vim b/vim/init/basic.vim index c4c62e7..4a49f39 100644 --- a/vim/init/basic.vim +++ b/vim/init/basic.vim | |||
| @@ -119,7 +119,7 @@ set errorformat+=[%f:%l]\ ->\ %m,[%f:%l]:%m | |||
| 119 | set splitright | 119 | set splitright |
| 120 | 120 | ||
| 121 | " Set signcolumn | 121 | " Set signcolumn |
| 122 | set signcolumn="yes:3" | 122 | set signcolumn=yes:3 |
| 123 | " Custom sign from help page :h sign | 123 | " Custom sign from help page :h sign |
| 124 | sign define piet text=>> texthl=Search | 124 | sign define piet text=>> texthl=Search |
| 125 | 125 | ||
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 |