milo perf + cleanup

This commit is contained in:
kepler155c@gmail.com
2019-01-26 00:28:46 -05:00
parent 779d58cd7e
commit bae28521db
7 changed files with 69 additions and 61 deletions

View File

@@ -1,5 +1,6 @@
local Craft = require('craft2')
local Event = require('event')
local fuzzy = require('fuzzyMatch')
local Milo = require('milo')
local Sound = require('sound')
local UI = require('ui')
@@ -8,7 +9,6 @@ local Util = require('util')
local colors = _G.colors
local context = Milo:getContext()
local displayMode = Milo:getState('displayMode') or 0
local string = _G.string
local displayModes = {
[0] = { text = 'A', help = 'Showing all items' },
@@ -331,21 +331,37 @@ end
function page:applyFilter()
local function filterItems(t, filter)
if filter or displayMode > 0 then
self.grid.sortColumn = Milo:getState('sortColumn') or 'count'
self.grid.inverseSort = Milo:getState('inverseSort')
if filter then
local r = { }
if filter then
filter = filter:lower()
end
filter = filter:lower()
self.grid.sortColumn = 'score'
self.grid.inverseSort = true
for _,v in pairs(t) do
if not filter or string.find(v.lname, filter, 1, true) then
if filter or --displayMode == 0 or
displayMode == 1 and v.count > 0 then
table.insert(r, v)
v.score = fuzzy(v.lname, filter)
if v.score then
if v.count > 0 then
v.score = v.score + 1
end
table.insert(r, v)
end
end
return r
elseif displayMode > 0 then
local r = { }
for _,v in pairs(t) do
if v.count > 0 then
table.insert(r, v)
end
end
return r
end
return t
end