From 7d8d6296cea0f09d649e9706512f6eea32b6a5e1 Mon Sep 17 00:00:00 2001 From: ESH Date: Fri, 7 Feb 2025 13:00:12 +0100 Subject: [PATCH] Don't consider cursor in open space when in literal --- IDE/src/ui/SourceEditWidgetContent.bf | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/IDE/src/ui/SourceEditWidgetContent.bf b/IDE/src/ui/SourceEditWidgetContent.bf index 0d445981..04a684cd 100644 --- a/IDE/src/ui/SourceEditWidgetContent.bf +++ b/IDE/src/ui/SourceEditWidgetContent.bf @@ -4193,8 +4193,10 @@ namespace IDE.ui //int cursorTextPos = CursorTextPos; if (cursorTextPos < mData.mTextLength) { - charUnderCursor = (char8)mData.mText[cursorTextPos].mChar; - cursorInOpenSpace = ((charUnderCursor == ')') || (charUnderCursor == ']') || (charUnderCursor == ';') || (charUnderCursor == (char8)0) || (charUnderCursor.IsWhiteSpace)); + let charData = mData.mText[cursorTextPos]; + let cursorInLiteral = (SourceElementType)charData.mDisplayTypeId == .Literal; + charUnderCursor = (char8)charData.mChar; + cursorInOpenSpace = ((!cursorInLiteral) && ((charUnderCursor == ')') || (charUnderCursor == ']') || (charUnderCursor == ';') || (charUnderCursor == (char8)0) || (charUnderCursor.IsWhiteSpace))); if (((keyChar == '(') && (charUnderCursor == ')')) || ((keyChar == '[') && (charUnderCursor == ']'))) @@ -4229,7 +4231,7 @@ namespace IDE.ui } else { - if ((keyChar == '"') || (keyChar == '\'')) + if ((!cursorInLiteral) && ((keyChar == '"') || (keyChar == '\''))) cursorInOpenSpace = true; } }