blob: 080e4bf28f30eda24da15c11fc7ce95f5a6f0867 (
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
|
ContentsByMode =
'insert': ["status-bar-vim-mode-insert", "Insert"]
'insert.replace': ["status-bar-vim-mode-insert", "Replace"]
'normal': ["status-bar-vim-mode-normal", "Normal"]
'visual': ["status-bar-vim-mode-visual", "Visual"]
'visual.characterwise': ["status-bar-vim-mode-visual", "Visual"]
'visual.linewise': ["status-bar-vim-mode-visual", "Visual Line"]
'visual.blockwise': ["status-bar-vim-mode-visual", "Visual Block"]
module.exports =
class StatusBarManager
constructor: ->
@element = document.createElement("div")
@element.id = "status-bar-vim-mode"
@container = document.createElement("div")
@container.className = "inline-block"
@container.appendChild(@element)
initialize: (@statusBar) ->
update: (currentMode, currentSubmode) ->
currentMode = currentMode + "." + currentSubmode if currentSubmode?
if newContents = ContentsByMode[currentMode]
[klass, text] = newContents
@element.className = klass
@element.textContent = text
else
@hide()
hide: ->
@element.className = 'hidden'
# Private
attach: ->
@tile = @statusBar.addRightTile(item: @container, priority: 20)
detach: ->
@tile.destroy()
|