Fix GlobalAc.toggle and add it to the plugin API

This commit is contained in:
Samuel Elliott 2018-08-23 16:36:22 +01:00
parent 46dae11085
commit a85107cc51
No known key found for this signature in database
GPG Key ID: 8420C7CDE43DC4D6
3 changed files with 13 additions and 5 deletions

View File

@ -408,12 +408,20 @@ export default class PluginApi {
validAutocompletePrefix(prefix) {
return GlobalAc.validPrefix(prefix);
}
toggleAutocompleteMode(prefix, sterm) {
return GlobalAc.toggle(prefix, sterm);
}
searchAutocomplete(prefix, sterm) {
return GlobalAc.items(prefix, sterm);
}
get Autocomplete() {
return Object.defineProperty({
add: this.addAutocompleteController.bind(this),
remove: this.removeAutocompleteController.bind(this),
removeAll: this.removeAllAutocompleteControllers.bind(this),
validPrefix: this.validAutocompletePrefix.bind(this)
validPrefix: this.validAutocompletePrefix.bind(this),
toggle: this.toggleAutocompleteMode.bind(this),
search: this.searchAutocomplete.bind(this)
}, 'sets', {
get: () => this.autocompleteSets
});

View File

@ -44,9 +44,9 @@ export default new class Autocomplete {
return this.sets.has(prefix);
}
toggle(prefix, sterm) {
if (!this.sets[prefix].toggle) return false;
return this.sets[prefix].toggle(sterm);
toggle(prefix, sterm, event) {
const controller = this.sets.get(prefix);
return controller && controller.toggle && controller.toggle(sterm, event);
}
items(prefix, sterm) {

View File

@ -132,7 +132,7 @@
const { selectionEnd, value } = e.target;
const sterm = value.slice(0, selectionEnd).split(/\s+/g).pop();
const prefix = sterm.slice(0, 1);
return this.controller.toggle(prefix, sterm);
return this.controller.toggle(prefix, sterm, e);
}
}
}