@@ -21,10 +21,19 @@ local function checkCallback(callback_array)
21
21
return true
22
22
end
23
23
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
+
24
31
local function getCompletionItems (items_array , prefix )
25
32
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 )
28
37
end
29
38
return complete_items
30
39
end
@@ -54,7 +63,7 @@ M.performComplete = function(complete_source, complete_items_map, params)
54
63
cache_complete_items = {}
55
64
table.insert (callback_array , complete_items .callback )
56
65
complete_items .trigger (manager , params )
57
- table.insert ( items_array , complete_items .item )
66
+ items_array [ item ] = complete_items .item
58
67
end
59
68
else
60
69
if complete_items ~= nil then
@@ -66,7 +75,7 @@ M.performComplete = function(complete_source, complete_items_map, params)
66
75
-- will remove it when refactoring aysnc sources
67
76
complete_items .trigger (manager , params )
68
77
end
69
- table.insert ( items_array , complete_items .item )
78
+ items_array [ item ] = complete_items .item
70
79
end
71
80
end
72
81
end
0 commit comments