// Copyright (c) 2006-2008 by Martin Stubenschrott <stubenschrott@vimperator.org>
// Copyright (c) 2007-2011 by Doug Kearns <dougkearns@gmail.com>
-// Copyright (c) 2008-2013 Kris Maglione <maglione.k@gmail.com>
+// Copyright (c) 2008-2014 Kris Maglione <maglione.k@gmail.com>
//
// This work is licensed for reuse under an MIT license. Details are
// given in the LICENSE.txt file included with this file.
* @constructor
*/
var CompletionContext = Class("CompletionContext", {
- init: function cc_init(editor, name = "", offset = 0) {
+ init: function cc_init(editor, name="", offset=0) {
let self = this;
if (editor instanceof this.constructor) {
let parent = editor;
filtered.sort(this.compare);
if (!this.anchored) {
let filter = this.filter;
- filtered.sort(function s(a, b) (b.text.indexOf(filter) == 0) - (a.text.indexOf(filter) == 0));
+ filtered.sort(function s(a, b) b.text.startsWith(filter) - a.text.startsWith(filter));
}
}
var substrings = [text];
}
else {
- var compare = function compare(text, s) text.indexOf(s) >= 0;
+ var compare = function compare(text, s) text.contains(s);
var substrings = [];
let start = 0;
let idx;
let alias = (prop) => {
context.__defineGetter__(prop, () => this[prop]);
context.__defineSetter__(prop, (val) => this[prop] = val);
- }
+ };
alias("_cache");
alias("_completions");
alias("_generate");
}
this.waitingForTab = false;
this.runCount++;
- for each (let context in this.contextList)
+ for (let context of this.contextList)
context.lastActivated = this.runCount;
this.contextList = [];
},
context.generate = function generate_() {
return [[k.substr(services.ABOUT.length), ""]
for (k in Cc)
- if (k.indexOf(services.ABOUT) == 0)];
+ if (k.startsWith(services.ABOUT))];
};
});
let contains = String.indexOf;
if (context.ignoreCase) {
compare = util.compareIgnoreCase;
- contains = function contains_(a, b) a && a.toLowerCase().indexOf(b.toLowerCase()) > -1;
+ contains = function contains_(a, b) a && a.toLowerCase().contains(b.toLowerCase());
}
if (tags)
.concat([let (name = k.substr(services.AUTOCOMPLETE.length))
["native:" + name, _("autocomplete.description", name)]
for (k in Cc)
- if (k.indexOf(services.AUTOCOMPLETE) == 0)]),
+ if (k.startsWith(services.AUTOCOMPLETE))]),
setter: function setter(values) {
- if (values.length == 1 && !Set.has(values[0], this.values)
- && Array.every(values[0], Set.has(this.valueMap)))
- return Array.map(values[0], function m(v) this[v], this.valueMap);
+ if (values.length == 1 && !hasOwnProperty(values[0], this.values)
+ && Array.every(values[0], v => hasOwnProperty(this.valueMap, v)))
+ return Array.map(values[0], v => this.valueMap[v]);
+
return values;
},