diff options
Diffstat (limited to 'content_scripts/link_hints.coffee')
| -rw-r--r-- | content_scripts/link_hints.coffee | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/content_scripts/link_hints.coffee b/content_scripts/link_hints.coffee index 6e1ebe80..0f2425c3 100644 --- a/content_scripts/link_hints.coffee +++ b/content_scripts/link_hints.coffee @@ -487,9 +487,9 @@ class FilterHints scoreFunction = @scoreLinkHint @linkTextKeystrokeQueue.join "" matchingHintMarkers = hintMarkers - .filter (linkMarker) -> + .filter (linkMarker) => linkMarker.score = scoreFunction linkMarker - 0 < linkMarker.score + 0 == @linkTextKeystrokeQueue.length or 0 < linkMarker.score .sort (a, b) -> if b.score == a.score then b.stableSortCount - a.stableSortCount else b.score - a.score @@ -509,7 +509,10 @@ class FilterHints scoreLinkHint: (linkSearchString) -> searchWords = linkSearchString.trim().toLowerCase().split @splitRegexp (linkMarker) => - linkWords = linkMarker.linkWords ?= linkMarker.linkText.toLowerCase().split @splitRegexp + return 0 unless 0 < searchWords.length + # We only keep non-empty link words. Empty link words cannot be matched, and leading empty link words + # disrupt the scoring of matches at the start of the text. + linkWords = linkMarker.linkWords ?= linkMarker.linkText.toLowerCase().split(@splitRegexp).filter (term) -> term searchWordScores = for searchWord in searchWords @@ -628,6 +631,8 @@ LocalHints = isClickable ||= if element == document.body and windowIsFocused() and Scroller.isScrollableElement element reason = "Scroll." + when "img" + isClickable ||= element.style.cursor in ["zoom-in", "zoom-out"] when "div", "ol", "ul" isClickable ||= if element.clientHeight < element.scrollHeight and Scroller.isScrollableElement element |
