diff options
Diffstat (limited to 'content_scripts/link_hints.coffee')
| -rw-r--r-- | content_scripts/link_hints.coffee | 49 |
1 files changed, 23 insertions, 26 deletions
diff --git a/content_scripts/link_hints.coffee b/content_scripts/link_hints.coffee index 9858882e..533a8775 100644 --- a/content_scripts/link_hints.coffee +++ b/content_scripts/link_hints.coffee @@ -117,8 +117,7 @@ LinkHints = visibleElements = [] # Find all visible clickable elements. - for i in [0...resultSet.snapshotLength] - # for (i = 0, count = resultSet.snapshotLength; i < count; i++) { + for i in [0...resultSet.snapshotLength] by 1 element = resultSet.snapshotItem(i) clientRect = DomUtils.getVisibleClientRect(element, clientRect) if (clientRect != null) @@ -168,16 +167,16 @@ LinkHints = else keyResult = @markerMatcher.matchHintsByKey(event, @hintMarkers) linksMatched = keyResult.linksMatched - delay = (if keyResult.delay? then keyResult.delay else 0) + delay = keyResult.delay ? 0 if (linksMatched.length == 0) @deactivateMode() else if (linksMatched.length == 1) @activateLink(linksMatched[0], delay) else - for i of @hintMarkers - @hideMarker(@hintMarkers[i]) - for i of linksMatched - @showMarker(linksMatched[i], @markerMatcher.hintKeystrokeQueue.length) + for i, marker of @hintMarkers + @hideMarker(marker) + for i, matched of linksMatched + @showMarker(matched, @markerMatcher.hintKeystrokeQueue.length) false # We've handled this key, so prevent propagation. # @@ -289,13 +288,12 @@ alphabetHints = # will be spread evenly throughout the array. # shuffleHints: (hints, characterSetLength) -> - buckets = [] - buckets[i] = [] for i in [0...characterSetLength] - for i in [0...hints.length] - buckets[i % buckets.length].push(hints[i]) + buckets = ([] for i in [0...characterSetLength] by 1) + for hint in hints + buckets[i % buckets.length].push(hint) result = [] - for i in [0...buckets.length] - result = result.concat(buckets[i]) + for bucket in buckets + result = result.concat(bucket) result # @@ -316,7 +314,7 @@ alphabetHints = # Pad the hint string we're returning so that it matches numHintDigits. # Note: the loop body changes hintString.length, so the original length must be cached! hintStringLength = hintString.length - for i in [0...(numHintDigits - hintStringLength)] + for i in [0...(numHintDigits - hintStringLength)] by 1 hintString.unshift(characterSet[0]) hintString.join("") @@ -347,10 +345,10 @@ filterHints = # generateLabelMap: -> labels = document.querySelectorAll("label") - for i in [0...labels.length] - forElement = labels[i].getAttribute("for") + for label in labels + forElement = label.getAttribute("for") if (forElement) - labelText = labels[i].textContent.trim() + labelText = label.textContent.trim() # remove trailing : commonly found in labels if (labelText[labelText.length-1] == ":") labelText = labelText.substr(0, labelText.length-1) @@ -388,8 +386,8 @@ filterHints = getHintMarkers: (visibleElements) -> @generateLabelMap() hintMarkers = [] - for i in [0...visibleElements.length] - marker = hintUtils.createMarkerFor(visibleElements[i]) + for visibleElement, i in visibleElements + marker = hintUtils.createMarkerFor(visibleElement) marker.hintString = @generateHintString(i) linkTextObject = @generateLinkText(marker.clickableItem) marker.linkText = linkTextObject.text @@ -406,9 +404,9 @@ filterHints = if (event.keyCode == keyCodes.enter) # activate the lowest-numbered link hint that is visible - for i in [0...hintMarkers.length] - if (hintMarkers[i].style.display != "none") - return { linksMatched: [ hintMarkers[i] ] } + for marker in hintMarkers + if (marker.style.display != "none") + return { linksMatched: [ marker ] } else if (event.keyCode == keyCodes.backspace || event.keyCode == keyCodes.deleteKey) # backspace clears hint key queue first, then acts on link text key queue. # if both queues are empty. exit hinting mode @@ -447,8 +445,7 @@ filterHints = linksMatched = [] linkSearchString = @linkTextKeystrokeQueue.join("") - for i in [0...hintMarkers.length] - linkMarker = hintMarkers[i] + for linkMarker in hintMarkers matchedLink = linkMarker.linkText.toLowerCase().indexOf(linkSearchString.toLowerCase()) >= 0 if (!matchedLink) @@ -473,8 +470,8 @@ hintUtils = # spanWrap: (hintString) -> innerHTML = [] - for i in [0...hintString.length] - innerHTML.push("<span class='vimiumReset'>" + hintString[i] + "</span>") + for char in hintString + innerHTML.push("<span class='vimiumReset'>" + char + "</span>") innerHTML.join("") # |
