mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-03 17:24:29 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			61 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
local helpers = require('test.functional.helpers')(after_each)
 | 
						|
local clear = helpers.clear
 | 
						|
local command = helpers.command
 | 
						|
local eq = helpers.eq
 | 
						|
local eval = helpers.eval
 | 
						|
 | 
						|
before_each(clear)
 | 
						|
 | 
						|
-- oldtest: Test_missing_attr()
 | 
						|
it('synIDattr() works', function()
 | 
						|
  local bool_attrs = {
 | 
						|
    'bold',
 | 
						|
    'italic',
 | 
						|
    'reverse',
 | 
						|
    'standout',
 | 
						|
    'underline',
 | 
						|
    'undercurl',
 | 
						|
    'underdouble',
 | 
						|
    'underdotted',
 | 
						|
    'underdashed',
 | 
						|
    'strikethrough',
 | 
						|
    'nocombine',
 | 
						|
  }
 | 
						|
 | 
						|
  command('hi Mine cterm=NONE gui=NONE')
 | 
						|
  eq('Mine', eval([[synIDattr(hlID("Mine"), "name")]]))
 | 
						|
  for _, mode in ipairs({'cterm', 'gui'}) do
 | 
						|
    eq('', eval(([[synIDattr("Mine"->hlID(), "bg", '%s')]]):format(mode)))
 | 
						|
    eq('', eval(([[synIDattr("Mine"->hlID(), "fg", '%s')]]):format(mode)))
 | 
						|
    eq('', eval(([[synIDattr("Mine"->hlID(), "sp", '%s')]]):format(mode)))
 | 
						|
    for _, attr in ipairs(bool_attrs) do
 | 
						|
      eq('', eval(([[synIDattr(hlID("Mine"), "%s", '%s')]]):format(attr, mode)))
 | 
						|
      eq('', eval(([[synIDattr(hlID("Mine"), "%s", '%s')]]):format(attr, mode)))
 | 
						|
      eq('', eval(([[synIDattr(hlID("Mine"), "%s", '%s')]]):format(attr, mode)))
 | 
						|
    end
 | 
						|
    eq('', eval(([[synIDattr(hlID("Mine"), "inverse", '%s')]]):format(mode)))
 | 
						|
  end
 | 
						|
 | 
						|
  for i, attr1 in ipairs(bool_attrs) do
 | 
						|
    local attr2 = bool_attrs[i - 1] or bool_attrs[#bool_attrs]
 | 
						|
 | 
						|
    command(('hi Mine cterm=%s gui=%s'):format(attr1, attr2))
 | 
						|
    eq('1', eval(([[synIDattr(hlID("Mine"), "%s", 'cterm')]]):format(attr1)))
 | 
						|
    eq('', eval(([[synIDattr(hlID("Mine"), "%s", 'cterm')]]):format(attr2)))
 | 
						|
    eq('', eval(([[synIDattr("Mine"->hlID(), "%s", 'gui')]]):format(attr1)))
 | 
						|
    eq('1', eval(([[synIDattr("Mine"->hlID(), "%s", 'gui')]]):format(attr2)))
 | 
						|
 | 
						|
    command(('hi Mine cterm=%s gui=%s'):format(attr2, attr1))
 | 
						|
    eq('', eval(([[synIDattr("Mine"->hlID(), "%s", 'cterm')]]):format(attr1)))
 | 
						|
    eq('1', eval(([[synIDattr("Mine"->hlID(), "%s", 'cterm')]]):format(attr2)))
 | 
						|
    eq('1', eval(([[synIDattr(hlID("Mine"), "%s", 'gui')]]):format(attr1)))
 | 
						|
    eq('', eval(([[synIDattr(hlID("Mine"), "%s", 'gui')]]):format(attr2)))
 | 
						|
  end
 | 
						|
 | 
						|
  command('hi Mine cterm=reverse gui=inverse')
 | 
						|
  eq('1', eval([[synIDattr(hlID("Mine"), "reverse", 'cterm')]]))
 | 
						|
  eq('1', eval([[synIDattr(hlID("Mine"), "inverse", 'cterm')]]))
 | 
						|
  eq('1', eval([[synIDattr(hlID("Mine"), "reverse", 'gui')]]))
 | 
						|
  eq('1', eval([[synIDattr(hlID("Mine"), "inverse", 'gui')]]))
 | 
						|
end)
 |