summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xmake/modules/private/xrepo/quick_search/cache.lua9
-rw-r--r--xmake/modules/private/xrepo/quick_search/completion.lua8
2 files changed, 12 insertions, 5 deletions
diff --git a/xmake/modules/private/xrepo/quick_search/cache.lua b/xmake/modules/private/xrepo/quick_search/cache.lua
index 613e492b1..6f145d6ca 100644
--- a/xmake/modules/private/xrepo/quick_search/cache.lua
+++ b/xmake/modules/private/xrepo/quick_search/cache.lua
@@ -77,4 +77,13 @@ function get()
return cache:data()
end
+function find(name)
+ _init()
+ local list_result = {}
+ for packagename, packagedata in pairs(cache:data()) do
+ if packagename:find(name, 1, true) then
+ table.insert(list_result, {name = packagename, data = packagedata})
+ end
+ end
+ return list_result
end \ No newline at end of file
diff --git a/xmake/modules/private/xrepo/quick_search/completion.lua b/xmake/modules/private/xrepo/quick_search/completion.lua
index 7f6a1b3a4..091a6bf2f 100644
--- a/xmake/modules/private/xrepo/quick_search/completion.lua
+++ b/xmake/modules/private/xrepo/quick_search/completion.lua
@@ -21,12 +21,10 @@
import("private.xrepo.quick_search.cache")
function _xmake_package_complete(complete, opt)
- local packages = cache.get()
local candidates = {}
- for _, package in ipairs(packages) do
- if package.name:startswith(complete) then
- table.insert(candidates, { value = package.name, description = package.description })
- end
+ local found = cache.find(complete)
+ for _, candidate in ipairs(found) do
+ table.insert(candidates, {value = candidate.name, desc = candidate.data.description})
end
return candidates
end