diff --git a/common/content/dactyl.js b/common/content/dactyl.js index 7e5285b3..73fabff2 100644 --- a/common/content/dactyl.js +++ b/common/content/dactyl.js @@ -326,7 +326,7 @@ var Dactyl = Module("dactyl", XPCOM(Ci.nsISupportsWeakReference, ModuleBase), { if (typeof str == "object" && "echoerr" in str) str = str.echoerr; else if (isinstance(str, ["Error"])) - str = <>{str.fileName.replace(/^.*? -> /, "")}: {str.lineNumber}: {str}; + str = <>{str.fileName.replace(/^.* -> /, "")}: {str.lineNumber}: {str}; if (options["errorbells"]) dactyl.beep(); diff --git a/common/locale/en-US/intro.xml b/common/locale/en-US/intro.xml index 34f42b04..09fc4afa 100644 --- a/common/locale/en-US/intro.xml +++ b/common/locale/en-US/intro.xml @@ -45,15 +45,22 @@ -

Contact

+

Official Plugins

+ +

+ In case you're not sufficiently overwhelmed by &dactyl.appName;'s default + feature set, don't despair. You can find more entertainment in the + officially supported (read: you can flame us when they stop working) + plugins. +

+ +

Contact

Please send comments, questions, or patches to the mailing list, where we will do our best to answer any inquiries. You can also - check the - wiki or - FAQ. + find more information on the homepage. Issue reports can be entered in the issue tracker.

diff --git a/common/locale/en-US/map.xml b/common/locale/en-US/map.xml index 2a0bfd21..a6d1dd87 100644 --- a/common/locale/en-US/map.xml +++ b/common/locale/en-US/map.xml @@ -46,7 +46,7 @@

- Standard key mapping commands are provided for the four most + Standard key mapping commands are provided for the five most common modes,

@@ -65,6 +65,7 @@ prefixed with one of the above letters. For instance, :imap creates a new key mapping in insert mode, while :cunmap removes a key mapping from command-line mode. + Other modes can be specified using the -modes option described below.

diff --git a/common/locale/en-US/options.xml b/common/locale/en-US/options.xml index c11a047a..2fd55ebf 100644 --- a/common/locale/en-US/options.xml +++ b/common/locale/en-US/options.xml @@ -443,8 +443,8 @@ - 'cookieaccept' 'ca' - 'cookieaccept' + 'ca' 'cookieaccept' + 'cookieaccept' 'ca' string all @@ -575,7 +575,7 @@ 'enc' 'encoding' - 'encoding' + 'encoding' 'enc' string UTF-8 @@ -602,7 +602,7 @@ 'ei' 'eventignore' - 'eventignore' + 'eventignore' 'ei' stringlist @@ -658,7 +658,7 @@ 'fenc' 'fileencoding' - 'fileencoding' + 'fileencoding' 'fenc' string UTF-8 @@ -671,7 +671,7 @@ 'fc' 'findcase' - 'findcase' + 'findcase' 'fc' string smart @@ -939,6 +939,7 @@ + 'nojsd' 'nojsdebugger' 'jsd' 'jsdebugger' 'jsdebugger' 'jsd' boolean @@ -951,8 +952,8 @@ - 'nolpl' 'lpl' - 'noloadplugins' 'loadplugins' + 'nolpl' 'noloadplugins' + 'lpl' 'loadplugins' 'loadplugins' 'lpl' regexplist '\.(js|&dactyl.fileExt;)$' @@ -991,7 +992,7 @@ 'ml' 'mapleader' - 'mapleader' + 'mapleader' 'ml' string \ @@ -1247,8 +1248,8 @@ - 'sanitizeshutdown' 'ss' - 'sanitizeshutdown' + 'ss' 'sanitizeshutdown' + 'sanitizeshutdown' 'ss' stringlist @@ -1296,7 +1297,7 @@ - 'shell' 'sh' + 'sh' 'shell' 'shell' 'sh' string $SHELL or sh, Windows: cmd.exe @@ -1306,7 +1307,7 @@ - 'shellcmdflag' 'shcf' + 'shcf' 'shellcmdflag' 'shellcmdflag' 'shcf' string @@ -1392,6 +1393,7 @@ + 'notmo' 'notimeout' 'tmo' 'timeout' 'timeout' 'tmo' boolean @@ -1435,7 +1437,7 @@ 'us' 'urlsep' 'urlseparator' - 'urlseparator' + 'urlseparator' 'urlsep' 'us' string \| @@ -1533,7 +1535,7 @@ - 'wildignore' 'wig' + 'wig' 'wildignore' 'wildignore' 'wig' regexplist diff --git a/common/modules/addons.jsm b/common/modules/addons.jsm index 8fbbba32..2cd642a8 100644 --- a/common/modules/addons.jsm +++ b/common/modules/addons.jsm @@ -232,17 +232,6 @@ var Addon = Class("Addon", { } }); -iter.forEach(properties(config.addon), function (prop) { - let desc = Object.getOwnPropertyDescriptor(config.addon, prop); - if (callable(desc.value)) - Addon.prototype[prop] = function proxy() this.addon[prop].apply(this.addon, arguments); - else - Object.defineProperty(Addon.prototype, prop, { - get: function get_proxy() this.addon[prop], - set: function set_proxy(val) this.addon[prop] = val - }); -}); - var AddonList = Class("AddonList", { init: function init(modules, types, filter) { this.modules = modules; @@ -533,6 +522,17 @@ var addonErrors = array.toObject([ endModule(); +iter.forEach(properties(config.addon), function (prop) { + let desc = Object.getOwnPropertyDescriptor(config.addon, prop); + if (callable(desc.value)) + Addon.prototype[prop] = function proxy() this.addon[prop].apply(this.addon, arguments); + else + Object.defineProperty(Addon.prototype, prop, { + get: function get_proxy() this.addon[prop], + set: function set_proxy(val) this.addon[prop] = val + }); +}); + } catch(e){ if (isString(e)) e = Error(e); dump(e.fileName+":"+e.lineNumber+": "+e+"\n" + e.stack); } // vim: set fdm=marker sw=4 ts=4 et ft=javascript: diff --git a/common/modules/completion.jsm b/common/modules/completion.jsm index 7109bb19..9f291f02 100644 --- a/common/modules/completion.jsm +++ b/common/modules/completion.jsm @@ -83,7 +83,7 @@ var CompletionContext = Class("CompletionContext", { self.waitingForTab = false; delete self._generate; - delete self._ignoreCase; + delete self.ignoreCase; if (self != this) return self; ["_caret", "contextList", "maxItems", "onUpdate", "selectionTypes", "tabPressed", "updateAsync", "value"].forEach(function (key) { @@ -305,7 +305,7 @@ var CompletionContext = Class("CompletionContext", { get filter() this._filter != null ? this._filter : this.value.substr(this.offset, this.caret), set filter(val) { - delete this._ignoreCase; + delete this.ignoreCase; return this._filter = val; }, @@ -401,18 +401,15 @@ var CompletionContext = Class("CompletionContext", { this.noUpdate = false; }, - get ignoreCase() { - if (this._ignoreCase == null) { - let mode = this.wildcase; - if (mode == "match") - this._ignoreCase = false; - if (mode == "ignore") - this._ignoreCase = true; - this._ignoreCase = !/[A-Z]/.test(this.filter); - } - return this._ignoreCase; - }, - set ignoreCase(val) this._ignoreCase = val, + ignoreCase: Class.memoize(function () { + let mode = this.wildcase; + if (mode == "match") + return false; + else if (mode == "ignore") + return true; + else + return !/[A-Z]/.test(this.filter); + }), /** * Returns a list of all completion items which match the current @@ -578,7 +575,7 @@ var CompletionContext = Class("CompletionContext", { * @param {number} count The number of characters to advance the context. */ advance: function advance(count) { - delete this._ignoreCase; + delete this.ignoreCase; let advance = count; if (this.quote && count) { advance = this.quote[1](this.filter.substr(0, count)).length; diff --git a/common/modules/config.jsm b/common/modules/config.jsm index 71d25426..e75186bf 100644 --- a/common/modules/config.jsm +++ b/common/modules/config.jsm @@ -124,6 +124,7 @@ var ConfigBase = Class("ConfigBase", { }), dtd: memoize({ + get name() config.name, get home() "http://dactyl.sourceforge.net/", get apphome() this.home + this.name, code: "http://code.google.com/p/dactyl/", diff --git a/common/modules/services.jsm b/common/modules/services.jsm index 48629933..6c38529b 100644 --- a/common/modules/services.jsm +++ b/common/modules/services.jsm @@ -124,7 +124,7 @@ var Services = Module("Services", { * @param {string} class The class's contract ID. * @param {nsISupports|nsISupports[]} ifaces The interface or array of * interfaces implemented by this service. - * @param {string} meth The name of the function used to instanciate + * @param {string} meth The name of the function used to instantiate * the service. */ add: function (name, class_, ifaces, meth) { @@ -138,9 +138,11 @@ var Services = Module("Services", { * Adds a new XPCOM class to the cache. * * @param {string} name The class's cache key. - * @param {string} class The class's contract ID. + * @param {string} class_ The class's contract ID. * @param {nsISupports|nsISupports[]} ifaces The interface or array of * interfaces implemented by this class. + * @param {string} init Name of a property or method used to initialise the + * class. See {@link #_create}. */ addClass: function (name, class_, ifaces, init) { const self = this; diff --git a/pentadactyl/NEWS b/pentadactyl/NEWS index 7895a01a..6eefd36b 100644 --- a/pentadactyl/NEWS +++ b/pentadactyl/NEWS @@ -75,7 +75,7 @@ listing keys for modes other than Normal, filtering the output and linking to source code locations). [b4] - :downloads now opens a download list in the multi-line output - buffer. + buffer. [b6] - Added :mapgroup command and -group flag to :map, :unmap, and :mapclear. [b6] - :extensions has been replaced with a more powerful :addons. @@ -99,10 +99,10 @@ - Added :write !cmd and :write >>file. [b3] - Added :yank command. [b3] - :delmarks, :marks and :qmarks now also accept ranges, same as - :delqmarks. - - :command now accepts comma-separated alternative command names. + :delqmarks. [b4] + - :command now accepts comma-separated alternative command names. [b4] - :command -complete custom now also accepts a completions array, see - :h :command-completion-custom. + :h :command-completion-custom. [b4] * Improvements to :style and :highlight: - Added -link flag to :highlight. [b4] - Added -agent flag to :style. [b2] @@ -138,8 +138,8 @@ * IMPORTANT: Plugins are now loaded from the 'plugins/' directory in 'runtimepath' rather than 'plugin/'. [b1] * Option changes: - - Added "bookmarks", "diverted", and "links" to 'activate' [b2] - option. + - Added "bookmarks", "diverted", and "links" to 'activate' + option. [b2] - Added 'altwildmode' and c_ command-line key binding. [b2] - Added 'autocomplete' option for specifying which completion groups should be auto-completed. [b2]