Files
atom/spec/spec-helper.coffee
Nathan Sobo 2c2423f985 Single-digit numeric prefixes can repeat commands in vim-mode
Vim mode has an operator stack. Every time an operator is pushed to the
stack, we ask if it is complete. If it's complete, we compose it with
the operator below it, then pop that operator if its complete. When no
operators remain on the stack, we call execute the final composed
operator. So far we only have DeleteChar (x) and NumericPrefix
operators.
2012-01-11 22:02:47 -08:00

38 lines
1.0 KiB
CoffeeScript

nakedLoad 'jasmine-jquery'
$ = require 'jquery'
_ = require 'underscore'
Native = require 'native'
BindingSet = require 'binding-set'
afterEach ->
(new Native).resetMainMenu()
atom.globalKeymap.reset()
$('#jasmine-content').empty()
window.atom = new (require 'app')
eventPropertiesFromPattern = (pattern) ->
bindingSet = new BindingSet("*", {})
parsedPattern = bindingSet.parseKeyPattern(pattern)
delete parsedPattern.key # key doesn't exist on browser-generated key events
parsedPattern
window.keypressEvent = (pattern, properties={}) ->
$.Event "keypress", _.extend(eventPropertiesFromPattern(pattern), properties)
window.keydownEvent = (pattern, properties={}) ->
$.Event "keydown", _.extend(eventPropertiesFromPattern(pattern), properties)
window.waitsForPromise = (fn) ->
window.waitsFor (moveOn) ->
fn().done(moveOn)
$.fn.resultOfTrigger = (type) ->
event = $.Event(type)
this.trigger(event)
event.result
$.fn.enableKeymap = ->
@on 'keydown', (e) => atom.globalKeymap.handleKeyEvent(e)