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]