mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	feat(vim.version): add vim.version.le and vim.version.ge
				
					
				
			- Problem: One cannot easily write something like, for example:
    `version_current >= {0, 10, 0}`; writing like
    `not vim.version.lt(version_current, {0, 10, 0})` is verbose.
- Solution: add {`le`,`ge`} in addition to {`lt`,`gt`}.
- Also improve typing on the operator methods: allow `string` as well.
- Update the example in `vim.version.range()` docs: `ge` in place of
  `gt` better matches the semantics of `range:has`.
			
			
This commit is contained in:
		| @@ -288,21 +288,55 @@ describe('version', function() | ||||
|     eq(vim.version.last({ v('2.0.0'), v('1.2.3') }), v('2.0.0')) | ||||
|   end) | ||||
|  | ||||
|   it('le()', function() | ||||
|     eq(true, vim.version.le('1', '1')) | ||||
|     eq(true, vim.version.le({ 3, 1, 4 }, '3.1.4')) | ||||
|     eq(true, vim.version.le('1', '2')) | ||||
|     eq(true, vim.version.le({ 0, 7, 4 }, { 3 })) | ||||
|     eq(false, vim.version.le({ 3 }, { 0, 7, 4 })) | ||||
|     eq(false, vim.version.le({ major = 3, minor = 3, patch = 0 }, { 3, 2, 0 })) | ||||
|     eq(false, vim.version.le('2', '1')) | ||||
|   end) | ||||
|  | ||||
|   it('lt()', function() | ||||
|     eq(false, vim.version.lt('1', '1')) | ||||
|     eq(false, vim.version.lt({ 3, 1, 4 }, '3.1.4')) | ||||
|     eq(true, vim.version.lt('1', '2')) | ||||
|     eq(true, vim.version.lt({ 0, 7, 4 }, { 3 })) | ||||
|     eq(false, vim.version.lt({ 3 }, { 0, 7, 4 })) | ||||
|     eq(false, vim.version.lt({ major = 3, minor = 3, patch = 0 }, { 3, 2, 0 })) | ||||
|     eq(false, vim.version.lt('2', '1')) | ||||
|   end) | ||||
|  | ||||
|   it('ge()', function() | ||||
|     eq(true, vim.version.ge('1', '1')) | ||||
|     eq(true, vim.version.ge({ 3, 1, 4 }, '3.1.4')) | ||||
|     eq(true, vim.version.ge('2', '1')) | ||||
|     eq(true, vim.version.ge({ 3 }, { 0, 7, 4 })) | ||||
|     eq(true, vim.version.ge({ major = 3, minor = 3, patch = 0 }, { 3, 2, 0 })) | ||||
|     eq(false, vim.version.ge('1', '2')) | ||||
|     eq(false, vim.version.ge({ 0, 7, 4 }, { 3 })) | ||||
|   end) | ||||
|  | ||||
|   it('gt()', function() | ||||
|     eq(false, vim.version.gt('1', '1')) | ||||
|     eq(false, vim.version.gt({ 3, 1, 4 }, '3.1.4')) | ||||
|     eq(true, vim.version.gt('2', '1')) | ||||
|     eq(true, vim.version.gt({ 3 }, { 0, 7, 4 })) | ||||
|     eq(true, vim.version.gt({ major = 3, minor = 3, patch = 0 }, { 3, 2, 0 })) | ||||
|     eq(false, vim.version.gt('1', '2')) | ||||
|     eq(false, vim.version.gt({ 0, 7, 4 }, { 3 })) | ||||
|   end) | ||||
|  | ||||
|   it('eq()', function() | ||||
|     eq(true, vim.version.eq('2', '2')) | ||||
|     eq(true, vim.version.eq({ 3, 1, 0 }, '3.1.0')) | ||||
|     eq(true, vim.version.eq({ major = 3, minor = 3, patch = 0 }, { 3, 3, 0 })) | ||||
|     eq(false, vim.version.eq('2', '3')) | ||||
|  | ||||
|     -- semver: v3 == v3.0 == v3.0.0 | ||||
|     eq(true, vim.version.eq('3', { 3, 0, 0 })) | ||||
|     eq(true, vim.version.eq({ 3, 0 }, { 3 })) | ||||
|     eq(true, vim.version.eq({ 3, 0, 0 }, { 3 })) | ||||
|   end) | ||||
| end) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Jongwook Choi
					Jongwook Choi