mirror of
https://github.com/kepler155c/opus
synced 2025-01-03 20:30:28 +00:00
7224d441ca
* canvas overhaul * minor tweaks * list mode for overview * bugfixes + tweaks for editor 2.0 * minor tweaks * more editor work * refactor + new transitions * use layout() where appropriate and cleanup * mouse triple click + textEntry scroll ind * cleanup * cleanup + theme editor * color rework + cleanup * changes for deprecated ui methods * can now use named colors
22 lines
615 B
Lua
22 lines
615 B
Lua
-- Based on Squid's fuzzy search
|
|
-- https://github.com/SquidDev-CC/artist/blob/vnext/artist/lib/match.lua
|
|
--
|
|
-- not very fuzzy anymore
|
|
|
|
local SCORE_WEIGHT = 1000
|
|
local LEADING_LETTER_PENALTY = -30
|
|
local LEADING_LETTER_PENALTY_MAX = -90
|
|
|
|
local _find = string.find
|
|
local _max = math.max
|
|
|
|
return function(str, pattern)
|
|
local start = _find(str, pattern, 1, true)
|
|
if start then
|
|
-- All letters before the current one are considered leading, so add them to our penalty
|
|
return SCORE_WEIGHT
|
|
+ _max(LEADING_LETTER_PENALTY * (start - 1), LEADING_LETTER_PENALTY_MAX)
|
|
- (#str - #pattern)
|
|
end
|
|
end
|