@@ -21,10 +21,19 @@ local function checkCallback(callback_array)
2121 return true
2222end
2323
24+ local function assignSourcePriority (items , source )
25+ local source_priority = opt .get_option (' source_priority' )[source ] or 1
26+ for _ , item in ipairs (items ) do
27+ item .source_priority = source_priority
28+ end
29+ end
30+
2431local function getCompletionItems (items_array , prefix )
2532 local complete_items = {}
26- for _ ,func in ipairs (items_array ) do
27- vim .list_extend (complete_items , func (prefix ))
33+ for source , func in pairs (items_array ) do
34+ local items = func (prefix )
35+ assignSourcePriority (items , source )
36+ vim .list_extend (complete_items , items )
2837 end
2938 return complete_items
3039end
@@ -54,7 +63,7 @@ M.performComplete = function(complete_source, complete_items_map, params)
5463 cache_complete_items = {}
5564 table.insert (callback_array , complete_items .callback )
5665 complete_items .trigger (manager , params )
57- table.insert ( items_array , complete_items .item )
66+ items_array [ item ] = complete_items .item
5867 end
5968 else
6069 if complete_items ~= nil then
@@ -66,7 +75,7 @@ M.performComplete = function(complete_source, complete_items_map, params)
6675 -- will remove it when refactoring aysnc sources
6776 complete_items .trigger (manager , params )
6877 end
69- table.insert ( items_array , complete_items .item )
78+ items_array [ item ] = complete_items .item
7079 end
7180 end
7281 end
0 commit comments