@@ -394,13 +394,41 @@ let s:n = globpath(&runtimepath, "colors/*.vim")
394394let 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
398398for 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
401401endfor
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
406434if has (" keymap" )
0 commit comments