patch 9.0.0007: no support for double, dotted and dashed underlines
Problem: No support for double, dotted and dashed underlines.
Solution: Add the termcap entries and highlight modes. (closes #9553)
diff --git a/src/testdir/test_highlight.vim b/src/testdir/test_highlight.vim
index 3400052..ef9c70e 100644
--- a/src/testdir/test_highlight.vim
+++ b/src/testdir/test_highlight.vim
@@ -888,8 +888,8 @@
" Test for setting various 'term' attributes
func Test_highlight_term_attr()
- hi HlGrp3 term=bold,underline,undercurl,strikethrough,reverse,italic,standout
- call assert_equal('hi HlGrp3 term=bold,standout,underline,undercurl,italic,reverse,strikethrough', HighlightArgs('HlGrp3'))
+ hi HlGrp3 term=bold,underline,undercurl,underdouble,underdotted,underdashed,strikethrough,reverse,italic,standout
+ call assert_equal('hi HlGrp3 term=bold,standout,underline,undercurl,underdouble,underdotted,underdashed,italic,reverse,strikethrough', HighlightArgs('HlGrp3'))
hi HlGrp3 term=NONE
call assert_equal('hi HlGrp3 cleared', HighlightArgs('HlGrp3'))
hi clear
@@ -1174,12 +1174,14 @@
" Test for setting all the 'term', 'cterm' and 'gui' attributes of a
" highlight group
let lines =<< trim END
- VAR attr = {'bold': v:true, 'underline': v:true, 'undercurl': v:true,
+ VAR attr = {'bold': v:true, 'underline': v:true,
+ \ 'undercurl': v:true, 'underdouble': v:true,
+ \ 'underdotted': v:true, 'underdashed': v:true,
\ 'strikethrough': v:true, 'reverse': v:true, 'italic': v:true,
\ 'standout': v:true, 'nocombine': v:true}
call hlset([{'name': 'myhlg2', 'term': attr, 'cterm': attr, 'gui': attr}])
VAR id2 = hlID('myhlg2')
- VAR expected = "myhlg2 xxx term=bold,standout,underline,undercurl,italic,reverse,nocombine,strikethrough cterm=bold,standout,underline,undercurl,italic,reverse,nocombine,strikethrough gui=bold,standout,underline,undercurl,italic,reverse,nocombine,strikethrough"
+ VAR expected = "myhlg2 xxx term=bold,standout,underline,undercurl,underdouble,underdotted,underdashed,italic,reverse,nocombine,strikethrough cterm=bold,standout,underline,undercurl,underdouble,underdotted,underdashed,italic,reverse,nocombine,strikethrough gui=bold,standout,underline,undercurl,underdouble,underdotted,underdashed,italic,reverse,nocombine,strikethrough"
VAR output = execute('highlight myhlg2')
LET output = output->split("\n")->join()->substitute('\s\+', ' ', 'g')
call assert_equal(expected, output)
diff --git a/src/testdir/test_options.vim b/src/testdir/test_options.vim
index 0a53315..fbe592d 100644
--- a/src/testdir/test_options.vim
+++ b/src/testdir/test_options.vim
@@ -955,6 +955,18 @@
set <F9>=xyz
call assert_equal('xyz', &t_k9)
set <t_k9>&
+
+ " should we test all of them?
+ set t_Ce=testCe
+ set t_Cs=testCs
+ set t_Us=testUs
+ set t_ds=testds
+ set t_Ds=testDs
+ call assert_equal('testCe', &t_Ce)
+ call assert_equal('testCs', &t_Cs)
+ call assert_equal('testUs', &t_Us)
+ call assert_equal('testds', &t_ds)
+ call assert_equal('testDs', &t_Ds)
endfunc
" Test for changing options in a sandbox
diff --git a/src/testdir/test_syn_attr.vim b/src/testdir/test_syn_attr.vim
index db9c9e9..366f39f 100644
--- a/src/testdir/test_syn_attr.vim
+++ b/src/testdir/test_syn_attr.vim
@@ -11,10 +11,17 @@
hi Mine term=reverse cterm=inverse
call assert_equal('1', synIDattr(hlID("Mine"), "reverse", 'term'))
call assert_equal('1', synIDattr(hlID("Mine"), "inverse", 'cterm'))
+
hi Mine term=underline cterm=standout gui=undercurl
call assert_equal('1', synIDattr(hlID("Mine"), "underline", 'term'))
call assert_equal('1', synIDattr(hlID("Mine"), "standout", 'cterm'))
call assert_equal('1', synIDattr("Mine"->hlID(), "undercurl", 'gui'))
+
+ hi Mine term=underdouble cterm=underdotted gui=underdashed
+ call assert_equal('1', synIDattr(hlID("Mine"), "underdouble", 'term'))
+ call assert_equal('1', synIDattr(hlID("Mine"), "underdotted", 'cterm'))
+ call assert_equal('1', synIDattr("Mine"->hlID(), "underdashed", 'gui'))
+
hi Mine gui=strikethrough
call assert_equal('1', synIDattr(hlID("Mine"), "strikethrough", 'gui'))
hi Mine term=NONE cterm=NONE gui=NONE