electron-spell-check-provider
Version:
Because Electron's spell-check APIs are just a little too low-level.
41 lines (33 loc) • 1.07 kB
JavaScript
var _ = require('underscore');
var EventEmitter = require('events');
var SKIP_WORDS = require('./skipWords');
var spellchecker = require('spellchecker');
var util = require('util');
/**
* Creates a spell-check provider to be passed to `webFrame.setSpellCheckProvider`.
*
* @param {String} language - The language that is being spell-checked. 'en-US'
* is the only supported value at present.
*
* @return {SpellCheckProvider}
*/
var SpellCheckProvider = function(language) {
EventEmitter.call(this);
this._language = language;
};
util.inherits(SpellCheckProvider, EventEmitter);
_.extend(SpellCheckProvider.prototype, {
spellCheck: function(text) {
var skipWords = SKIP_WORDS[this._language];
if (_.contains(skipWords, text)) return true;
var textIsMisspelled = spellchecker.isMisspelled(text);
if (textIsMisspelled) {
this.emit('misspelling', spellchecker.getCorrectionsForMisspelling(text));
}
return !textIsMisspelled;
},
add: function(text) {
spellchecker.add(text);
}
});
module.exports = SpellCheckProvider;