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:
parent
0154b75923
commit
9e009b134c
7 changed files with 115 additions and 4 deletions
|
@ -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++)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue