1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-04-12 08:42:13 -04:00

launcher v2: general performance improvements

This commit is contained in:
bbedward
2026-02-05 13:22:49 -05:00
parent 4349d68f87
commit a3ae95df09
3 changed files with 182 additions and 104 deletions

View File

@@ -42,26 +42,23 @@ function hasWordBoundaryMatch(text, query) {
function levenshteinDistance(s1, s2) {
var len1 = s1.length
var len2 = s2.length
var matrix = []
var prev = new Array(len2 + 1)
var curr = new Array(len2 + 1)
for (var i = 0; i <= len1; i++) {
matrix[i] = [i]
}
for (var j = 0; j <= len2; j++) {
matrix[0][j] = j
}
for (var j = 0; j <= len2; j++)
prev[j] = j
for (var i = 1; i <= len1; i++) {
curr[0] = i
for (var j = 1; j <= len2; j++) {
var cost = s1[i - 1] === s2[j - 1] ? 0 : 1
matrix[i][j] = Math.min(
matrix[i - 1][j] + 1,
matrix[i][j - 1] + 1,
matrix[i - 1][j - 1] + cost
)
curr[j] = Math.min(prev[j] + 1, curr[j - 1] + 1, prev[j - 1] + cost)
}
var tmp = prev
prev = curr
curr = tmp
}
return matrix[len1][len2]
return prev[len2]
}
function fuzzyScore(text, query) {
@@ -153,8 +150,14 @@ function scoreItems(items, query, getFrecencyFn) {
for (var i = 0; i < items.length; i++) {
var item = items[i]
var frecencyData = getFrecencyFn ? getFrecencyFn(item) : null
var itemScore = score(item, query, frecencyData)
var itemScore
if (item._preScored !== undefined) {
itemScore = item._preScored
} else {
var frecencyData = getFrecencyFn ? getFrecencyFn(item) : null
itemScore = score(item, query, frecencyData)
}
if (itemScore > 0 || !query || query.length === 0) {
scored.push({
@@ -228,6 +231,8 @@ function flattenSections(sections) {
sectionIndex: i
})
section.flatStartIndex = flat.length
if (!section.collapsed) {
for (var j = 0; j < section.items.length; j++) {
flat.push({