X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=vim%2F.vim%2Fpack%2Fstargrave%2Fstart%2Fmark%2Fautoload%2Fmark.vim;h=640f6cbbc479a75f0acfb5047ea75fe52456cea5;hb=9ce12f786dabbc2a9bb2233f3c34d544c3c0ce7c;hp=7a3f33970858532b7f90cc9749ed769f752e668a;hpb=50ff5d4b1e9e9fe6d4e9c65927d61a40229dc27f;p=dotfiles.git diff --git a/vim/.vim/pack/stargrave/start/mark/autoload/mark.vim b/vim/.vim/pack/stargrave/start/mark/autoload/mark.vim index 7a3f339..640f6cb 100644 --- a/vim/.vim/pack/stargrave/start/mark/autoload/mark.vim +++ b/vim/.vim/pack/stargrave/start/mark/autoload/mark.vim @@ -20,7 +20,7 @@ hi MarkWord6 ctermfg=Black ctermbg=Blue const Offset = 3333 var Show = false var Words: list -var Cycle = 1 +var Idx = 1 def Init() if len(Words) > 0 | return | endif @@ -34,54 +34,44 @@ def Del(i: number) silent! matchdelete(Offset + i + 1) enddef -def Add(i: number) - matchadd("MarkWord" .. (i + 1), Words[i], -10, Offset + i + 1) +def Add(i: number, word: string) + Words[i] = word + matchadd("MarkWord" .. (i + 1), word, -10, Offset + i + 1) enddef -export def Update() +export def Refresh() Init() var word: string for i in range(len(Words)) exec "syntax clear MarkWord" .. (i + 1) if Words[i] == "" | continue | endif silent! matchdelete(Offset + i + 1) - if Show | Add(i) | endif + if Show | Add(i, Words[i]) | endif endfor enddef export def Toggle() Show = !Show - Update() + Refresh() enddef -def Do(word: string): bool +def Do(word: string) Init() - if !Show - for i in range(len(Words)) - if Words[i] == "" | continue | endif - Del(i) - endfor - Show = true - endif for i in range(len(Words)) - if word == Words[i] - Del(i) - return true + if !Show | Del(i) + elseif Words[i] == word | Del(i) | return endif endfor + if !Show | Show = true | endif for i in range(len(Words)) if Words[i] != "" | continue | endif - Del(i) - Words[i] = word - Add(i) - Cycle = ((i + 1) == len(Words)) ? 1 : i + 1 - return true + Add(i, word) + Idx = ((i + 1) == len(Words)) ? 1 : (i + 1) + return endfor - Del(Cycle) - Words[Cycle] = word - Add(Cycle) - Cycle = ((Cycle + 1) == len(Words)) ? 1 : Cycle + 1 - return true + Del(Idx) + Add(Idx, word) + Idx = ((Idx + 1) == len(Words)) ? 1 : (Idx + 1) enddef export def Word()