32
32
--- @return RGB rgb_table
33
33
--- FIXME: this currently does not support transparent backgrounds. Need a replacement for bg_rgb
34
34
function M .rgba_to_rgb (rgba , bg_rgb )
35
- validate ({
36
- rgba = { rgba , " t" , true },
37
- bg_rgb = { bg_rgb , " t" , false },
38
- r = { rgba .r , " n" , true },
39
- g = { rgba .g , " n" , true },
40
- b = { rgba .b , " n" , true },
41
- a = { rgba .a , " n" , true },
42
- })
35
+ validate (" rgba" , rgba , " t" , true )
36
+ validate (" bg_rgb" , bg_rgb , " t" , false )
37
+ validate (" r" , rgba .r , " n" , true )
38
+ validate (" g" , rgba .g , " n" , true )
39
+ validate (" b" , rgba .b , " n" , true )
40
+ validate (" a" , rgba .a , " n" , true )
43
41
44
- validate ({
45
- bg_r = { bg_rgb .r , " n" , true },
46
- bg_g = { bg_rgb .g , " n" , true },
47
- bg_b = { bg_rgb .b , " n" , true },
48
- })
42
+ validate (" bg_r" , bg_rgb .r , " n" , true )
43
+ validate (" bg_g" , bg_rgb .g , " n" , true )
44
+ validate (" bg_b" , bg_rgb .b , " n" , true )
49
45
50
46
local r = rgba .r * rgba .a + bg_rgb .r * (1 - rgba .a )
51
47
local g = rgba .g * rgba .a + bg_rgb .g * (1 - rgba .a )
58
54
--- @param rgb RGB with keys ' r' , ' g' , ' b' in [0,255]
59
55
--- @return number 6 digit hex representing the rgb params
60
56
local function rgb_to_hex (rgb )
61
- validate ({
62
- r = { rgb .r , " n" , false },
63
- g = { rgb .g , " n" , false },
64
- b = { rgb .b , " n" , false },
65
- })
57
+ validate (" r" , rgb .r , " n" , false )
58
+ validate (" g" , rgb .g , " n" , false )
59
+ validate (" b" , rgb .b , " n" , false )
66
60
return tohex (bor (lshift (rgb .r , 16 ), lshift (rgb .g , 8 ), rgb .b ), 6 )
67
61
end
68
62
@@ -78,7 +72,7 @@ function M.rgba_to_hex(rgba, bg_rgb) return rgb_to_hex(M.rgba_to_rgb(rgba, bg_rg
78
72
--- @param rgb_24bit number 24-bit RGB value
79
73
--- @return RGB
80
74
function M .decode_24bit_rgb (rgb_24bit )
81
- validate ({ rgb_24bit = { rgb_24bit , " n" , true } } )
75
+ validate (" rgb_24bit" , rgb_24bit , " n" , true )
82
76
local r = band (rshift (rgb_24bit , 16 ), 255 )
83
77
local g = band (rshift (rgb_24bit , 8 ), 255 )
84
78
local b = band (rgb_24bit , 255 )
195
189
--- @param color_infos table of ` ColorInformation` objects to highlight.
196
190
-- See https://microsoft.github.io/language-server-protocol/specification#textDocument_documentColor
197
191
function M .buf_color (client_id , bufnr , color_infos , _ )
198
- validate ({ bufnr = { bufnr , " n" , false }, color_infos = { color_infos , " t" , false } })
192
+ validate (" bufnr" , bufnr , " n" , false )
193
+ validate (" color_infos" , color_infos , " t" , false )
199
194
if not color_infos or not bufnr then return end
200
195
local c = config .lsp .color
201
196
218
213
--- @param client_id number client id
219
214
--- @param bufnr number buffer id
220
215
function M .buf_clear_color (client_id , bufnr )
221
- validate ({ client_id = { client_id , " n" , true }, bufnr = { bufnr , " n" , true } })
216
+ validate (" client_id" , client_id , " n" , true )
217
+ validate (" bufnr" , bufnr , " n" , true )
222
218
if api .nvim_buf_is_valid (bufnr ) then api .nvim_buf_clear_namespace (bufnr , CLIENT_NS , 0 , - 1 ) end
223
219
end
224
220
0 commit comments