1 HINTCHARS = 'asdfghjkl;'
2 CONTAINER_ID = 'vimffHintMarkerContainer'
4 { interfaces: Ci } = Components
5 HTMLDocument = Ci.nsIDOMHTMLDocument
6 { Marker, getElementRect } = require 'marker'
8 createOrGetHintsContainer = (document) ->
9 if container = document.getElementById CONTAINER_ID
12 container = document.createElement 'div'
13 container.id = CONTAINER_ID
14 document.body.appendChild container
17 hasHints = (document) ->
18 document.getUserData 'vimff.has_hints'
20 addHints = (document, cb) ->
24 if document instanceof HTMLDocument
25 container = createOrGetHintsContainer document
28 for link in document.links
29 if rect = getElementRect link
30 marker = new Marker(link, 'aa', container)
32 marker.setPosition rect.left, rect.top
35 document.setUserData 'vimff.has_hints', true, null
36 document.setUserData 'vimff.markers', markers, null
38 removeHints = (document) ->
39 console.log hasHints document
41 document.setUserData 'vimff.has_hints', undefined, null
42 document.setUserData 'vimff.markers', undefined, null
44 container = createOrGetHintsContainer document
45 document.body.removeChild container
47 exports.addHints = addHints
48 exports.removeHints = removeHints
49 exports.hasHints = removeHints