diff options
| author | gly <[email protected]> | 2022-12-27 15:01:39 +0100 |
|---|---|---|
| committer | gly <[email protected]> | 2022-12-27 15:01:39 +0100 |
| commit | 67a4e0cfceba7a64f661fc2b513f16f7e32dd286 (patch) | |
| tree | 9fe70cbe101f8ce63914e98c18778615ffc26525 | |
| parent | d7f529554bb6ef5c77ed36b7b6afb89ccfac0f41 (diff) | |
Add quick_search cache find
| -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 |
