From 86b138b25de6b0699329fab25df152bbf7ddab63 Mon Sep 17 00:00:00 2001 From: Rom Grk Date: Tue, 31 May 2016 05:46:32 -0400 Subject: synIDattr(): return RRGGBB value for [fg|bg|sp]# #4851 add tests for synIDattr() with [fg|bg|sp]# add tests for synIDattr and various #RGB colors synIDattr: test for ui_rgb_attached() test: fix tests for synIDattr fg/bg/sp --- src/nvim/syntax.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src/nvim/syntax.c') diff --git a/src/nvim/syntax.c b/src/nvim/syntax.c index 9e4dc0204f..05141eaf1e 100644 --- a/src/nvim/syntax.c +++ b/src/nvim/syntax.c @@ -6952,8 +6952,23 @@ highlight_color ( else if (!(TOLOWER_ASC(what[0]) == 'b' && TOLOWER_ASC(what[1]) == 'g')) return NULL; if (modec == 'g') { - if (fg) + if (what[2] == '#' && ui_rgb_attached()) { + if (fg) { + n = HL_TABLE()[id - 1].sg_rgb_fg; + } else if (sp) { + n = HL_TABLE()[id - 1].sg_rgb_sp; + } else { + n = HL_TABLE()[id - 1].sg_rgb_bg; + } + if (n < 0 || n > 0xffffff) { + return NULL; + } + snprintf((char *)name, sizeof(name), "#%06x", n); + return name; + } + if (fg) { return HL_TABLE()[id - 1].sg_rgb_fg_name; + } if (sp) { return HL_TABLE()[id - 1].sg_rgb_sp_name; } -- cgit