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