diff options
| -rw-r--r-- | xmake/modules/private/xrepo/quick_search/cache.lua | 9 | ||||
| -rw-r--r-- | xmake/modules/private/xrepo/quick_search/completion.lua | 8 |
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 |
