aboutsummaryrefslogtreecommitdiff
path: root/.vim/plugin/libList.vim
diff options
context:
space:
mode:
Diffstat (limited to '.vim/plugin/libList.vim')
-rw-r--r--.vim/plugin/libList.vim249
1 files changed, 0 insertions, 249 deletions
diff --git a/.vim/plugin/libList.vim b/.vim/plugin/libList.vim
deleted file mode 100644
index 7d72c3e..0000000
--- a/.vim/plugin/libList.vim
+++ /dev/null
@@ -1,249 +0,0 @@
-" File: libList.vim
-" Last Change: 2001 Dec 10
-" Maintainer: Gontran BAERTS <gbcreation@free.fr>
-" Version: 0.1
-"
-" Please don't hesitate to correct my english :)
-" Send corrections to <gbcreation@free.fr>
-"
-"-----------------------------------------------------------------------------
-" Description: libList.vim is a set of functions to work with lists or one
-" level arrays.
-"
-"-----------------------------------------------------------------------------
-" To Enable: Normally, this file will reside in your plugins directory and be
-" automatically sourced.
-"
-"-----------------------------------------------------------------------------
-" Usage: Lists are strings variable with values separated by g:listSep
-" character (comma" by default). You may redefine g:listSep variable as you
-" wish.
-"
-" Here are available functions :
-"
-" - AddListItem( array, newItem, index ) :
-" Add item "newItem" to array "array" at "index" position
-" - GetListItem( array, index ) :
-" Return item at "index" position in array "array"
-" - GetListMatchItem( array, pattern ) :
-" Return item matching "pattern" in array "array"
-" - GetListCount( array ) :
-" Return the number of items in array "array"
-" - RemoveListItem( array, index ) :
-" Remove item at "index" position from array "array"
-" - ReplaceListItem( array, index, item ) :
-" Remove item at "index" position by "item" in array "array"
-" - ExchangeListItems( array, item1Index, item2Index ) :
-" Exchange item "item1Index" with item "item2Index" in array "array"
-" - QuickSortList( array, beg, end ) :
-" Return array "array" with items between "beg" and "end" sorted
-"
-" Example:
-" let mylist=""
-" echo GetListCount( mylist ) " --> 0
-" let mylist = AddListItem( mylist, "One", 0 ) " mylist == "One"
-" let mylist = AddListItem( mylist, "Three", 1 ) " mylist == "One,Three"
-" let mylist = AddListItem( mylist, "Two", 1 ) " mylist == "One,Two,Three"
-" echo GetListCount( mylist ) " --> 3
-" echo GetListItem( mylist, 2 ) " --> Three
-" echo GetListMatchItem( mylist, "w" ) " --> two
-" echo GetListMatchItem( mylist, "e" ) " --> One
-" let mylist = RemoveListItem( mylist, 2 ) " mylist == "One,Two"
-" echo GetListCount( mylist ) " --> 2
-" let mylist = ReplaceListItem( mylist, 0, "Three" ) " mylist == "Three,Two"
-" let mylist = ExchangeListItems( mylist, 0, 1 ) " mylist == "Two,Three"
-" let mylist = AddListItem( mylist, "One", 0 ) " mylist == "One,Two,Three"
-" let mylist = QuickSortList( mylist, 0, GetListCount(mylist)-1 )
-" " mylist == "One,Three,Two"
-"
-"-----------------------------------------------------------------------------
-" Updates:
-" in version 0.1
-" - First version
-
-" Has this already been loaded ?
-if exists("loaded_libList")
- finish
-endif
-let loaded_libList=1
-
-"**
-" Separator:
-" You may change the separator character et any time.
-"**
-let g:listSep = ","
-
-"**
-"AddListItem:
-" Add new item at given position.
-" First item index is 0 (zero).
-"Parameters:
-" - array : Array/List (string of values) which receives the new item.
-" - newItem : String containing the item value to add.
-" - index : Integer indicating the position at which the new item is added.
-" It must be greater than or equals to 0 (zero).
-"Return:
-"String containing array values, including newItem.
-"**
-function AddListItem( array, newItem, index )
- if a:index == 0
- if a:array == ""
- return a:newItem
- endif
- return a:newItem . g:listSep . a:array
- endif
- return substitute( a:array, '\(\%(^\|' . g:listSep . '\)[^' . g:listSep . ']\+\)\{' . a:index . '\}', '\0' . g:listSep . a:newItem , "" )
-endfunction
-
-"**
-"GetListItem:
-" Get item at given position.
-"Parameters:
-" - array : Array/List (string of values).
-" - index : Integer indicating the position of item to return.
-" It must be greater than or equals to 0 (zero).
-"Return:
-"String representing the item.
-"**
-function GetListItem( array, index )
- if a:index == 0
- return matchstr( a:array, '^[^' . g:listSep . ']\+' )
- else
- return matchstr( a:array, "[^" . g:listSep . "]\\+", matchend( a:array, '\(\%(^\|' . g:listSep . '\)[^' . g:listSep . ']\+\)\{' . a:index . '\}' . g:listSep ) )
- endif
-endfunction
-
-"**
-"GetListMatchItem:
-" Get the first item matching given pattern.
-"Parameters:
-" - array : Array/List (string of values).
-" - pattern : Regular expression to match with items.
-" Avoid to use ^, $ and listSep characters in pattern, unless you
-" know what you do.
-"Return:
-"String representing the first item that matches the pattern.
-"**
-function GetListMatchItem( array, pattern )
- return matchstr( a:array, '[^' . g:listSep . ']*' . a:pattern . '[^' . g:listSep . ']*' )
-endfunction
-
-"**
-"ReplaceListItem:
-" Replace item at given position by a new one.
-"Parameters:
-" - array : Array/List (string of values).
-" - index : Integer indicating the position of item to replace.
-" It must be greater than or equals to 0 (zero).
-" - item : String containing the new value of the replaced item.
-"Return:
-"String containing array values.
-"**
-function ReplaceListItem( array, index, item )
- if a:index == 0
- return substitute( a:array, '^[^' .g:listSep. ']\+', a:item, "" )
- else
- return substitute( a:array, '\(\%(\%(^\|' . g:listSep . '\)[^' . g:listSep . ']\+\)\{' . a:index . '\}\)' . g:listSep . '[^' . g:listSep . ']\+', '\1' . g:listSep . a:item , "" )
- endif
-endfunction
-
-"**
-"RemoveListItem:
-" Remove item at given position.
-"Parameters:
-" - array : Array/List (string of values) from which remove an item.
-" - index : Integer indicating the position of item to remove.
-" It must be greater than or equals to 0 (zero).
-"Return:
-"String containing array values, except the removed one.
-"**
-function RemoveListItem( array, index )
- if a:index == 0
- return substitute( a:array, '^[^' .g:listSep. ']\+\(' . g:listSep . '\|$\)', "", "" )
- else
- return substitute( a:array, '\(\%(\%(^\|' . g:listSep . '\)[^' . g:listSep . ']\+\)\{' . a:index . '\}\)' . g:listSep . '[^' . g:listSep . ']\+', '\1', "" )
- endif
-endfunction
-
-"**
-"ExchangeListItems:
-" Exchange item at position item1Index with item at position item2Index.
-"Parameters:
-" - array : Array/List (string of values).
-" - item1index : Integer indicating the position of the first item to exchange.
-" It must be greater than or equals to 0 (zero).
-" - item2index : Integer indicating the position of the second item to
-" exchange. It must be greater than or equals to 0 (zero).
-"Return:
-"String containing array values.
-"**
-function ExchangeListItems( array, item1Index, item2Index )
- let item1 = GetListItem( a:array, a:item1Index )
- let array = ReplaceListItem( a:array, a:item1Index, GetListItem( a:array, a:item2Index ) )
- return ReplaceListItem( array, a:item2Index, item1 )
-endfunction
-
-"**
-"GetListCount:
-" Number of items in array.
-"Parameters:
-" - array : Array/List (string of values).
-"Return:
-"Integer representing the number of items in array.
-"Index of last item is GetListCount(array)-1.
-"**
-function GetListCount( array )
- if a:array == "" | return 0 | endif
- let pos = 0
- let cnt = 0
- while pos != -1
- let pos = matchend( a:array, g:listSep, pos )
- let cnt = cnt + 1
- endwhile
- return cnt
-endfunction
-
-"**
-"QuickSortList:
-" Sort array.
-"Parameters:
-" - array : Array/List (string of values).
-" - beg : Min index of the range of items to sort.
-" - end : Max index of the range of items to sort.
-"Return:
-"String containing array values with indicated range of items sorted.
-"**
-function QuickSortList( array, beg, end )
- let array = a:array
- let pivot = GetListItem( array, a:beg )
- let l = a:beg
- let r = a:end
- while l < r
- while GetListItem( array, r ) > pivot
- let r = r - 1
- endwhile
- if l != r
- let array = ReplaceListItem( array, l, GetListItem( array, r ) )
- let array = ReplaceListItem( array, r, pivot )
- let l = l + 1
- endif
-
- while GetListItem( array, l ) < pivot
- let l = l + 1
- endwhile
- if l != r
- let array = ReplaceListItem( array, r, GetListItem( array, l ) )
- let array = ReplaceListItem( array, l, pivot )
- let r = r - 1
- endif
- endwhile
- if a:beg < l-1
- let array = QuickSortList( array, a:beg, l-1 )
- endif
- if a:end > l+1
- let array = QuickSortList( array, l+1, a:end )
- endif
- return array
-endfunction
-
-