From 1c4c938d5b6a371efb5be15ec760f76b8acc251f Mon Sep 17 00:00:00 2001 From: Anton Khodakivskiy Date: Fri, 4 Oct 2013 03:26:09 +0300 Subject: [PATCH] enering/leaving modes tweaks --- extension/packages/vim.coffee | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/extension/packages/vim.coffee b/extension/packages/vim.coffee index 2cde65f..3de97d0 100644 --- a/extension/packages/vim.coffee +++ b/extension/packages/vim.coffee @@ -8,11 +8,16 @@ class Vim enterMode: (mode, args) -> # `args` is an array of arguments to be passed to the mode's `onEnter` method + if mode not of modes + throw new Error("Not a valid VimFx mode to enter: #{ mode }") + if @mode != mode - modes[@mode]?.onLeave(@, @storage[@mode], args) + if @mode of modes + modes[@mode].onLeave(@, @storage[@mode], args) + @mode = mode - @storage[@mode] ?= {} - modes[@mode]?.onEnter(@, @storage[@mode], args) + + modes[@mode].onEnter(@, @storage[@mode] ?= {}, args) onInput: (keyStr, event, options = {}) -> if options.autoInsertMode and not isEscCommandKey(keyStr) -- 2.39.3