diff --git a/packages/slate/src/controllers/editor.js b/packages/slate/src/controllers/editor.js index 6088e1296..696d5aa82 100644 --- a/packages/slate/src/controllers/editor.js +++ b/packages/slate/src/controllers/editor.js @@ -147,8 +147,9 @@ class Editor { query(query, ...args) { debug('query', { query, args }) + const { editor } = this const obj = { type: query, args } - return this.run('onQuery', obj) + return this.run('onQuery', obj, editor) } /** diff --git a/packages/slate/src/plugins/queries.js b/packages/slate/src/plugins/queries.js index 2aa4310ce..039739a5a 100644 --- a/packages/slate/src/plugins/queries.js +++ b/packages/slate/src/plugins/queries.js @@ -33,10 +33,11 @@ function QueriesPlugin(options = {}) { * On query, if it exists in our list of queries, call it. * * @param {Object} query + * @param {Editor} editor * @param {Function} next */ - function onQuery(query, next) { + function onQuery(query, editor, next) { const { type, args } = query const fn = queries[type] if (!fn) return next() @@ -46,7 +47,7 @@ function QueriesPlugin(options = {}) { if (ret !== undefined) return ret } - const ret = fn(...args) + const ret = fn(editor, ...args) return ret === undefined ? next() : ret } diff --git a/packages/slate/src/plugins/schema.js b/packages/slate/src/plugins/schema.js index c0463c797..0f82b3bde 100644 --- a/packages/slate/src/plugins/schema.js +++ b/packages/slate/src/plugins/schema.js @@ -53,11 +53,12 @@ function SchemaPlugin(schema) { /** * Check if a `mark` is void based on the schema rules. * + * @param {Editor} editor * @param {Mark} mark * @return {Boolean} */ - function isAtomic(mark) { + function isAtomic(editor, mark) { const rule = schemaRules.find( r => 'isAtomic' in r && testRules(mark, r.match) ) @@ -68,11 +69,12 @@ function SchemaPlugin(schema) { /** * Check if a `node` is void based on the schema rules. * + * @param {Editor} editor * @param {Node} node * @return {Boolean} */ - function isVoid(node) { + function isVoid(editor, node) { const rule = schemaRules.find( r => 'isVoid' in r && testRules(node, r.match) )