From 0490e5df3b954e3054e7686851c0de07d58a57c5 Mon Sep 17 00:00:00 2001 From: Matthew Lipski Date: Thu, 2 Apr 2026 15:10:58 +0200 Subject: [PATCH] Made inserting links not call `insertText` when text is the same --- packages/core/src/editor/managers/StyleManager.ts | 7 ++++++- packages/core/src/extensions/LinkToolbar/LinkToolbar.ts | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/core/src/editor/managers/StyleManager.ts b/packages/core/src/editor/managers/StyleManager.ts index e03c46a6d1..e8ffa99881 100644 --- a/packages/core/src/editor/managers/StyleManager.ts +++ b/packages/core/src/editor/managers/StyleManager.ts @@ -169,7 +169,12 @@ export class StyleManager< const { from, to } = tr.selection; if (text) { - tr.insertText(text, from, to).addMark(from, from + text.length, mark); + const existingText = tr.doc.textBetween(from, to); + if (text !== existingText) { + tr.insertText(text, from, to); + } + + tr.addMark(from, from + text.length, mark); } else { tr.setSelection(TextSelection.create(tr.doc, to)).addMark( from, diff --git a/packages/core/src/extensions/LinkToolbar/LinkToolbar.ts b/packages/core/src/extensions/LinkToolbar/LinkToolbar.ts index 1a61d67d44..f190bc97e6 100644 --- a/packages/core/src/extensions/LinkToolbar/LinkToolbar.ts +++ b/packages/core/src/extensions/LinkToolbar/LinkToolbar.ts @@ -88,7 +88,12 @@ export const LinkToolbarExtension = createExtension(({ editor }) => { if (!range) { return; } - tr.insertText(text, range.from, range.to); + + const existingText = tr.doc.textBetween(range.from, range.to); + if (text !== existingText) { + tr.insertText(text, range.from, range.to); + } + tr.addMark( range.from, range.from + text.length,