From 438f0b4d97bf045368177ef852b0356f85a90469 Mon Sep 17 00:00:00 2001 From: Andras Schmelczer Date: Sun, 13 Apr 2025 22:23:28 +0100 Subject: [PATCH] Fix out of bounds cursor checking --- .../src/utils/position-to-line-and-column.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/frontend/obsidian-plugin/src/utils/position-to-line-and-column.ts b/frontend/obsidian-plugin/src/utils/position-to-line-and-column.ts index 3c35fb6..3df61de 100644 --- a/frontend/obsidian-plugin/src/utils/position-to-line-and-column.ts +++ b/frontend/obsidian-plugin/src/utils/position-to-line-and-column.ts @@ -14,13 +14,18 @@ export function positionToLineAndColumn( throw new Error("Position cannot be negative"); } - if (position > text.length) { + text = text.replace("\r", ""); + + if ( + position > + text.length + 1 + // +1 to account for the cursor being after last character + ) { throw new Error( `Position ${position} exceeds text length ${text.length}` ); } - text = text.replace("\r", ""); const textUpToPosition = text.substring(0, position); const lines = textUpToPosition.split("\n");