mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:9.0.0343: ColorScheme autocommand triggered when colorscheme not found (#20032)
Problem: ColorScheme autocommand triggered when colorscheme is not found.
(Romain Lafourcade)
Solution: Only trigger ColorScheme when loading the colorscheme succeeds.
(closes vim/vim#11024)
5d09a401ec
Most of Test_colorscheme() is applicable to Nvim.
This commit is contained in:
parent
0c6b39894f
commit
8740e0bd58
@ -632,7 +632,9 @@ int load_colors(char_u *name)
|
|||||||
retval = source_runtime((char *)buf, DIP_START + DIP_OPT);
|
retval = source_runtime((char *)buf, DIP_START + DIP_OPT);
|
||||||
}
|
}
|
||||||
xfree(buf);
|
xfree(buf);
|
||||||
apply_autocmds(EVENT_COLORSCHEME, (char *)name, curbuf->b_fname, false, curbuf);
|
if (retval == OK) {
|
||||||
|
apply_autocmds(EVENT_COLORSCHEME, (char *)name, curbuf->b_fname, false, curbuf);
|
||||||
|
}
|
||||||
|
|
||||||
recursive = false;
|
recursive = false;
|
||||||
|
|
||||||
|
43
src/nvim/testdir/test_gui.vim
Normal file
43
src/nvim/testdir/test_gui.vim
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
|
||||||
|
func Test_colorscheme()
|
||||||
|
" call assert_equal('16777216', &t_Co)
|
||||||
|
|
||||||
|
let colorscheme_saved = exists('g:colors_name') ? g:colors_name : 'default'
|
||||||
|
let g:color_count = 0
|
||||||
|
augroup TestColors
|
||||||
|
au!
|
||||||
|
au ColorScheme * let g:color_count += 1
|
||||||
|
\ | let g:after_colors = g:color_count
|
||||||
|
\ | let g:color_after = expand('<amatch>')
|
||||||
|
au ColorSchemePre * let g:color_count += 1
|
||||||
|
\ | let g:before_colors = g:color_count
|
||||||
|
\ | let g:color_pre = expand('<amatch>')
|
||||||
|
augroup END
|
||||||
|
|
||||||
|
colorscheme torte
|
||||||
|
redraw!
|
||||||
|
call assert_equal('dark', &background)
|
||||||
|
call assert_equal(1, g:before_colors)
|
||||||
|
call assert_equal(2, g:after_colors)
|
||||||
|
call assert_equal('torte', g:color_pre)
|
||||||
|
call assert_equal('torte', g:color_after)
|
||||||
|
call assert_equal("\ntorte", execute('colorscheme'))
|
||||||
|
|
||||||
|
let a = substitute(execute('hi Search'), "\n\\s\\+", ' ', 'g')
|
||||||
|
" FIXME: temporarily check less while the colorscheme changes
|
||||||
|
" call assert_match("\nSearch xxx term=reverse cterm=reverse ctermfg=196 ctermbg=16 gui=reverse guifg=#ff0000 guibg=#000000", a)
|
||||||
|
" call assert_match("\nSearch xxx term=reverse ", a)
|
||||||
|
|
||||||
|
call assert_fails('colorscheme does_not_exist', 'E185:')
|
||||||
|
call assert_equal('does_not_exist', g:color_pre)
|
||||||
|
call assert_equal('torte', g:color_after)
|
||||||
|
|
||||||
|
exec 'colorscheme' colorscheme_saved
|
||||||
|
augroup TestColors
|
||||||
|
au!
|
||||||
|
augroup END
|
||||||
|
unlet g:color_count g:after_colors g:before_colors
|
||||||
|
redraw!
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" vim: shiftwidth=2 sts=2 expandtab
|
Loading…
Reference in New Issue
Block a user