simplify autocomplete logic

This commit is contained in:
2023-05-09 00:14:22 +02:00
parent 9e06781e32
commit f38c28a3ad

View File

@@ -96,24 +96,14 @@ export default class ContextedLinkEditing extends Plugin {
) )
) )
if (Boolean(autocompleteText) || Boolean(autocompleteNode)) {
if (Boolean(autocompleteText) !== Boolean(autocompleteNode)) { if (Boolean(autocompleteText) !== Boolean(autocompleteNode)) {
editor.execute('autocomplete') editor.execute('autocomplete')
if (autocompleteNode) { }
showAutocomplete = false const autocompleteActive = ['contextedLink', 'autocomplete'].some((attribute) => {
editor.model.document.fire('contextedLinkAutocomplete', { return editor.model.document.selection.hasAttribute(attribute)
show: showAutocomplete,
}) })
} showAutocomplete = autocompleteActive
} else { fireAutocompleteEvent(editor, showAutocomplete, autocompleteNode)
showAutocomplete = true
fireAutocompleteEvent(editor, true, autocompleteNode)
}
}
if (!autocompleteNode && showAutocomplete) {
showAutocomplete = false
fireAutocompleteEvent(editor, false)
}
}) })
} }
_addContextedKeyHandler() { _addContextedKeyHandler() {
@@ -191,7 +181,7 @@ function getTextAfterCode(range: any, model: any) {
function fireAutocompleteEvent(editor: any, show: boolean, autocompleteNode?: any) { function fireAutocompleteEvent(editor: any, show: boolean, autocompleteNode?: any) {
let event: AutocompleteEvent let event: AutocompleteEvent
if (show) { if (show && autocompleteNode) {
const view = editor.editing.view const view = editor.editing.view
const viewPosition = view.document.selection.focus const viewPosition = view.document.selection.focus
const viewNode = viewPosition?.parent.parent const viewNode = viewPosition?.parent.parent