X-Git-Url: http://git.cyclocoop.org/?p=tool%2Fhledger.git;a=blobdiff_plain;f=vim%2Fautoload%2Fneocomplcache%2Ffilters%2Fsorter_bytes.vim;fp=vim%2Fautoload%2Fneocomplcache%2Ffilters%2Fsorter_bytes.vim;h=2ea4c47544b443c2f91be1d880b7717641ac77ae;hp=0000000000000000000000000000000000000000;hb=627dd26d4ab92cb46924101e2a27048b1c68c766;hpb=37924822297345b190b70c6e056c7000d766ffaa diff --git a/vim/autoload/neocomplcache/filters/sorter_bytes.vim b/vim/autoload/neocomplcache/filters/sorter_bytes.vim new file mode 100644 index 0000000..2ea4c47 --- /dev/null +++ b/vim/autoload/neocomplcache/filters/sorter_bytes.vim @@ -0,0 +1,54 @@ +"============================================================================= +" FILE: sorter_bytes.vim +" AUTHOR: Julien Moutinho +" Last Modified: 24 July 2014 +" License: MIT license {{{ +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be included +" in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +" }}} +"============================================================================= + +let s:save_cpo = &cpo +set cpo&vim + +function! neocomplcache#filters#sorter_bytes#define() "{{{ + return s:sorter + endfunction"}}} + +let s:sorter = { + \ 'name' : 'sorter_bytes', + \ 'description' : 'sort by matched bytes order', + \} + +function! s:sorter.filter(context) "{{{ + return sort(a:context.candidates, 's:compare') + endfunction"}}} + +function! s:compare(i1, i2) + let diff = a:i1.word ==# a:i2.word + if !diff + let diff = (a:i1.word > a:i2.word) ? 1 : -1 + endif + return diff + endfunction + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: foldmethod=marker