From fbe4abbcf96de154f64941fc9ae72e1449325f81 Mon Sep 17 00:00:00 2001 From: Simon Lydell Date: Sat, 14 Dec 2013 13:07:05 +0100 Subject: [PATCH] Make mode entering consistent with find mode enter --- extension/packages/commands.coffee | 6 +++--- extension/packages/mode-hints/mode-hints.coffee | 2 +- extension/packages/modes.coffee | 10 +++++----- extension/packages/vim.coffee | 9 +++++---- 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/extension/packages/commands.coffee b/extension/packages/commands.coffee index d5402c2..8bc09e8 100644 --- a/extension/packages/commands.coffee +++ b/extension/packages/commands.coffee @@ -61,13 +61,13 @@ command_marker_yank = (vim) -> else if utils.isTextInputElement(marker.element) utils.writeToClipboard(vim.window, marker.element.value) - vim.enterMode('hints', [callback]) + vim.enterMode('hints', callback) # Focus element command_marker_focus = (vim) -> callback = (marker) -> marker.element.focus() - vim.enterMode('hints', [callback]) + vim.enterMode('hints', callback) # Copy current URL to the clipboard command_yank = (vim) -> @@ -207,7 +207,7 @@ helper_follow = ({ inTab, multiple }, vim) -> vim.window.setTimeout((-> marker.reset() for marker in markers), 100) return true - vim.enterMode('hints', [callback]) + vim.enterMode('hints', callback) # Follow links with hint markers command_follow = helper_follow.bind(undefined, {inTab: false}) diff --git a/extension/packages/mode-hints/mode-hints.coffee b/extension/packages/mode-hints/mode-hints.coffee index d6de1fe..afd5c46 100644 --- a/extension/packages/mode-hints/mode-hints.coffee +++ b/extension/packages/mode-hints/mode-hints.coffee @@ -4,7 +4,7 @@ hints = require 'mode-hints/hints' { isEscCommandKey } = require 'commands' exports.mode_hints = - onEnter: (vim, storage, [ callback ]) -> + onEnter: (vim, storage, callback) -> markers = hints.injectHints(vim.window.document) if markers.length == 0 vim.enterMode('normal') diff --git a/extension/packages/modes.coffee b/extension/packages/modes.coffee index 021ed31..d55e162 100644 --- a/extension/packages/modes.coffee +++ b/extension/packages/modes.coffee @@ -4,16 +4,16 @@ utils = require 'utils' { searchForMatchingCommand , isEscCommandKey , isReturnCommandKey -, findStorage } = require 'commands' +, findStorage } = require 'commands' modes = {} modes['normal'] = - onEnter: (vim, storage, args) -> + onEnter: (vim, storage) -> storage.keys ?= [] storage.commands ?= {} - onLeave: (vim, storage, args) -> + onLeave: (vim, storage) -> storage.keys.length = 0 onInput: (vim, storage, keyStr, event) -> @@ -44,7 +44,7 @@ modes['insert'] = return true modes['find'] = - onEnter: (vim, storage, args) -> + onEnter: (vim, storage, options) -> return unless findBar = utils.getRootWindow(vim.window)?.gBrowser.getFindBar() findBar.open() @@ -52,7 +52,7 @@ modes['find'] = findBar._findField.select() return unless highlightButton = findBar.getElement("highlight") - return unless highlightButton.checked != args.highlight + return unless highlightButton.checked != options.highlight highlightButton.click() onLeave: (vim) -> diff --git a/extension/packages/vim.coffee b/extension/packages/vim.coffee index 5075986..8d28dfa 100644 --- a/extension/packages/vim.coffee +++ b/extension/packages/vim.coffee @@ -1,6 +1,6 @@ utils = require 'utils' { modes } = require 'modes' -{ isEscCommandKey +{ isEscCommandKey , isReturnCommandKey } = require 'commands' class Vim @@ -8,18 +8,19 @@ class Vim @storage = {} @enterMode('normal') - enterMode: (mode, args) -> + 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 if @mode of modes - modes[@mode].onLeave(@, @storage[@mode], args) + modes[@mode].onLeave(@, @storage[@mode]) @mode = mode - modes[@mode].onEnter(@, @storage[@mode] ?= {}, args) + modes[@mode].onEnter(@, @storage[@mode] ?= {}, args...) onInput: (keyStr, event) -> isEditable = utils.isElementEditable(event.originalTarget) -- 2.39.3