original.java
public void expandFolds(int foldLevel, boolean update)
{
if(buffer.getFoldHandler() instanceof IndentFoldHandler)
foldLevel = (foldLevel - 1) * buffer.getIndentSize() + 1;
showLineRange(0,buffer.getLineCount() - 1);
int leastFolded = -1;
int firstInvisible = 0;
for(int i = 0; i < buffer.getLineCount(); i++)
{
if (leastFolded == -1 || buffer.getFoldLevel(i) < leastFolded)
{
leastFolded = buffer.getFoldLevel(i);
}
if (buffer.getFoldLevel(i) < foldLevel ||
buffer.getFoldLevel(i) == leastFolded)
{
if(firstInvisible != i)
{
hideLineRange(firstInvisible,
i - 1);
}
firstInvisible = i + 1;
}
}
if(firstInvisible != buffer.getLineCount())
hideLineRange(firstInvisible,buffer.getLineCount() - 1);
notifyScreenLineChanges();
if(update && textArea.getDisplayManager() == this)
{
textArea.foldStructureChanged();
}
}
modified.java
public void expandFolds(int foldLevel, boolean update)
{
if(buffer.getFoldHandler() instanceof IndentFoldHandler)
foldLevel = (foldLevel - 1) * buffer.getIndentSize() + 1;
int lineCount = buffer.getLineCount();
int end = lineCount - 1;
showLineRange(0,end);
int leastFolded = -1;
int firstInvisible = 0;
for(int i = 0; i < lineCount; i++)
{
int level = buffer.getFoldLevel(i);
if (leastFolded == -1 || level < leastFolded)
{
leastFolded = level;
}
if (level < foldLevel || level == leastFolded)
{
if(firstInvisible != i)
{
hideLineRange(firstInvisible,
i - 1);
}
firstInvisible = i + 1;
}
}
if(firstInvisible != lineCount)
hideLineRange(firstInvisible,end);
notifyScreenLineChanges();
if(update && textArea.getDisplayManager() == this)
{
textArea.foldStructureChanged();
}
}