From 861b66b007436e6eb9fd19607103eb131ca04a88 Mon Sep 17 00:00:00 2001 From: Alf Eaton Date: Thu, 8 Jan 2026 14:57:33 +0000 Subject: [PATCH] Revert "Cite an article by pasting the DOI (#29994)" (#30607) This reverts commit a68af023b24fcf87bbc608395f2898df8e9b41a5. GitOrigin-RevId: c0dd9ae3f6a0e12e6ba7d1e856327ea89eae8157 --- .../extensions/autocomplete-on-paste.ts | 26 ------------------- .../source-editor/extensions/index.ts | 2 -- .../js/features/source-editor/utils/doi.ts | 4 --- 3 files changed, 32 deletions(-) delete mode 100644 services/web/frontend/js/features/source-editor/extensions/autocomplete-on-paste.ts delete mode 100644 services/web/frontend/js/features/source-editor/utils/doi.ts diff --git a/services/web/frontend/js/features/source-editor/extensions/autocomplete-on-paste.ts b/services/web/frontend/js/features/source-editor/extensions/autocomplete-on-paste.ts deleted file mode 100644 index 49bfdf1a62..0000000000 --- a/services/web/frontend/js/features/source-editor/extensions/autocomplete-on-paste.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { EditorView } from '@codemirror/view' -import { startCompletion } from '@codemirror/autocomplete' -import { ancestorNodeOfType } from '@/features/source-editor/utils/tree-operations/ancestors' -import { containsDOI } from '../utils/doi' - -// open autocomplete when a DOI is pasted into a \cite argument -export const autocompleteOnPaste = EditorView.domEventHandlers({ - paste(event, view) { - const text = event.clipboardData?.getData('text/plain') - if (text && containsDOI(text)) { - const node = ancestorNodeOfType( - view.state, - view.state.selection.main.from, - 'BibKeyArgument', - -1 - ) - - if (node) { - // allow time for the pasted content to appear in the state - window.setTimeout(() => { - startCompletion(view) - }) - } - } - }, -}) diff --git a/services/web/frontend/js/features/source-editor/extensions/index.ts b/services/web/frontend/js/features/source-editor/extensions/index.ts index 7da1d45e96..d107756bd3 100644 --- a/services/web/frontend/js/features/source-editor/extensions/index.ts +++ b/services/web/frontend/js/features/source-editor/extensions/index.ts @@ -55,7 +55,6 @@ import { trackDetachedComments } from './track-detached-comments' import { reviewTooltip } from './review-tooltip' import { tooltipsReposition } from './tooltips-reposition' import { selectionListener } from '@/features/source-editor/extensions/selection-listener' -import { autocompleteOnPaste } from '@/features/source-editor/extensions/autocomplete-on-paste' const moduleExtensions: Array<(options: Record) => Extension> = importOverleafModules('sourceEditorExtensions').map( @@ -175,5 +174,4 @@ export const createExtensions = (options: Record): Extension[] => [ fileTreeItemDrop(), tooltipsReposition(), selectionListener(options.setEditorSelection), - autocompleteOnPaste, ] diff --git a/services/web/frontend/js/features/source-editor/utils/doi.ts b/services/web/frontend/js/features/source-editor/utils/doi.ts deleted file mode 100644 index c23aa29fb7..0000000000 --- a/services/web/frontend/js/features/source-editor/utils/doi.ts +++ /dev/null @@ -1,4 +0,0 @@ -const doiRe = /10\.\d{4,}\/\S+/ - -export const containsDOI = (text: string) => - doiRe.test(decodeURIComponent(text))