aboutsummaryrefslogtreecommitdiff
path: root/atom/packages/vim-mode/lib/status-bar-manager.coffee
diff options
context:
space:
mode:
Diffstat (limited to 'atom/packages/vim-mode/lib/status-bar-manager.coffee')
-rw-r--r--atom/packages/vim-mode/lib/status-bar-manager.coffee37
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()