]> Sergey Matveev's repositories - codecomm.git/blobdiff - autoload/codecomm.vim
Counter state in external file
[codecomm.git] / autoload / codecomm.vim
index 22a3fd98a812f7a911df1704e0e1074045ae045f..ab3fcb3f1a9dd4da01a342f2011cbb4c0f7804f1 100644 (file)
@@ -12,7 +12,10 @@ export def Do(firstline: number, lastline: number, gitDir: string)
     if bufexists("CodeCommCommenting") != 0
         bdelete! CodeCommCommenting
     endif
-    g:codecomm_count += 1
+
+    g:codecomm_ctr_ = -1
+    if filereadable(g:codecomm_ctr) | g:codecomm_ctr_ = str2nr(readfile(g:codecomm_ctr)[0]) | endif
+    g:codecomm_ctr_ += 1
 
     # Determine file's path inside repository
     var path = expand("%:p")
@@ -32,7 +35,7 @@ export def Do(firstline: number, lastline: number, gitDir: string)
     else
         header = add(header, path)
     endif
-    var ready = [printf("-----#%2d [ %54S ]-----", g:codecomm_count, join(header, " "))]
+    var ready = [printf("-----#%2d [ %54S ]-----", g:codecomm_ctr_, join(header, " "))]
 
     # Collect enumerated selected code block's lines
     var fmted: string
@@ -59,13 +62,12 @@ export def Do(firstline: number, lastline: number, gitDir: string)
     setlocal noreadonly noswapfile buftype=acwrite filetype=codecomm
     append(0, ready)
 
-    # Separate codecomm_file consolidating function, called when buffer is saved
-    # autocmd! BufWriteCmd CodeCommCommenting
     autocmd! BufWriteCmd CodeCommCommenting {
         var ccprev = [" vim: filetype=codecomm", ""]
-        if filereadable(g:codecomm_file) | ccprev = readfile(g:codecomm_file) | endif
+        if filereadable(g:codecomm_txt) | ccprev = readfile(g:codecomm_txt) | endif
         var ready = ccprev + getline(0, "$") + [""]
-        writefile(ready, g:codecomm_file)
+        writefile(ready, g:codecomm_txt)
+        writefile([string(g:codecomm_ctr_)], g:codecomm_ctr)
         setlocal nomodified
         echohl MoreMsg | echomsg "Commented:" len(ready) "lines" | echohl None
     }
@@ -74,8 +76,8 @@ export def Do(firstline: number, lastline: number, gitDir: string)
 enddef
 
 export def Clear()
-    writefile([], g:codecomm_file)
-    g:codecomm_count = 0
+    delete(g:codecomm_txt)
+    delete(g:codecomm_ctr)
     execute "sign unplace * buffer=" .. bufnr("%")
     echohl WarningMsg | echomsg "Comments are wiped" | echohl None
 enddef