Invoke onEditor on each extension sub-class

This commit is contained in:
Kevin Sawicki
2012-10-04 17:08:42 -07:00
parent e87cb34d1d
commit 1fa32c48e7
4 changed files with 44 additions and 88 deletions

View File

@@ -2,25 +2,18 @@ module.exports =
class EditorCommand
@activate: (rootView) ->
keymaps = @getKeymaps()
return unless keymaps
window.keymap.bindKeys '.editor', keymaps
for editor in rootView.getEditors()
@subscribeToEditor(rootView, editor)
@onEditor(editor)
rootView.on 'editor-open', (e, editor) =>
@subscribeToEditor(rootView, editor)
@onEditor(editor)
@subscribeToEditor: (rootView, editor) ->
keymaps = @getKeymaps(rootView, editor)
return unless keymaps
for key, event of keymaps
do (event) =>
editor.on event, =>
@execute(editor, event)
@register: (editor, key, event, callback) ->
binding = {}
binding[key] = event
window.keymap.bindKeys '.editor', binding
editor.on event, =>
callback(editor, event)
@replaceSelectedText: (editor, replace) ->
selection = editor.getSelection()

View File

@@ -3,9 +3,7 @@ EditorCommand = require 'editor-command'
module.exports =
class LowerCaseCommand extends EditorCommand
@getKeymaps: (editor) ->
'meta-Y': 'lowercase'
@execute: (editor, event) ->
@replaceSelectedText editor, (text) ->
text.toLowerCase()
@onEditor: (editor) ->
@register editor, 'meta-Y', 'lowercase', =>
@replaceSelectedText editor, (text) ->
text.toLowerCase()

View File

@@ -3,9 +3,7 @@ EditorCommand = require 'editor-command'
module.exports =
class UpperCaseCommand extends EditorCommand
@getKeymaps: (editor) ->
'meta-X': 'uppercase'
@execute: (editor, event) ->
@replaceSelectedText editor, (text) ->
text.toUpperCase()
@onEditor: (editor) ->
@register editor, 'meta-X', 'uppercase', =>
@replaceSelectedText editor, (text) ->
text.toUpperCase()