mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +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)
 | 
