blob: 316ab95190eb72e2f9e9ead897e66d0dda106e21 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
root = window.Marks = {}
root.activateCreateMode = ->
handlerStack.push keydown: (e) ->
keyChar = KeyboardUtils.getKeyChar(event)
return unless keyChar isnt ""
if /[A-Z]/.test keyChar
chrome.runtime.sendMessage {
handler: 'createMark',
markName: keyChar
scrollX: window.scrollX,
scrollY: window.scrollY
}, -> HUD.showForDuration "Created global mark '#{keyChar}'", 1000
else if /[a-z]/.test keyChar
[baseLocation, sep, hash] = window.location.href.split '#'
localStorage["vimiumMark|#{baseLocation}|#{keyChar}"] = JSON.stringify
scrollX: window.scrollX,
scrollY: window.scrollY
HUD.showForDuration "Created local mark '#{keyChar}'", 1000
@remove()
false
root.activateGotoMode = ->
handlerStack.push keydown: (e) ->
keyChar = KeyboardUtils.getKeyChar(event)
return unless keyChar isnt ""
if /[A-Z]/.test keyChar
chrome.runtime.sendMessage
handler: 'gotoMark'
markName: keyChar
else if /[a-z]/.test keyChar
[baseLocation, sep, hash] = window.location.href.split '#'
markString = localStorage["vimiumMark|#{baseLocation}|#{keyChar}"]
if markString?
mark = JSON.parse markString
window.scrollTo mark.scrollX, mark.scrollY
HUD.showForDuration "Jumped to local mark '#{keyChar}'", 1000
@remove()
false
|