summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgly <[email protected]>2022-12-27 15:01:39 +0100
committergly <[email protected]>2022-12-27 15:01:39 +0100
commit67a4e0cfceba7a64f661fc2b513f16f7e32dd286 (patch)
tree9fe70cbe101f8ce63914e98c18778615ffc26525
parentd7f529554bb6ef5c77ed36b7b6afb89ccfac0f41 (diff)
Add quick_search cache find
-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