]> git.gir.st - VimFx.git/blob - packages/commands.coffee
hints are finally showing up on the pages. currently they are displayed for all the...
[VimFx.git] / packages / commands.coffee
1 SCROLL_AMOUNT = 60
2
3 { classes: Cc, interfaces: Ci, utils: Cu } = Components
4
5 utils = require 'utils'
6 { addHints, removeHints, hasHints } = require 'hints'
7
8 commands =
9 'g,g': (window) ->
10 window.scrollTo(0, 0)
11
12 'G': (window) ->
13 window.scrollTo(0, window.document.body.scrollHeight)
14
15 'j': (window) ->
16 window.scrollBy(0, SCROLL_AMOUNT)
17
18 'k': (window) ->
19 window.scrollBy(0, -SCROLL_AMOUNT)
20
21 'd': (window) ->
22 window.scrollBy(0, window.innerHeight)
23
24 'u': (window) ->
25 window.scrollBy(0, -window.innerHeight)
26
27 'J': (window) ->
28 if rootWindow = utils.getRootWindow window
29 rootWindow.gBrowser.tabContainer.advanceSelectedTab(1, true);
30
31 'K': (window) ->
32 if rootWindow = utils.getRootWindow window
33 rootWindow.gBrowser.tabContainer.advanceSelectedTab(-1, true);
34
35 'x': (window) ->
36 if rootWindow = utils.getRootWindow window
37 rootWindow.gBrowser.removeCurrentTab()
38
39 'X': (window) ->
40 if rootWindow = utils.getRootWindow window
41 ss = utils.getSessionStore()
42 if ss and ss.getClosedTabCount(rootWindow) > 0
43 ss.undoCloseTab rootWindow, 0
44
45 'f': (window) ->
46 try
47 addHints window.top.document, (el) ->
48 console.log 'f hint', el
49 catch err
50 console.log err
51
52 'Esc': (window) ->
53 try
54 window.document.activeElement?.blur()
55 removeHints window.top.document
56 catch err
57 console.log err
58
59
60 getCommand = (keys) ->
61 sequence = [key.toString() for key in keys].join(',')
62 if command = commands[sequence]
63 return command
64 else if keys.length > 0
65 return getCommand keys.slice(1)
66 else
67 undefined
68
69 maybeCommand = (keys) ->
70 if keys.length == 0
71 return false
72 else
73 sequence = [key.toString() for key in keys].join(',')
74 for s in Object.keys(commands)
75 if s.search(sequence) == 0
76 return true
77
78 return maybeCommand keys.slice(1)
79
80 exports.getCommand = getCommand
81 exports.maybeCommand = maybeCommand
Imprint / Impressum