1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 04:22:20 +02:00

Scope Prev/Next, other minor improvements

This commit is contained in:
Brian Fiete 2020-06-23 15:24:50 -07:00
parent 0154b75923
commit 9e009b134c
7 changed files with 115 additions and 4 deletions

View file

@ -1521,6 +1521,70 @@ namespace IDE.ui
return;
}
public void ScopePrev()
{
int pos = CursorTextPos - 1;
int openCount = 0;
while (pos >= 0)
{
let c = mData.mText[pos].mChar;
let displayType = (SourceElementType)mData.mText[pos].mDisplayTypeId;
if (displayType == .Normal)
{
if (c == '{')
{
openCount--;
if (openCount <= 0)
{
CursorTextPos = pos;
EnsureCursorVisible();
break;
}
}
else if (c == '}')
{
openCount++;
}
}
pos--;
}
}
public void ScopeNext()
{
int pos = CursorTextPos;
int openCount = 0;
while (pos < mData.mTextLength)
{
let c = mData.mText[pos].mChar;
let displayType = (SourceElementType)mData.mText[pos].mDisplayTypeId;
if (displayType == .Normal)
{
if (c == '}')
{
openCount--;
if (openCount <= 0)
{
CursorTextPos = pos + 1;
EnsureCursorVisible();
break;
}
}
else if (c == '{')
{
openCount++;
}
}
pos++;
}
}
bool IsTextSpanEmpty(int32 start, int32 length)
{
for (int32 i = start; i < start + length; i++)