diff options
Diffstat (limited to 'atom/packages/vim-mode/lib/status-bar-manager.coffee')
| -rw-r--r-- | atom/packages/vim-mode/lib/status-bar-manager.coffee | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/atom/packages/vim-mode/lib/status-bar-manager.coffee b/atom/packages/vim-mode/lib/status-bar-manager.coffee new file mode 100644 index 0000000..82e35e1 --- /dev/null +++ b/atom/packages/vim-mode/lib/status-bar-manager.coffee @@ -0,0 +1,37 @@ +{Disposable, CompositeDisposable} = require 'event-kit' + +ContentsByMode = + 'insert': ["status-bar-vim-mode-insert", "Insert"] + 'insert.replace': ["status-bar-vim-mode-insert", "Replace"] + 'command': ["status-bar-vim-mode-command", "Command"] + '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 + + # Private + + attach: -> + @tile = @statusBar.addRightTile(item: @container, priority: 20) + + detach: -> + @tile.destroy() |