当前位置: 首页>>代码示例>>Java>>正文


Java DocumentEx.getTextLength方法代码示例

本文整理汇总了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);
  }
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:18,代码来源:RangeMarkerImpl.java

示例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();
  }
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:20,代码来源:LanguageConsoleBuilder.java

示例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);
  }
}
 
开发者ID:consulo,项目名称:consulo,代码行数:18,代码来源:RangeMarkerImpl.java

示例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;
  }
}
 
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:29,代码来源:PersistentRangeMarker.java

示例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();
}
 
开发者ID:consulo,项目名称:consulo,代码行数:15,代码来源:EditorChangeAction.java

示例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();
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:52,代码来源:CaretImpl.java

示例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);
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:5,代码来源:CachingSoftWrapDataMapper.java

示例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)));
}
 
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:55,代码来源:CaretModelImpl.java


注:本文中的com.intellij.openapi.editor.ex.DocumentEx.getTextLength方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。