From 1c75b56ceb96a6e7fb6708ae96ab63b3023bab2f Mon Sep 17 00:00:00 2001 From: Tim Pope Date: Mon, 30 Nov 2015 19:31:27 -0500 Subject: [PATCH] Sort bencode keys Closes https://github.com/tpope/vim-fireplace/issues/248 --- autoload/fireplace/nrepl_connection.vim | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/autoload/fireplace/nrepl_connection.vim b/autoload/fireplace/nrepl_connection.vim index 30fcc61..0104f2c 100644 --- a/autoload/fireplace/nrepl_connection.vim +++ b/autoload/fireplace/nrepl_connection.vim @@ -21,7 +21,11 @@ function! fireplace#nrepl_connection#bencode(value) abort elseif type(a:value) == type([]) return 'l'.join(map(copy(a:value),'fireplace#nrepl_connection#bencode(v:val)'),'').'e' elseif type(a:value) == type({}) - return 'd'.join(values(map(copy(a:value),'fireplace#nrepl_connection#bencode(v:key).fireplace#nrepl_connection#bencode(v:val)')),'').'e' + return 'd'.join(map( + \ sort(keys(a:value)), + \ 'fireplace#nrepl_connection#bencode(v:val) . ' . + \ 'fireplace#nrepl_connection#bencode(a:value[v:val])' + \ ),'').'e' else throw "Can't bencode ".string(a:value) endif