aboutsummaryrefslogtreecommitdiff
path: root/autoload
diff options
context:
space:
mode:
authorjdhao <jdhao@hotmail.com>2021-10-15 23:20:35 +0800
committerjdhao <jdhao@hotmail.com>2021-10-15 23:20:35 +0800
commit421111f474add93d16e66529b286fc07ecfb63af (patch)
treed00127e8961bc6c063614868f1d119ea5ce5ba46 /autoload
parentb4f58504a757dc7b8cf0c0694faf9fb535b9be8f (diff)
refactor: load colorschemes randomly
In Emacs, there is `seq-random-elt` which randomly selects an element from a sequence. We mimic it here in Neovim. Ref: https://www.gnu.org/software/emacs/manual/html_node/elisp/Sequence-Functions.html.
Diffstat (limited to 'autoload')
-rw-r--r--autoload/utils.vim7
1 files changed, 7 insertions, 0 deletions
diff --git a/autoload/utils.vim b/autoload/utils.vim
index d1a4a47..9ab0991 100644
--- a/autoload/utils.vim
+++ b/autoload/utils.vim
@@ -49,6 +49,13 @@ function! utils#RandInt(Low, High) abort
return v:lua.math.random(a:Low, a:High)
endfunction
+" Selection a random element from a sequence/list
+function! utils#RandElement(seq) abort
+ let l:idx = utils#RandInt(0, len(a:seq)-1)
+
+ return a:seq[l:idx]
+endfunction
+
" Custom fold expr, adapted from https://vi.stackexchange.com/a/9094/15292
function! utils#VimFolds(lnum) abort
" get content of current line and the line below