/
limelight.vader
139 lines (108 loc) · 2.29 KB
/
limelight.vader
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
Execute (Setup):
Save g:colors_name, &background
colo seoul256
function! s:assert_on()
Assert exists('#limelight'), 'limelight should be on'
endfunction
function! s:assert_off()
Assert !exists('#limelight'), 'limelight should be off'
endfunction
command! AssertOn call s:assert_on()
command! AssertOff call s:assert_off()
Before:
unlet! g:limelight_default_coefficient
\ g:limelight_conceal_guifg g:limelight_conceal_ctermfg
Execute (Invalid argument type):
Limelight 'hello'
AssertOff
Limelight {}
AssertOff
Limelight []
AssertOff
Execute (Invalid argument range):
Limelight 1.2
AssertOff
Limelight 2
AssertOff
Limelight -0.2
AssertOff
Limelight -1
AssertOff
Execute (Limelight / Limelight!):
Limelight
AssertOn
Limelight
AssertOn
Limelight!
AssertOff
Limelight!
AssertOff
Limelight 0.5
AssertOn
Limelight!
AssertOff
Execute (Limelight!!):
Limelight!!
AssertOn
Limelight!!
AssertOff
Limelight!! 2.0
AssertOff
Limelight!! 0.9
AssertOn
Limelight!! 0.9
AssertOff
Execute (g:limelight_default_coefficient):
let g:limelight_default_coefficient = 2.0
Limelight
AssertOff
let g:limelight_default_coefficient = -1.0
Limelight
AssertOff
Execute (Unsupported terminal):
colo default
let &t_Co = 16
Limelight
AssertOff
Execute (Unsupported. but g:limelight_conceal_???fg defined):
if has('gui_running')
colo default
let g:limelight_conceal_guifg = '#cccccc'
Limelight
AssertOn
Limelight!
AssertOff
else
if exists('&termguicolors')
set notermguicolors
endif
colo default
let &t_Co = 256
" Cannot enable it without g:limelight_conceal_ctermfg
Limelight
AssertOff
let g:limelight_conceal_ctermfg = 240
Limelight
AssertOn
Limelight!
AssertOff
let g:limelight_conceal_ctermfg = 'red'
Limelight
AssertOn
Limelight!
AssertOff
endif
" However, you're still not allowed to pass argument to Limelight command
redir => msg
Limelight 0.5
redir END
AssertOff
Assert msg !~ 'g:limelight_conceal_', 'Invalid message: '.msg
Execute (TODO: Color interpolation):
Assert 0, 'TODO'
Execute (Cleanup):
delc AssertOn
delc AssertOff
unlet! msg
Restore
silent! execute 'colo '.g:colors_name