本文整理汇总了Java中com.intellij.openapi.editor.Document.getLineNumber方法的典型用法代码示例。如果您正苦于以下问题:Java Document.getLineNumber方法的具体用法?Java Document.getLineNumber怎么用?Java Document.getLineNumber使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.intellij.openapi.editor.Document
的用法示例。
在下文中一共展示了Document.getLineNumber方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getQuickNavigateInfo
import com.intellij.openapi.editor.Document; //导入方法依赖的package包/类
@Nullable
@Override
public String getQuickNavigateInfo(PsiElement element, PsiElement originalElement) {
Document document =
FileDocumentManager.getInstance().getDocument(element.getContainingFile().getVirtualFile());
if (document == null) return "";
int lineNum = document.getLineNumber(element.getTextOffset()) + 1 /* count starts at zero */;
String path = element.getContainingFile().getVirtualFile().getName();
StringBuilder navigateInfo = new StringBuilder("Defined at ");
navigateInfo.append(path);
navigateInfo.append(":");
navigateInfo.append(lineNum);
String optDoc = getDocCommentForEnclosingTag(element);
if (optDoc != null) {
navigateInfo.append("\n");
navigateInfo.append(produceCommentPreview(optDoc));
}
return navigateInfo.toString();
}
示例2: handleEnterInComment
import com.intellij.openapi.editor.Document; //导入方法依赖的package包/类
private static void handleEnterInComment(
PsiElement element, @NotNull PsiFile file, @NotNull Editor editor) {
if (element.getText().startsWith("/*")) {
Document document = editor.getDocument();
int caretOffset = editor.getCaretModel().getOffset();
int lineNumber = document.getLineNumber(caretOffset);
String lineTextBeforeCaret =
document.getText(new TextRange(document.getLineStartOffset(lineNumber), caretOffset));
String lineTextAfterCaret =
document.getText(new TextRange(caretOffset, document.getLineEndOffset(lineNumber)));
if (lineTextAfterCaret.equals("*/")) {
return;
}
String toInsert = lineTextBeforeCaret.equals("") ? " * " : "* ";
insertText(file, editor, toInsert, toInsert.length());
}
}
示例3: postProcessEnter
import com.intellij.openapi.editor.Document; //导入方法依赖的package包/类
@Override
public Result postProcessEnter(
@NotNull PsiFile file, @NotNull Editor editor, @NotNull DataContext dataContext) {
if (file.getFileType() != SoyFileType.INSTANCE) {
return Result.Continue;
}
int caretOffset = editor.getCaretModel().getOffset();
PsiElement element = file.findElementAt(caretOffset);
Document document = editor.getDocument();
int lineNumber = document.getLineNumber(caretOffset) - 1;
int lineStartOffset = document.getLineStartOffset(lineNumber);
String lineTextBeforeCaret = document.getText(new TextRange(lineStartOffset, caretOffset));
if (element instanceof PsiComment && element.getTextOffset() < caretOffset) {
handleEnterInComment(element, file, editor);
} else if (lineTextBeforeCaret.startsWith("/*")) {
insertText(file, editor, " * \n ", 3);
}
return Result.Continue;
}
示例4: saveIndent
import com.intellij.openapi.editor.Document; //导入方法依赖的package包/类
private static void saveIndent(AnswerPlaceholder placeholder, CCState state, boolean visible) {
Document document = state.getEditor().getDocument();
int offset = placeholder.getOffset();
int lineNumber = document.getLineNumber(offset);
int nonSpaceCharOffset = DocumentUtil.getFirstNonSpaceCharOffset(document, lineNumber);
int newOffset = offset;
int endOffset = offset + placeholder.getRealLength();
if (!visible && nonSpaceCharOffset == offset) {
newOffset = document.getLineStartOffset(lineNumber);
}
if (visible) {
newOffset = DocumentUtil.getFirstNonSpaceCharOffset(document, offset, endOffset);
}
placeholder.setOffset(newOffset);
int delta = offset - newOffset;
placeholder.setPossibleAnswer(document.getText(TextRange.create(newOffset, newOffset + delta + placeholder.getRealLength())));
String oldTaskText = placeholder.getTaskText();
if (delta >= 0) {
placeholder.setTaskText(StringUtil.repeat(" ", delta) + oldTaskText);
}
else {
String newTaskText = oldTaskText.substring(Math.abs(delta));
placeholder.setTaskText(newTaskText);
}
}
示例5: getCurrentWords
import com.intellij.openapi.editor.Document; //导入方法依赖的package包/类
private String getCurrentWords(Editor editor) {
Document document = editor.getDocument();
CaretModel caretModel = editor.getCaretModel();
int caretOffset = caretModel.getOffset();
int lineNum = document.getLineNumber(caretOffset);
int lineStartOffset = document.getLineStartOffset(lineNum);
int lineEndOffset = document.getLineEndOffset(lineNum);
String lineContent = document.getText(new TextRange(lineStartOffset, lineEndOffset));
char[] chars = lineContent.toCharArray();
int start = 0, end = 0, cursor = caretOffset - lineStartOffset;
if (!Character.isLetter(chars[cursor])) {
return null;
}
for (int ptr = cursor; ptr >= 0; ptr--) {
if (!Character.isLetter(chars[ptr])) {
start = ptr + 1;
break;
}
}
int lastLetter = 0;
for (int ptr = cursor; ptr < lineEndOffset - lineStartOffset; ptr++) {
lastLetter = ptr;
if (!Character.isLetter(chars[ptr])) {
end = ptr;
break;
}
}
if (end == 0) {
end = lastLetter + 1;
}
return new String(chars, start, end - start);
}
示例6: getCurrentWords
import com.intellij.openapi.editor.Document; //导入方法依赖的package包/类
public String getCurrentWords(Editor editor) {
Document document = editor.getDocument();
CaretModel caretModel = editor.getCaretModel();
int caretOffset = caretModel.getOffset();
int lineNum = document.getLineNumber(caretOffset);
int lineStartOffset = document.getLineStartOffset(lineNum);
int lineEndOffset = document.getLineEndOffset(lineNum);
String lineContent = document.getText(new TextRange(lineStartOffset, lineEndOffset));
char[] chars = lineContent.toCharArray();
int start = 0, end = 0, cursor = caretOffset - lineStartOffset;
if (!Character.isLetter(chars[cursor])) {
Logger.warn("Caret not in a word");
return null;
}
for (int ptr = cursor; ptr >= 0; ptr--) {
if (!Character.isLetter(chars[ptr])) {
start = ptr + 1;
break;
}
}
int lastLetter = 0;
for (int ptr = cursor; ptr < lineEndOffset - lineStartOffset; ptr++) {
lastLetter = ptr;
if (!Character.isLetter(chars[ptr])) {
end = ptr;
break;
}
}
if (end == 0) {
end = lastLetter + 1;
}
String ret = new String(chars, start, end-start);
Logger.info("Selected words: " + ret);
return ret;
}