diff options
| author | Stephen Blott | 2016-04-08 15:07:04 +0100 |
|---|---|---|
| committer | Stephen Blott | 2016-04-08 15:07:04 +0100 |
| commit | c8ca94bd83bb1a651cd4efdaef41906f46004ee5 (patch) | |
| tree | 26ad4899f3ba4fdd35dc538ae674a2bc4685f27c | |
| parent | 7ea8e0a5e829a282dfc4f21595d76146fd6b5334 (diff) | |
| download | vimium-c8ca94bd83bb1a651cd4efdaef41906f46004ee5.tar.bz2 | |
Trim linkText when it's collected, not repreatedly.
There's no need to repeatedly trim linkText. Instead, just trim it when
it's first collected, then we can assume from there on that it's
trimmed.
| -rw-r--r-- | content_scripts/link_hints.coffee | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/content_scripts/link_hints.coffee b/content_scripts/link_hints.coffee index 3cbda59f..08c5cd9b 100644 --- a/content_scripts/link_hints.coffee +++ b/content_scripts/link_hints.coffee @@ -476,12 +476,13 @@ class FilterHints # Filter link hints by search string, renumbering the hints as necessary. filterLinkHints: (hintMarkers) -> scoreFunction = @scoreLinkHint @linkTextKeystrokeQueue.join "" - matchingHintMarkers = hintMarkers - .filter (linkMarker) -> - linkMarker.score = scoreFunction linkMarker - 0 < linkMarker.score - .sort (a, b) -> - if b.score == a.score then b.stableSortCount - a.stableSortCount else b.score - a.score + matchingHintMarkers = + hintMarkers + .filter (linkMarker) -> + linkMarker.score = scoreFunction linkMarker + 0 < linkMarker.score + .sort (a, b) -> + if b.score == a.score then b.stableSortCount - a.stableSortCount else b.score - a.score if matchingHintMarkers.length == 0 and @hintKeystrokeQueue.length == 0 and 0 < @linkTextKeystrokeQueue.length # We don't accept typed text which doesn't match any hints. @@ -499,8 +500,7 @@ class FilterHints scoreLinkHint: (linkSearchString) -> searchWords = linkSearchString.trim().toLowerCase().split @splitRegexp (linkMarker) => - text = linkMarker.linkText.trim() - linkWords = linkMarker.linkWords ?= text.toLowerCase().split @splitRegexp + linkWords = linkMarker.linkWords ?= linkMarker.linkText.toLowerCase().split @splitRegexp searchWordScores = for searchWord in searchWords @@ -522,8 +522,8 @@ class FilterHints addFunc = (a,b) -> a + b score = searchWordScores.reduce addFunc, 0 # Prefer matches in shorter texts. To keep things balanced for links without any text, we just weight - # them as if their length was 50. - score / Math.log 1 + (text.length || 50) + # them as if their length was 100 (so, quite long). + score / Math.log 1 + (linkMarker.linkText.length || 100) # # Make each hint character a span, so that we can highlight the typed characters as you type them. @@ -761,9 +761,9 @@ LocalHints = linkText = hint.reason showLinkText = true else - linkText = (element.textContent.trim() || element.innerHTML.trim())[...512] + linkText = element.textContent[...256] || element.innerHTML[...256] - {linkText, showLinkText} + {linkText: linkText.trim(), showLinkText} # Suppress all keyboard events until the user stops typing for sufficiently long. class TypingProtector extends Mode |
