Skip to content

Commit e736972

Browse files
committed
fix: frecency access scoring
1 parent 5f4db7a commit e736972

File tree

1 file changed

+8
-9
lines changed

1 file changed

+8
-9
lines changed

lua/blink/cmp/fuzzy/frecency.rs

+8-9
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,10 @@ impl FrecencyTracker {
3939
let db = env.create_database(&mut wtxn, None).unwrap();
4040

4141
let access_thresholds = [
42-
(1., 1000 * 60 * 2), // 2 minutes
43-
(0.5, 1000 * 60 * 5), // 5 minutes
44-
(0.2, 1000 * 60 * 30), // 2 hours
45-
(0.1, 1000 * 60 * 60 * 24), // 1 day
46-
(0.05, 1000 * 60 * 60 * 24 * 7), // 1 week
42+
(1., 1000 * 60 * 2), // 2 minutes
43+
(0.5, 1000 * 60 * 60), // 1 hour
44+
(0.2, 1000 * 60 * 60 * 24), // 1 day
45+
(0.1, 1000 * 60 * 60 * 24 * 7), // 1 week
4746
]
4847
.to_vec();
4948

@@ -73,7 +72,7 @@ impl FrecencyTracker {
7372

7473
pub fn access(&mut self, item: &LspItem) -> Result<(), heed::Error> {
7574
let mut wtxn = self.env.write_txn()?;
76-
let mut accesses = self.get_accesses(item).unwrap_or_else(Vec::new);
75+
let mut accesses = self.get_accesses(item).unwrap_or_default();
7776
accesses.push(self.get_now());
7877
self.db
7978
.put(&mut wtxn, &CompletionItemKey::from(item), &accesses)?;
@@ -82,18 +81,18 @@ impl FrecencyTracker {
8281
}
8382

8483
pub fn get_score(&self, item: &LspItem) -> i64 {
85-
let accesses = self.get_accesses(item).unwrap_or_else(Vec::new);
84+
let accesses = self.get_accesses(item).unwrap_or_default();
8685
let now = self.get_now();
8786
let mut score = 0.0;
8887
'outer: for access in &accesses {
8988
let duration_since = now - access;
9089
for (rank, threshold_duration_since) in &self.access_thresholds {
9190
if duration_since < *threshold_duration_since {
9291
score += rank;
92+
continue 'outer;
9393
}
94-
continue 'outer;
9594
}
9695
}
97-
(score * accesses.len() as f64).min(4.) as i64
96+
score.min(4.) as i64
9897
}
9998
}

0 commit comments

Comments
 (0)