Skip to content

Commit 04d045a

Browse files
author
Lifepillar
committed
Add Edit > Color Scheme > Find More Color Schemes.
Add a menu item to search for more color schemes in 'packpath'. Modeled after Tools.Spelling.Find More Languages.
1 parent a1a9cc7 commit 04d045a

1 file changed

Lines changed: 33 additions & 5 deletions

File tree

runtime/menu.vim

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -394,13 +394,41 @@ let s:n = globpath(&runtimepath, "colors/*.vim")
394394
let s:names = sort(map(split(s:n, "\n"), 'substitute(v:val, "\\c.*[/\\\\:\\]]\\([^/\\\\:]*\\)\\.vim", "\\1", "")'), 1)
395395

396396
" define all the submenu entries
397-
let s:idx = 100
397+
let s:cs_idx = 100
398398
for s:name in s:names
399-
exe "an 20.450." . s:idx . ' &Edit.C&olor\ Scheme.' . s:name . " :colors " . s:name . "<CR>"
400-
let s:idx = s:idx + 10
399+
exe "an 20.450." . s:cs_idx . ' &Edit.C&olor\ Scheme.' . s:name . " :colors " . s:name . "<CR>"
400+
let s:cs_idx = s:cs_idx + 10
401401
endfor
402-
unlet s:name s:names s:n s:idx
403-
402+
exe "an 20.450." . s:cs_idx . ' &Edit.C&olor\ Scheme.-SEP- <Nop>'
403+
let s:cs_idx = s:cs_idx + 10
404+
exe "an <silent> 20.450." . s:cs_idx '&Edit.C&olor\ Scheme.Find\ More\ Color\ Schemes' ":call <SID>Colorschemes()<CR>"
405+
let s:cs_idx = s:cs_idx + 10
406+
unlet s:name s:names s:n
407+
408+
let s:undo_colorschemes = ['aun &Edit.C&olor\ Scheme.Find\ More\ Color\ Schemes']
409+
func! s:Colorschemes()
410+
for cmd in s:undo_colorschemes
411+
exe "silent! " . cmd
412+
endfor
413+
let s:undo_colorschemes = []
414+
415+
let s = globpath(&packpath, "pack/*/{opt,start}/*/colors/*.vim")
416+
let names = sort(map(split(s, "\n"), 'substitute(v:val, "\\c.*[/\\\\:\\]]\\([^/\\\\:]*\\)\\.vim", "\\1", "")'), 1)
417+
let n = s:cs_idx
418+
for name in names
419+
let menuname = '&Edit.C&olor\ Scheme.' . name
420+
exe 'an 20.450.' . n . ' ' . menuname . " :colors " . name . "<CR>"
421+
let s:undo_colorschemes += ['aun ' . menuname]
422+
let n += 10
423+
endfor
424+
if empty(names)
425+
echomsg "Could not find other color schemes"
426+
elseif len(names) == 1
427+
echomsg "Found color scheme " . names[0]
428+
else
429+
echomsg "Found " . len(names) . " more color schemes"
430+
endif
431+
endfun
404432

405433
" Setup the Edit.Keymap submenu
406434
if has("keymap")

0 commit comments

Comments
 (0)