From f468fb70cb6d82dca5b9a23706b4b6b70a3beab6 Mon Sep 17 00:00:00 2001 From: Björn Linse Date: Mon, 26 Jan 2015 19:32:20 +0100 Subject: api/vim: allow guis and tests to retrieve the entire color table --- test/functional/ui/screen.lua | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'test/functional/ui/screen.lua') diff --git a/test/functional/ui/screen.lua b/test/functional/ui/screen.lua index a70ee4c0a7..cd8c2bc399 100644 --- a/test/functional/ui/screen.lua +++ b/test/functional/ui/screen.lua @@ -65,7 +65,7 @@ -- attribute(which normally is), here's how the call to "expect" should look -- like: -- --- NonText = nvim('name_to_color', 'Blue'), +-- NonText = Screen.colors.Blue -- screen:expect([[ -- hello screen \ -- ~ \ @@ -86,7 +86,7 @@ -- -- Multiple expect:s will likely share a group of attribute sets to test. -- Therefore these could be specified at the beginning of a test like this: --- NonText = nvim('name_to_color', 'Blue') +-- NonText = Screen.colors.Blue -- screen:set_default_attr_ids( { -- [1] = {reverse = true, bold = true}, -- [2] = {reverse = true} @@ -119,6 +119,16 @@ if os.getenv('VALGRIND') then default_screen_timeout = 7500 end +local colors = request('vim_get_color_map') +local colornames = {} +for name, rgb in pairs(colors) do + -- we disregard the case that colornames might not be unique, as + -- this is just a helper to get any canonical name of a color + colornames[rgb] = name +end + +Screen.colors = colors + function Screen.debug(command) if not command then command = 'pynvim -n -g -c ' @@ -479,7 +489,13 @@ end function pprint_attrs(attrs) local items = {} for f, v in pairs(attrs) do - table.insert(items, f.." = "..tostring(v)) + local desc = tostring(v) + if f == "foreground" or f == "background" then + if colornames[v] ~= nil then + desc = "Screen.colors."..colornames[v] + end + end + table.insert(items, f.." = "..desc) end return table.concat(items, ", ") end -- cgit