本文整理汇总了Java中com.intellij.openapi.editor.ex.DocumentEx.getTextLength方法的典型用法代码示例。如果您正苦于以下问题:Java DocumentEx.getTextLength方法的具体用法?Java DocumentEx.getTextLength怎么用?Java DocumentEx.getTextLength使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.intellij.openapi.editor.ex.DocumentEx
的用法示例。
在下文中一共展示了DocumentEx.getTextLength方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: RangeMarkerImpl
import com.intellij.openapi.editor.ex.DocumentEx; //导入方法依赖的package包/类
private RangeMarkerImpl(@NotNull DocumentEx document, int start, int end, boolean register, boolean greedyToLeft, boolean greedyToRight) {
if (start < 0) {
throw new IllegalArgumentException("Wrong start: " + start+"; end="+end);
}
if (end > document.getTextLength()) {
throw new IllegalArgumentException("Wrong end: " + end+ "; document length="+document.getTextLength()+"; start="+start);
}
if (start > end){
throw new IllegalArgumentException("start > end: start=" + start+"; end="+end);
}
myDocument = document;
myId = counter.next();
if (register) {
registerInTree(start, end, greedyToLeft, greedyToRight, 0);
}
}
示例2: documentChanged
import com.intellij.openapi.editor.ex.DocumentEx; //导入方法依赖的package包/类
@Override
public void documentChanged(DocumentEvent event) {
DocumentEx document = getDocument();
if (document.isInBulkUpdate()) {
return;
}
if (document.getTextLength() > 0) {
addLineSeparatorPainterIfNeed();
int startDocLine = document.getLineNumber(event.getOffset());
int endDocLine = document.getLineNumber(event.getOffset() + event.getNewLength());
if (event.getOldLength() > event.getNewLength() || startDocLine != endDocLine || StringUtil.indexOf(event.getOldFragment(), '\n') != -1) {
updateGutterSize(startDocLine, endDocLine);
}
}
else if (event.getOldLength() > 0) {
documentCleared();
}
}
示例3: RangeMarkerImpl
import com.intellij.openapi.editor.ex.DocumentEx; //导入方法依赖的package包/类
private RangeMarkerImpl(@Nonnull DocumentEx document, int start, int end, boolean register, boolean greedyToLeft, boolean greedyToRight) {
if (start < 0) {
throw new IllegalArgumentException("Wrong start: " + start+"; end="+end);
}
if (end > document.getTextLength()) {
throw new IllegalArgumentException("Wrong end: " + end+ "; document length="+document.getTextLength()+"; start="+start);
}
if (start > end){
throw new IllegalArgumentException("start > end: start=" + start+"; end="+end);
}
myDocument = document;
myId = counter.next();
if (register) {
registerInTree(start, end, greedyToLeft, greedyToRight, 0);
}
}
示例4: translateViaDiff
import com.intellij.openapi.editor.ex.DocumentEx; //导入方法依赖的package包/类
private boolean translateViaDiff(final DocumentEventImpl event) {
try {
myStartLine = event.translateLineViaDiffStrict(myStartLine);
DocumentEx document = getDocument();
if (myStartLine < 0 || myStartLine >= document.getLineCount()) {
invalidate(event);
}
else {
int start = document.getLineStartOffset(myStartLine) + myStartColumn;
if (start >= document.getTextLength()) return false;
setIntervalStart(start);
}
myEndLine = event.translateLineViaDiffStrict(myEndLine);
if (myEndLine < 0 || myEndLine >= document.getLineCount()) {
invalidate(event);
}
else {
int end = document.getLineStartOffset(myEndLine) + myEndColumn;
if (end > document.getTextLength()) return false;
setIntervalEnd(end);
}
return true;
}
catch (FilesTooBigForDiffException e) {
return false;
}
}
示例5: EditorChangeAction
import com.intellij.openapi.editor.ex.DocumentEx; //导入方法依赖的package包/类
public EditorChangeAction(@Nonnull DocumentEx document,
int offset,
@Nonnull CharSequence oldString,
@Nonnull CharSequence newString,
long oldTimeStamp) {
super(document);
myOffset = offset;
myOldString = CompressionUtil.compressStringRawBytes(oldString);
myNewString = CompressionUtil.compressStringRawBytes(newString);
myOldTimeStamp = oldTimeStamp;
myNewTimeStamp = document.getModificationStamp();
myNewLength = document.getTextLength();
myOldLength = myNewLength - newString.length() + oldString.length();
}
示例6: updateCaretPosition
import com.intellij.openapi.editor.ex.DocumentEx; //导入方法依赖的package包/类
void updateCaretPosition(@NotNull final DocumentEventImpl event) {
final DocumentEx document = myEditor.getDocument();
if (document.isInBulkUpdate()) return;
boolean performSoftWrapAdjustment = event.getNewLength() > 0 // We want to put caret just after the last added symbol
// There is a possible case that the user removes text just before the soft wrap. We want to keep caret
// on a visual line with soft wrap start then.
|| myEditor.getSoftWrapModel().getSoftWrap(event.getOffset()) != null;
if (event.isWholeTextReplaced()) {
int newLength = document.getTextLength();
if (myOffset == newLength - event.getNewLength() + event.getOldLength() || newLength == 0) {
moveToOffset(newLength, performSoftWrapAdjustment);
}
else {
try {
final int line = event.translateLineViaDiff(myLogicalCaret.line);
moveToLogicalPosition(new LogicalPosition(line, myLogicalCaret.column), performSoftWrapAdjustment, null, true);
}
catch (FilesTooBigForDiffException e1) {
LOG.info(e1);
moveToOffset(0);
}
}
}
else {
int startOffset = event.getOffset();
int oldEndOffset = startOffset + event.getOldLength();
int newOffset = myOffset;
if (myOffset > oldEndOffset || myOffset == oldEndOffset && needToShiftWhiteSpaces(event)) {
newOffset += event.getNewLength() - event.getOldLength();
}
else if (myOffset >= startOffset && myOffset <= oldEndOffset) {
newOffset = Math.min(newOffset, startOffset + event.getNewLength());
}
newOffset = Math.min(newOffset, document.getTextLength());
if (myOffset != startOffset) {
LogicalPosition pos = myEditor.offsetToLogicalPosition(newOffset);
moveToLogicalPosition(new LogicalPosition(pos.line, pos.column + myVirtualSpaceOffset), // retain caret in the virtual space
performSoftWrapAdjustment, null, true);
}
else {
moveToOffset(newOffset, performSoftWrapAdjustment);
}
}
updateVisualLineInfo();
}
示例7: getLogicalLineStartOffset
import com.intellij.openapi.editor.ex.DocumentEx; //导入方法依赖的package包/类
private int getLogicalLineStartOffset(int logicalLine) {
DocumentEx document = myEditor.getDocument();
return logicalLine >= document.getLineCount() ? document.getTextLength() : document.getLineStartOffset(logicalLine);
}
示例8: documentChanged
import com.intellij.openapi.editor.ex.DocumentEx; //导入方法依赖的package包/类
@Override
public void documentChanged(DocumentEvent e) {
finishUpdate();
DocumentEventImpl event = (DocumentEventImpl)e;
final DocumentEx document = myEditor.getDocument();
boolean performSoftWrapAdjustment = e.getNewLength() > 0 // We want to put caret just after the last added symbol
// There is a possible case that the user removes text just before the soft wrap. We want to keep caret
// on a visual line with soft wrap start then.
|| myEditor.getSoftWrapModel().getSoftWrap(e.getOffset()) != null;
if (event.isWholeTextReplaced()) {
int newLength = document.getTextLength();
if (myOffset == newLength - e.getNewLength() + e.getOldLength() || newLength == 0) {
moveToOffset(newLength, performSoftWrapAdjustment);
}
else {
try {
final int line = event.translateLineViaDiff(myLogicalCaret.line);
moveToLogicalPosition(new LogicalPosition(line, myLogicalCaret.column), performSoftWrapAdjustment, null, true);
}
catch (FilesTooBigForDiffException e1) {
LOG.info(e1);
moveToOffset(0);
}
}
}
else {
if (document.isInBulkUpdate()) return;
int startOffset = e.getOffset();
int oldEndOffset = startOffset + e.getOldLength();
int newOffset = myOffset;
if (myOffset > oldEndOffset || myOffset == oldEndOffset && needToShiftWhiteSpaces(e)) {
newOffset += e.getNewLength() - e.getOldLength();
}
else if (myOffset >= startOffset && myOffset <= oldEndOffset) {
newOffset = Math.min(newOffset, startOffset + e.getNewLength());
}
newOffset = Math.min(newOffset, document.getTextLength());
// if (newOffset != myOffset) {
moveToOffset(newOffset, performSoftWrapAdjustment);
//}
//else {
// moveToVisualPosition(oldPosition);
//}
}
myVisualLineStart = myEditor.logicalPositionToOffset(myEditor.visualToLogicalPosition(new VisualPosition(myVisibleCaret.line, 0)));
myVisualLineEnd = myEditor.logicalPositionToOffset(myEditor.visualToLogicalPosition(new VisualPosition(myVisibleCaret.line + 1, 0)));
}