aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Blott2012-11-04 08:26:06 +0000
committerStephen Blott2012-11-04 08:26:06 +0000
commite5aa0993b7353b16308f7dbfd0a1e217264c2cae (patch)
treed8d37f4ee068c54506aa8e878b53cecf6cec96b8
parente97990e479989bd05f9d6377cfb327fccdcc1ed9 (diff)
downloadvimium-e5aa0993b7353b16308f7dbfd0a1e217264c2cae.tar.bz2
Highlight all matches, not just the first.
-rw-r--r--background_scripts/completion.coffee11
1 files changed, 9 insertions, 2 deletions
diff --git a/background_scripts/completion.coffee b/background_scripts/completion.coffee
index 9314d9be..c8a06b27 100644
--- a/background_scripts/completion.coffee
+++ b/background_scripts/completion.coffee
@@ -50,8 +50,15 @@ class Suggestion
highlightTerms: (string) ->
ranges = []
for term in @queryTerms
- i = string.search(RegexpCache.get(term))
- ranges.push([i, i + term.length]) if i >= 0
+ textPosition = 0
+ splits = string.split(RegexpCache.get(term, "(", ")")).reverse()
+ while 0 < splits.length
+ unmatchedText = splits.pop()
+ textPosition += unmatchedText.length
+ matchedText = if 0 < splits.length then splits.pop() else null
+ if matchedText
+ ranges.push([textPosition, textPosition + matchedText.length])
+ textPosition += matchedText.length
return string if ranges.length == 0