From 321ecaca67426410316db7db05e6e33809fe1e63 Mon Sep 17 00:00:00 2001 From: Ben Beltran Date: Fri, 19 Oct 2012 15:09:38 -0500 Subject: Add powerline --- vim/autoload/Pl/Mod.vim | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 vim/autoload/Pl/Mod.vim (limited to 'vim/autoload/Pl/Mod.vim') diff --git a/vim/autoload/Pl/Mod.vim b/vim/autoload/Pl/Mod.vim new file mode 100644 index 0000000..fdfb571 --- /dev/null +++ b/vim/autoload/Pl/Mod.vim @@ -0,0 +1,40 @@ +let s:segment_mods = [] + +function! Pl#Mod#AddSegmentMod(action, properties) " {{{ + call add(s:segment_mods, [a:action, a:properties]) +endfunction " }}} +function! Pl#Mod#ApplySegmentMods(theme) " {{{ + let theme = deepcopy(a:theme) + + for mod in s:segment_mods + let [action, properties] = mod + + " We have to loop through the segments instead of using index() because some + " segments are lists! + let target_seg_idx = -1 + + for i in range(0, len(theme) - 1) + unlet! segment + let segment = theme[i] + + if type(segment) == type(properties.target_segment) && segment == properties.target_segment + let target_seg_idx = i + break + endif + endfor + + if action == 'insert_segment' + " Insert segment + if target_seg_idx != -1 + call insert(theme, properties.new_segment, (properties.where == 'before' ? target_seg_idx : target_seg_idx + 1)) + endif + elseif action == 'remove_segment' + " Remove segment + if target_seg_idx != -1 + call remove(theme, target_seg_idx) + endif + endif + endfor + + return theme +endfunction " }}} -- cgit