aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Blott2016-04-08 15:07:04 +0100
committerStephen Blott2016-04-08 15:07:04 +0100
commitc8ca94bd83bb1a651cd4efdaef41906f46004ee5 (patch)
tree26ad4899f3ba4fdd35dc538ae674a2bc4685f27c
parent7ea8e0a5e829a282dfc4f21595d76146fd6b5334 (diff)
downloadvimium-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.coffee24
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