diff --git a/chrome/content/vimperator/modes.js b/chrome/content/vimperator/modes.js index aadfc122..544bfe07 100644 --- a/chrome/content/vimperator/modes.js +++ b/chrome/content/vimperator/modes.js @@ -28,187 +28,187 @@ the terms of any one of the MPL, the GPL or the LGPL. vimperator.modes = (function() { - var main = 1; // NORMAL - var extended = 0; // NONE + var main = 1; // NORMAL + var extended = 0; // NONE - var passNextKey = false; - var passAllKeys = false; + var passNextKey = false; + var passAllKeys = false; - function getModeMessage() - { - if (passNextKey && !passAllKeys) - return "PASS THROUGH (next)"; - else if (passAllKeys && !passNextKey) - return "PASS THROUGH"; + function getModeMessage() + { + if (passNextKey && !passAllKeys) + return "PASS THROUGH (next)"; + else if (passAllKeys && !passNextKey) + return "PASS THROUGH"; - var ext = ""; - switch (extended) - { - case vimperator.modes.QUICK_HINT: - ext = " (quick)"; break; - case vimperator.modes.EXTENDED_HINT: - ext = " (extended)"; break; - case vimperator.modes.ALWAYS_HINT: - ext = " (always)"; break; - case vimperator.modes.MENU: // TODO: desirable? - ext = " (menu)"; break; - } - - switch (main) - { - case vimperator.modes.INSERT: - return "INSERT" + ext; - case vimperator.modes.VISUAL: - return (extended & vimperator.modes.LINE) ? "VISUAL LINE" + ext : "VISUAL" + ext; - case vimperator.modes.HINTS: - return "HINTS" + ext; - case vimperator.modes.CARET: - return "CARET" + ext; - case vimperator.modes.TEXTAREA: - return "TEXTAREA" + ext; - default: - return null; - } - } + var ext = ""; + switch (extended) + { + case vimperator.modes.QUICK_HINT: + ext = " (quick)"; break; + case vimperator.modes.EXTENDED_HINT: + ext = " (extended)"; break; + case vimperator.modes.ALWAYS_HINT: + ext = " (always)"; break; + case vimperator.modes.MENU: // TODO: desirable? + ext = " (menu)"; break; + } - function handleModeChange(oldmode, newmode) - { - vimperator.log("switching from mode " + oldmode + " to mode " + newmode, 7); + switch (main) + { + case vimperator.modes.INSERT: + return "INSERT" + ext; + case vimperator.modes.VISUAL: + return (extended & vimperator.modes.LINE) ? "VISUAL LINE" + ext : "VISUAL" + ext; + case vimperator.modes.HINTS: + return "HINTS" + ext; + case vimperator.modes.CARET: + return "CARET" + ext; + case vimperator.modes.TEXTAREA: + return "TEXTAREA" + ext; + default: + return null; + } + } - switch (oldmode) - { - case vimperator.modes.TEXTAREA: - case vimperator.modes.INSERT: - vimperator.editor.unselectText(); - break; + function handleModeChange(oldmode, newmode) + { + vimperator.log("switching from mode " + oldmode + " to mode " + newmode, 7); - case vimperator.modes.VISUAL: - if (newmode == vimperator.modes.CARET) - { + switch (oldmode) + { + case vimperator.modes.TEXTAREA: + case vimperator.modes.INSERT: + vimperator.editor.unselectText(); + break; + + case vimperator.modes.VISUAL: + if (newmode == vimperator.modes.CARET) + { // clear any selection made var selection = window.content.getSelection(); if (selection) selection.collapseToStart(); - } - else - vimperator.editor.unselectText(); - break; + } + else + vimperator.editor.unselectText(); + break; - case vimperator.modes.HINTS: - // XXX: for now this does not work, but later it should be here - // vimperator.hints.disableHahMode(); - break; - } + case vimperator.modes.HINTS: + // XXX: for now this does not work, but later it should be here + // vimperator.hints.disableHahMode(); + break; + } - if (newmode == vimperator.modes.NORMAL) - { - var value = Options.getFirefoxPref("accessibility.browsewithcaret", false); - if (value) - Options.setFirefoxPref("accessibility.browsewithcaret", false); + if (newmode == vimperator.modes.NORMAL) + { + var value = Options.getFirefoxPref("accessibility.browsewithcaret", false); + if (value) + Options.setFirefoxPref("accessibility.browsewithcaret", false); - vimperator.statusline.updateUrl(); - vimperator.focusContent(); - } - } + vimperator.statusline.updateUrl(); + vimperator.focusContent(); + } + } - return { - // main modes, only one should ever be active - NONE: 0, - NORMAL: 1 << 0, - INSERT: 1 << 1, - VISUAL: 1 << 2, - HINTS: 1 << 3, - COMMAND_LINE: 1 << 4, - CARET: 1 << 5, // text cursor is visible - TEXTAREA: 1 << 6, // text cursor is in a HTMLTextAreaElement - // extended modes, can include multiple modes, and even main modes - EX: 1 << 10, - INPUT_MULTILINE: 1 << 11, - OUTPUT_MULTILINE: 1 << 12, - SEARCH_FORWARD: 1 << 13, - SEARCH_BACKWARD: 1 << 14, - QUICK_HINT: 1 << 15, - EXTENDED_HINT: 1 << 16, - ALWAYS_HINT: 1 << 17, - MENU: 1 << 18, // a popupmenu is active - LINE: 1 << 19, // linewise visual mode + return { + // main modes, only one should ever be active + NONE: 0, + NORMAL: 1 << 0, + INSERT: 1 << 1, + VISUAL: 1 << 2, + HINTS: 1 << 3, + COMMAND_LINE: 1 << 4, + CARET: 1 << 5, // text cursor is visible + TEXTAREA: 1 << 6, // text cursor is in a HTMLTextAreaElement + // extended modes, can include multiple modes, and even main modes + EX: 1 << 10, + INPUT_MULTILINE: 1 << 11, + OUTPUT_MULTILINE: 1 << 12, + SEARCH_FORWARD: 1 << 13, + SEARCH_BACKWARD: 1 << 14, + QUICK_HINT: 1 << 15, + EXTENDED_HINT: 1 << 16, + ALWAYS_HINT: 1 << 17, + MENU: 1 << 18, // a popupmenu is active + LINE: 1 << 19, // linewise visual mode - reset: function(silent) - { - this.set(vimperator.modes.NORMAL, vimperator.modes.NONE, silent); - }, + reset: function(silent) + { + this.set(vimperator.modes.NORMAL, vimperator.modes.NONE, silent); + }, - show: function() - { - if (!vimperator.options["showmode"]) - return; + show: function() + { + if (!vimperator.options["showmode"]) + return; - // never show mode messages if we are in command line mode - if (main == vimperator.modes.COMMAND_LINE) - return; + // never show mode messages if we are in command line mode + if (main == vimperator.modes.COMMAND_LINE) + return; - var msg = getModeMessage(); - if (msg) - vimperator.commandline.echo("-- " + getModeMessage() + " --"); - else - vimperator.commandline.echo(""); - }, + var msg = getModeMessage(); + if (msg) + vimperator.commandline.echo("-- " + getModeMessage() + " --"); + else + vimperator.commandline.echo(""); + }, - // helper function to set both modes in one go + // helper function to set both modes in one go set: function(main_mode, extended_mode, silent) { // if a main mode is set, the extended is always cleared if (typeof main_mode === "number") { - if (main_mode != main) - handleModeChange(main, main_mode); + if (main_mode != main) + handleModeChange(main, main_mode); main = main_mode; - if (!extended_mode) - extended = vimperator.modes.NONE; + if (!extended_mode) + extended = vimperator.modes.NONE; } if (typeof extended_mode === "number") extended = extended_mode; - if (!silent) - this.show(); + if (!silent) + this.show(); }, - // add/remove always work on the extended mode only - add: function(mode) - { - extended |= mode; - this.show(); - }, - remove: function(mode) - { - extended = (extended | mode) ^ mode; - this.show(); - }, + // add/remove always work on the extended mode only + add: function(mode) + { + extended |= mode; + this.show(); + }, + remove: function(mode) + { + extended = (extended | mode) ^ mode; + this.show(); + }, - get passNextKey() { return passNextKey; }, - set passNextKey(value) { passNextKey = value; this.show(); }, + get passNextKey() { return passNextKey; }, + set passNextKey(value) { passNextKey = value; this.show(); }, - get passAllKeys() { return passAllKeys; }, - set passAllKeys(value) { passAllKeys = value; this.show(); }, - - get main() { return main; }, - set main(value) { - if (value != main) - handleModeChange(main, value); + get passAllKeys() { return passAllKeys; }, + set passAllKeys(value) { passAllKeys = value; this.show(); }, - main = value; - // setting the main mode always resets any extended mode - extended = vimperator.modes.NONE; - this.show(); - }, + get main() { return main; }, + set main(value) { + if (value != main) + handleModeChange(main, value); - get extended() { return extended; }, - set extended(value) { - extended = value; this.show(); - } - } + main = value; + // setting the main mode always resets any extended mode + extended = vimperator.modes.NONE; + this.show(); + }, + + get extended() { return extended; }, + set extended(value) { + extended = value; this.show(); + } + } })(); - +// vim: set fdm=marker sw=4 ts=4 et: