update autocomplete
This commit is contained in:
@@ -68,7 +68,7 @@ export default class ContextedLinkEditing extends Plugin {
|
||||
_addAutocomplete() {
|
||||
// Copied from: node_modules/@ckeditor/ckeditor5-autoformat/src/inlineautoformatediting.js
|
||||
const editor = this.editor
|
||||
// let autocomplete = false
|
||||
let showAutocomplete = false
|
||||
editor.model.document.on('change', (_, batch) => {
|
||||
if (batch.isUndo || !batch.isLocal) return
|
||||
const model = editor.model
|
||||
@@ -81,11 +81,12 @@ export default class ContextedLinkEditing extends Plugin {
|
||||
if (
|
||||
changes.length != 1 ||
|
||||
(entry.type !== 'insert' && entry.type !== 'remove') ||
|
||||
entry.name != '$text' ||
|
||||
(entry.name != '$text' && entry.name != 'paragraph') ||
|
||||
entry.length != 1
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
||||
const focus = selection.focus
|
||||
const block = focus?.parent
|
||||
if (!block || !focus) return
|
||||
@@ -99,6 +100,7 @@ export default class ContextedLinkEditing extends Plugin {
|
||||
const autocompleteNode: any = cursorNodes.find((node) =>
|
||||
node?.hasAttribute('autocomplete')
|
||||
)
|
||||
|
||||
interface AutocompleteEvent {
|
||||
position?: any
|
||||
autocompleteText?: string
|
||||
@@ -107,9 +109,14 @@ export default class ContextedLinkEditing extends Plugin {
|
||||
if (Boolean(autocompleteText) || Boolean(autocompleteNode)) {
|
||||
if (Boolean(autocompleteText) !== Boolean(autocompleteNode)) {
|
||||
editor.execute('autocomplete')
|
||||
if (autocompleteNode)
|
||||
editor.model.document.fire('contextedLinkAutocomplete', { show: false })
|
||||
if (autocompleteNode) {
|
||||
showAutocomplete = false
|
||||
editor.model.document.fire('contextedLinkAutocomplete', {
|
||||
show: showAutocomplete,
|
||||
})
|
||||
}
|
||||
} else {
|
||||
showAutocomplete = true
|
||||
const event: AutocompleteEvent = {
|
||||
position: getNodePosition(
|
||||
editor,
|
||||
@@ -119,11 +126,17 @@ export default class ContextedLinkEditing extends Plugin {
|
||||
)
|
||||
),
|
||||
autocompleteText: autocompleteNode.data,
|
||||
show: true,
|
||||
show: showAutocomplete,
|
||||
}
|
||||
editor.model.document.fire('contextedLinkAutocomplete', event)
|
||||
}
|
||||
}
|
||||
if (!autocompleteNode && showAutocomplete) {
|
||||
showAutocomplete = false
|
||||
editor.model.document.fire('contextedLinkAutocomplete', {
|
||||
show: showAutocomplete,
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user