mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	patch 8.2.5116: "limit" option of matchfuzzy() not always respected
Problem: "limit" option of matchfuzzy() not always respected. Solution: Remove "else". (Kazuyuki Miyagi, closes #10586)
This commit is contained in:
		
				
					committed by
					
						 Bram Moolenaar
						Bram Moolenaar
					
				
			
			
				
	
			
			
			
						parent
						
							d592deb336
						
					
				
				
					commit
					47f1a55849
				
			| @@ -5899,6 +5899,8 @@ matchfuzzy({list}, {str} [, {dict}])			*matchfuzzy()* | |||||||
| 		    matchseq	When this item is present return only matches | 		    matchseq	When this item is present return only matches | ||||||
| 				that contain the characters in {str} in the | 				that contain the characters in {str} in the | ||||||
| 				given sequence. | 				given sequence. | ||||||
|  | 		    limit	Maximum number of matches in {list} to be | ||||||
|  | 				returned.  Zero means no limit. | ||||||
|  |  | ||||||
| 		If {list} is a list of dictionaries, then the optional {dict} | 		If {list} is a list of dictionaries, then the optional {dict} | ||||||
| 		argument supports the following additional items: | 		argument supports the following additional items: | ||||||
| @@ -5910,8 +5912,6 @@ matchfuzzy({list}, {str} [, {dict}])			*matchfuzzy()* | |||||||
| 				This should accept a dictionary item as the | 				This should accept a dictionary item as the | ||||||
| 				argument and return the text for that item to | 				argument and return the text for that item to | ||||||
| 				use for fuzzy matching. | 				use for fuzzy matching. | ||||||
| 		    limit	Maximum number of matches in {list} to be |  | ||||||
| 				returned.  Zero means no limit. |  | ||||||
|  |  | ||||||
| 		{str} is treated as a literal string and regular expression | 		{str} is treated as a literal string and regular expression | ||||||
| 		matching is NOT supported.  The maximum supported {str} length | 		matching is NOT supported.  The maximum supported {str} length | ||||||
|   | |||||||
| @@ -4844,7 +4844,8 @@ do_fuzzymatch(typval_T *argvars, typval_T *rettv, int retmatchpos) | |||||||
| 		return; | 		return; | ||||||
| 	    } | 	    } | ||||||
| 	} | 	} | ||||||
| 	else if ((di = dict_find(d, (char_u *)"limit", -1)) != NULL) |  | ||||||
|  | 	if ((di = dict_find(d, (char_u *)"limit", -1)) != NULL) | ||||||
| 	{ | 	{ | ||||||
| 	    if (di->di_tv.v_type != VAR_NUMBER) | 	    if (di->di_tv.v_type != VAR_NUMBER) | ||||||
| 	    { | 	    { | ||||||
|   | |||||||
| @@ -243,6 +243,14 @@ func Test_matchfuzzy_limit() | |||||||
|   call assert_equal(['2', '2'], x->matchfuzzy('2', #{limit: 2})) |   call assert_equal(['2', '2'], x->matchfuzzy('2', #{limit: 2})) | ||||||
|   call assert_equal(['2', '2'], x->matchfuzzy('2', #{limit: 3})) |   call assert_equal(['2', '2'], x->matchfuzzy('2', #{limit: 3})) | ||||||
|   call assert_fails("call matchfuzzy(x, '2', #{limit: '2'})", 'E475:') |   call assert_fails("call matchfuzzy(x, '2', #{limit: '2'})", 'E475:') | ||||||
|  |  | ||||||
|  |   let l = [{'id': 5, 'val': 'crayon'}, {'id': 6, 'val': 'camera'}] | ||||||
|  |   call assert_equal([{'id': 5, 'val': 'crayon'}, {'id': 6, 'val': 'camera'}], l->matchfuzzy('c', #{text_cb: {v -> v.val}})) | ||||||
|  |   call assert_equal([{'id': 5, 'val': 'crayon'}, {'id': 6, 'val': 'camera'}], l->matchfuzzy('c', #{key: 'val'})) | ||||||
|  |   call assert_equal([{'id': 5, 'val': 'crayon'}, {'id': 6, 'val': 'camera'}], l->matchfuzzy('c', #{text_cb: {v -> v.val}, limit: 0})) | ||||||
|  |   call assert_equal([{'id': 5, 'val': 'crayon'}, {'id': 6, 'val': 'camera'}], l->matchfuzzy('c', #{key: 'val', limit: 0})) | ||||||
|  |   call assert_equal([{'id': 5, 'val': 'crayon'}], l->matchfuzzy('c', #{text_cb: {v -> v.val}, limit: 1})) | ||||||
|  |   call assert_equal([{'id': 5, 'val': 'crayon'}], l->matchfuzzy('c', #{key: 'val', limit: 1})) | ||||||
| endfunc | endfunc | ||||||
|  |  | ||||||
| " vim: shiftwidth=2 sts=2 expandtab | " vim: shiftwidth=2 sts=2 expandtab | ||||||
|   | |||||||
| @@ -734,6 +734,8 @@ static char *(features[]) = | |||||||
|  |  | ||||||
| static int included_patches[] = | static int included_patches[] = | ||||||
| {   /* Add new patch number below this line */ | {   /* Add new patch number below this line */ | ||||||
|  | /**/ | ||||||
|  |     5116, | ||||||
| /**/ | /**/ | ||||||
|     5115, |     5115, | ||||||
| /**/ | /**/ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user