let g:loaded_codecomm = 1
if !exists("g:codecomm_file")
- let g:codecomm_file = "/tmp/codecomm.txt"
+ let tmpdir = getenv("TMPDIR")
+ if tmpdir == v:null | let tmpdir = "/tmp" | endif
+ let g:codecomm_file = tmpdir . "/" . "codecomm.txt"
endif
if !exists("g:codecomm_count") | let g:codecomm_count = 0 | endif
let ready = add(ready, fmted)
endfor
let ready = add(ready, "---------------------------------- >8 ----------------------------------")
+ " Place commented signs
+ sign define commented text=C texthl=Search
+ for linen in range(a:firstline, a:lastline)
+ let cmd = ":sign place " . linen . " line=" . linen
+ let cmd .= " name=commented buffer=" . bufnr("%")
+ execute cmd
+ endfor
" Spawn a new small code commenting window nonbinded to file
new CodeCommCommenting
- setlocal noswapfile
- setlocal buftype=acwrite
+ setlocal noreadonly noswapfile buftype=acwrite filetype=codecomm
call append("^", ready)
" Separate codecomm_file consolidating function, called when buffer is saved
autocmd! BufWriteCmd CodeCommCommenting
function! s:AppendCC()
" Collect already written comments from file if it exists
- let ccprev = []
+ let ccprev = [" vim: filetype=codecomm", ""]
if filereadable(g:codecomm_file)
let ccprev = readfile(g:codecomm_file)
endif
echohl MoreMsg | echomsg "Commented:" len(ready) "lines" | echohl None
endfunction
autocmd BufWriteCmd CodeCommCommenting call s:AppendCC()
- " Simple syntax highlighting for that window
- syntax region CCBlock start=/^-\{5}#/ end=/^-\+ >8 -\+/
- highlight link CCBlock Statement
normal zR
startinsert
endfunction
endfunction
command! CodeCommClear call <SID>CodeCommClear()
+command! CodeCommEdit :execute "edit " . g:codecomm_file
command! -range CodeComm <line1>, <line2> call <SID>CodeComm()
vnoremap <silent><Leader>cc :call <SID>CodeComm()<CR>