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
 |