mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
save one volatile read on each charAt in editor
This commit is contained in:
@@ -536,7 +536,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi
|
||||
}
|
||||
});
|
||||
}
|
||||
updateHasTabsFlag(document.getCharsSequence());
|
||||
updateHasTabsFlag(document.getImmutableCharSequence());
|
||||
}
|
||||
|
||||
public static boolean isPresentationMode(Project project) {
|
||||
@@ -1036,7 +1036,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi
|
||||
};
|
||||
Disposer.register(myDisposable, myHighlighterDisposable);
|
||||
highlighter.setEditor(this);
|
||||
highlighter.setText(document.getCharsSequence());
|
||||
highlighter.setText(document.getImmutableCharSequence());
|
||||
EditorHighlighterCache.rememberEditorHighlighterForCachesOptimization(document, highlighter);
|
||||
|
||||
if (myPanel != null) {
|
||||
@@ -1140,7 +1140,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi
|
||||
// We mark that we're under such circumstances then.
|
||||
boolean activeSoftWrapProcessed = logicalPosition.softWrapLinesOnCurrentLogicalLine <= 0;
|
||||
|
||||
CharSequence text = myDocument.getCharsSequence();
|
||||
CharSequence text = myDocument.getImmutableCharSequence();
|
||||
|
||||
LogicalPosition endLogicalPosition = visualToLogicalPosition(new VisualPosition(line + 1, 0));
|
||||
int endOffset = logicalPositionToOffset(endLogicalPosition);
|
||||
@@ -1324,7 +1324,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi
|
||||
return mySoftWrapModel.offsetToLogicalPosition(offset);
|
||||
}
|
||||
int line = offsetToLogicalLine(offset, false);
|
||||
int column = calcColumnNumber(offset, line, false, myDocument.getCharsSequence());
|
||||
int column = calcColumnNumber(offset, line, false, myDocument.getImmutableCharSequence());
|
||||
return new LogicalPosition(line, column);
|
||||
}
|
||||
|
||||
@@ -1526,7 +1526,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi
|
||||
}
|
||||
|
||||
int offset = startOffset;
|
||||
CharSequence text = myDocument.getCharsSequence();
|
||||
CharSequence text = myDocument.getImmutableCharSequence();
|
||||
int textLength = myDocument.getTextLength();
|
||||
|
||||
// We need to calculate max offset to provide to the IterationState here based on the given start offset and target
|
||||
@@ -2287,7 +2287,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi
|
||||
// background is already drawn.
|
||||
boolean[] caretRowPainted = new boolean[1];
|
||||
|
||||
CharSequence text = myDocument.getCharsSequence();
|
||||
CharSequence text = myDocument.getImmutableCharSequence();
|
||||
|
||||
while (!iterationState.atEnd() && !lIterator.atEnd()) {
|
||||
int hEnd = iterationState.getEndOffset();
|
||||
@@ -2748,7 +2748,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi
|
||||
int fontType = attributes.getFontType();
|
||||
g.setColor(currentColor);
|
||||
|
||||
CharSequence chars = myDocument.getCharsSequence();
|
||||
CharSequence chars = myDocument.getImmutableCharSequence();
|
||||
|
||||
while (!iterationState.atEnd() && !lIterator.atEnd()) {
|
||||
int hEnd = iterationState.getEndOffset();
|
||||
@@ -3623,7 +3623,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi
|
||||
if (pos.column == 0) return start;
|
||||
int end = myDocument.getLineEndOffset(pos.line);
|
||||
|
||||
CharSequence text = myDocument.getCharsSequence();
|
||||
CharSequence text = myDocument.getImmutableCharSequence();
|
||||
|
||||
return EditorUtil.calcOffset(this, text, start, end, pos.column, EditorUtil.getTabSize(this), debugBuffer);
|
||||
}
|
||||
@@ -3873,7 +3873,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi
|
||||
LOG.assertTrue(lineIndex >= 0 && lineIndex < myDocument.getLineCount());
|
||||
|
||||
if (softWrapAware && getSoftWrapModel().isSoftWrappingEnabled()) {
|
||||
int column = calcColumnNumber(offset, lineIndex, false, myDocument.getCharsSequence());
|
||||
int column = calcColumnNumber(offset, lineIndex, false, myDocument.getImmutableCharSequence());
|
||||
return mySoftWrapModel.adjustLogicalPosition(new LogicalPosition(lineIndex, column), offset).line;
|
||||
}
|
||||
else {
|
||||
@@ -3883,7 +3883,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi
|
||||
|
||||
@Override
|
||||
public int calcColumnNumber(int offset, int lineIndex) {
|
||||
return calcColumnNumber(offset, lineIndex, true, myDocument.getCharsSequence());
|
||||
return calcColumnNumber(offset, lineIndex, true, myDocument.getImmutableCharSequence());
|
||||
}
|
||||
|
||||
public int calcColumnNumber(int offset, int lineIndex, boolean softWrapAware, CharSequence documentCharSequence) {
|
||||
@@ -3954,7 +3954,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi
|
||||
|
||||
if (!mySettings.isCaretInsideTabs()) {
|
||||
int offset = logicalPositionToOffset(new LogicalPosition(line, column));
|
||||
CharSequence text = myDocument.getCharsSequence();
|
||||
CharSequence text = myDocument.getImmutableCharSequence();
|
||||
if (offset >= 0 && offset < myDocument.getTextLength()) {
|
||||
if (text.charAt(offset) == '\t') {
|
||||
column = calcColumnNumber(offset, line);
|
||||
@@ -4573,7 +4573,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi
|
||||
g.fillRect(x, y, width, lineHeight - 1);
|
||||
final LogicalPosition startPosition = caret == null ? getCaretModel().getLogicalPosition() : caret.getLogicalPosition();
|
||||
final int offset = logicalPositionToOffset(startPosition);
|
||||
CharSequence chars = myDocument.getCharsSequence();
|
||||
CharSequence chars = myDocument.getImmutableCharSequence();
|
||||
if (chars.length() > offset && myDocument.getTextLength() > offset) {
|
||||
FoldRegion folding = myFoldingModel.getCollapsedRegionAtOffset(offset);
|
||||
final char ch;
|
||||
@@ -5283,7 +5283,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi
|
||||
|
||||
private String getText(int startIdx, int endIdx) {
|
||||
if (startIdx >= 0 && endIdx > startIdx) {
|
||||
CharSequence chars = getDocument().getCharsSequence();
|
||||
CharSequence chars = getDocument().getImmutableCharSequence();
|
||||
return chars.subSequence(startIdx, endIdx).toString();
|
||||
}
|
||||
|
||||
@@ -6419,7 +6419,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi
|
||||
return;
|
||||
}
|
||||
|
||||
final CharSequence text = myDocument.getCharsSequence();
|
||||
final CharSequence text = myDocument.getImmutableCharSequence();
|
||||
int documentLength = myDocument.getTextLength();
|
||||
int x = 0;
|
||||
boolean lastLineLengthCalculated = false;
|
||||
|
||||
Reference in New Issue
Block a user