1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-13 05:44:11 +02:00

Paired char hilite selection tweak

This commit is contained in:
Brian Fiete 2022-01-18 13:36:56 -05:00
parent 7e0d3407cc
commit 66cfe1b28c

View file

@ -4744,16 +4744,21 @@ namespace IDE.ui
{ {
mHilitePairedCharState = .UnmatchedParens; mHilitePairedCharState = .UnmatchedParens;
bool HasPairingCharAt(int textIndex) int GetPairingDir(int textIndex)
{ {
switch (SafeGetChar(textIndex)) switch (SafeGetChar(textIndex))
{ {
// Ignore parentheses in comments. // Ignore parentheses in comments.
case '(',')', '[',']', '{','}': case '(', '[', '{':
var typeId = (SourceElementType)mData.mText[textIndex].mDisplayTypeId; var typeId = (SourceElementType)mData.mText[textIndex].mDisplayTypeId;
return (typeId != .Comment) && (typeId != .Literal); if ((typeId != .Comment) && (typeId != .Literal))
default: return false; return 1;
case ')', ']', '}':
var typeId = (SourceElementType)mData.mText[textIndex].mDisplayTypeId;
if ((typeId != .Comment) && (typeId != .Literal))
return -1;
} }
return 0;
} }
bool IsOpenChar(char8 c) bool IsOpenChar(char8 c)
@ -4782,9 +4787,9 @@ namespace IDE.ui
} }
int parenIndex = -1; int parenIndex = -1;
if (HasPairingCharAt(CursorTextPos - 1)) if (GetPairingDir(CursorTextPos - 1) == -1)
parenIndex = CursorTextPos - 1; parenIndex = CursorTextPos - 1;
else if (HasPairingCharAt(CursorTextPos)) else if (GetPairingDir(CursorTextPos) == 1)
parenIndex = CursorTextPos; parenIndex = CursorTextPos;
if (parenIndex != -1) if (parenIndex != -1)