Append the actual label so it can then be sorted a-z
This commit is contained in:
		
							parent
							
								
									03f27ef145
								
							
						
					
					
						commit
						2fdb05f783
					
				
							
								
								
									
										16
									
								
								src/main.zig
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								src/main.zig
									
									
									
									
									
								
							| @ -1076,7 +1076,7 @@ fn completeLabel(arena: *std.heap.ArenaAllocator, id: types.RequestId, pos_index | |||||||
|         .orig_handle = handle, |         .orig_handle = handle, | ||||||
|     }; |     }; | ||||||
|     try analysis.iterateLabels(handle, pos_index, declToCompletion, context); |     try analysis.iterateLabels(handle, pos_index, declToCompletion, context); | ||||||
|     sortCompletionItems(completions.items, config); |     sortCompletionItems(completions.items, config, arena.allocator()); | ||||||
|     truncateCompletions(completions.items, config.max_detail_length); |     truncateCompletions(completions.items, config.max_detail_length); | ||||||
| 
 | 
 | ||||||
|     try send(arena, types.Response{ |     try send(arena, types.Response{ | ||||||
| @ -1150,7 +1150,7 @@ fn completeGlobal(arena: *std.heap.ArenaAllocator, id: types.RequestId, pos_inde | |||||||
|     }; |     }; | ||||||
|     try analysis.iterateSymbolsGlobal(&document_store, arena, handle, pos_index, declToCompletion, context); |     try analysis.iterateSymbolsGlobal(&document_store, arena, handle, pos_index, declToCompletion, context); | ||||||
| 
 | 
 | ||||||
|     sortCompletionItems(completions.items, config); |     sortCompletionItems(completions.items, config, arena.allocator()); | ||||||
|     truncateCompletions(completions.items, config.max_detail_length); |     truncateCompletions(completions.items, config.max_detail_length); | ||||||
| 
 | 
 | ||||||
|     try send(arena, types.Response{ |     try send(arena, types.Response{ | ||||||
| @ -1179,7 +1179,7 @@ fn completeFieldAccess(arena: *std.heap.ArenaAllocator, id: types.RequestId, han | |||||||
|         held_range.release(); |         held_range.release(); | ||||||
|         try typeToCompletion(arena, &completions, result, handle, config); |         try typeToCompletion(arena, &completions, result, handle, config); | ||||||
| 
 | 
 | ||||||
|         sortCompletionItems(completions.items, config); |         sortCompletionItems(completions.items, config, arena.allocator()); | ||||||
|         truncateCompletions(completions.items, config.max_detail_length); |         truncateCompletions(completions.items, config.max_detail_length); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @ -1234,10 +1234,16 @@ fn kindToSortScore(kind: types.CompletionItem.Kind) [] const u8 { | |||||||
|     }; |     }; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| fn sortCompletionItems(completions: []types.CompletionItem, _: *const Config) void { | fn sortCompletionItems(completions: []types.CompletionItem, _: *const Config, alloc: std.mem.Allocator) void { | ||||||
|     // TODO: config for sorting rule? |     // TODO: config for sorting rule? | ||||||
|     for (completions) |*c| { |     for (completions) |*c| { | ||||||
|         c.sortText = kindToSortScore(c.kind); |         c.sortText = kindToSortScore(c.kind); | ||||||
|  |          | ||||||
|  |         if (alloc.alloc(u8, 2 + c.label.len)) |it| { | ||||||
|  |             std.mem.copy(u8, it, c.sortText.?); | ||||||
|  |             std.mem.copy(u8, it[2 .. ], c.label); | ||||||
|  |             c.sortText = it; | ||||||
|  |         } else |_| {} | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -1246,7 +1252,7 @@ fn completeDot(arena: *std.heap.ArenaAllocator, id: types.RequestId, handle: *Do | |||||||
|     defer tracy_zone.end(); |     defer tracy_zone.end(); | ||||||
| 
 | 
 | ||||||
|     var completions = try document_store.enumCompletionItems(arena, handle); |     var completions = try document_store.enumCompletionItems(arena, handle); | ||||||
|     sortCompletionItems(completions, config); |     sortCompletionItems(completions, config, arena.allocator()); | ||||||
|     truncateCompletions(completions, config.max_detail_length); |     truncateCompletions(completions, config.max_detail_length); | ||||||
| 
 | 
 | ||||||
|     try send(arena, types.Response{ |     try send(arena, types.Response{ | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user