implemented fuzzy search for buy

This commit is contained in:
Manuel Simon Hirsig
2015-10-07 00:11:36 +02:00
parent cfe55f902b
commit 0e70040682
7 changed files with 173 additions and 67 deletions
+36 -19
View File
@@ -6,6 +6,9 @@ Aux.util.GT = {}
local merge, copy_array
function Aux.util.pass()
end
function Aux.util.iter(array)
local with_index = ipairs(array)
return function()
@@ -14,20 +17,6 @@ function Aux.util.iter(array)
end
end
function Aux.util.item_name_autocomplete()
local text = this:GetText()
local textlen = strlen(text)
local name
for item_id=1,30000 do
name = GetItemInfo(item_id)
if name and strfind(strupper(name), '^' .. strupper(text)) then
this:SetText(name)
this:HighlightText(textlen, -1)
return
end
end
end
function Aux.util.format_money(val)
local g = math.floor(val / 10000)
@@ -91,14 +80,42 @@ function Aux.util.all(xs, p)
return holds
end
function Aux.util.set_filter(set, p)
filtered = {}
for x, _ in pairs(set) do
function Aux.util.set_filter(xs, p)
ys = {}
for x, _ in pairs(xs) do
if p(x) then
Aux.util.set_add(filtered, x)
Aux.util.set_add(ys, x)
end
end
return filtered
return ys
end
function Aux.util.filter(xs, p)
ys = {}
for _, x in ipairs(xs) do
if p(x) then
tinsert(ys, x)
end
end
return ys
end
function Aux.util.map(xs, f)
ys = {}
for _, x in ipairs(xs) do
tinsert(ys, f(x))
end
return ys
end
function Aux.util.take(n, xs)
ys = {}
for i=1,n do
if xs[i] then
tinsert(ys, xs[i])
end
end
return ys
end
function Aux.util.merge_sort(A, comp)