mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	 65fb622000
			
		
	
	65fb622000
	
	
	
		
			
			Hope this will make people using feed_command less likely: this hides bugs. Already found at least two: 1. msgpackparse() will show internal error: hash_add() in case of duplicate keys, though it will still work correctly. Currently silenced. 2. ttimeoutlen was spelled incorrectly, resulting in option not being set when expected. Test was still functioning somehow though. Currently fixed.
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| -- Test Ctrl-A and Ctrl-X, which increment and decrement decimal, hexadecimal,
 | ||
| -- and octal numbers.
 | ||
| 
 | ||
| local helpers = require('test.functional.helpers')(after_each)
 | ||
| local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
 | ||
| local feed_command, expect = helpers.feed_command, helpers.expect
 | ||
| 
 | ||
| describe('increment and decrement commands', function()
 | ||
|   setup(clear)
 | ||
| 
 | ||
|   it('should work', function()
 | ||
|     -- Insert some numbers in various bases.
 | ||
|     insert([[
 | ||
|       0b101   100     0x100     077     0
 | ||
|       0b101   100     0x100     077
 | ||
|       100     0x100     077     0xfF     0xFf
 | ||
|       100     0x100     077
 | ||
|       0x0b101  0b1101]])
 | ||
| 
 | ||
|     -- Increment and decrement numbers in the first row, interpreting the
 | ||
|     -- numbers as decimal, octal or hexadecimal.
 | ||
|     feed_command('set nrformats=bin,octal,hex', '1')
 | ||
|     feed('63l102ll64128$')
 | ||
| 
 | ||
|     -- For the second row, treat the numbers as decimal or octal.
 | ||
|     -- 0x100 should be interpreted as decimal 0, the character x, and decimal 100.
 | ||
|     feed_command('set nrformats=octal', '2')
 | ||
|     feed('0w102l2w65129blx6lD')
 | ||
| 
 | ||
|     -- For the third row, treat the numbers as decimal or hexadecimal.
 | ||
|     -- 077 should be interpreted as decimal 77.
 | ||
|     feed_command('set nrformats=hex', '3')
 | ||
|     feed('0101l257Txldt   ')
 | ||
| 
 | ||
|     -- For the fourth row, interpret all numbers as decimal.
 | ||
|     feed_command('set nrformats=', '4')
 | ||
|     feed('0200l100w78')
 | ||
| 
 | ||
|     -- For the last row, interpret as binary and hexadecimal.
 | ||
|     feed_command('set nrformats=bin,hex', '5')
 | ||
|     feed('010065l6432')
 | ||
| 
 | ||
|     expect([[
 | ||
|       0b011   0     0x0ff     0000     -1
 | ||
|       1b101   0     1x100     0777777
 | ||
|       -1     0x0     078     0xFE     0xfe
 | ||
|       -100     -100x100     000
 | ||
|       0x0b0de  0b0101101]])
 | ||
|   end)
 | ||
| end)
 |