1
0
mirror of https://github.com/jdhao/nvim-config.git synced 2025-06-08 14:14:33 +02:00

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.
This commit is contained in:
jdhao
2021-10-15 23:20:35 +08:00
parent b4f58504a7
commit 421111f474
2 changed files with 19 additions and 4 deletions

View File

@@ -76,14 +76,22 @@ function! s:my_theme_dict.everforest() dict abort
colorscheme everforest
endfunction
let s:candidate_theme = ['gruvbox8', 'deus', 'solarized8', 'onedark',
\ 'edge', 'sonokai', 'gruvbox_material', 'nord', 'doom_one', 'everforest']
let s:idx = utils#RandInt(0, len(s:candidate_theme)-1)
let s:theme = s:candidate_theme[s:idx]
function! s:my_theme_dict.nightfox() dict abort
packadd! nightfox
colorscheme nordfox
endfunction
let s:candidate_theme = ['gruvbox8', 'deus', 'solarized8', 'onedark',
\ 'edge', 'sonokai', 'gruvbox_material', 'nord', 'doom_one', 'everforest',
\ 'nightfox']
let s:theme = utils#RandElement(s:candidate_theme)
let s:colorscheme_func = printf('s:my_theme_dict.%s()', s:theme)
if has_key(s:my_theme_dict, s:theme)
execute 'call ' . s:colorscheme_func
echomsg "Currently loaded theme:" s:theme
else
let s:msg = "Invalid colorscheme function: " . s:colorscheme_func
call v:lua.vim.notify(s:msg, 'error', {'title': 'nvim-config', 'timeout': 2500})