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


Java Editor.getCaretModel方法代码示例

本文整理汇总了Java中com.intellij.openapi.editor.Editor.getCaretModel方法的典型用法代码示例。如果您正苦于以下问题:Java Editor.getCaretModel方法的具体用法?Java Editor.getCaretModel怎么用?Java Editor.getCaretModel使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.intellij.openapi.editor.Editor的用法示例。


在下文中一共展示了Editor.getCaretModel方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: actionPerformed

import com.intellij.openapi.editor.Editor; //导入方法依赖的package包/类
/**
 * Inserts the string generated by {@link #generateString()} at the caret(s) in the editor.
 *
 * @param event the performed action
 */
@Override
public final void actionPerformed(final AnActionEvent event) {
    final Editor editor = event.getData(CommonDataKeys.EDITOR);
    if (editor == null) {
        return;
    }
    final Project project = event.getData(CommonDataKeys.PROJECT);
    final Document document = editor.getDocument();
    final CaretModel caretModel = editor.getCaretModel();

    final Runnable replaceCaretSelections = () -> caretModel.getAllCarets().forEach(caret -> {
        final int start = caret.getSelectionStart();
        final int end = caret.getSelectionEnd();

        final String string = generateString();
        final int newEnd = start + string.length();

        document.replaceString(start, end, string);
        caret.setSelection(start, newEnd);
    });

    WriteCommandAction.runWriteCommandAction(project, replaceCaretSelections);
}
 
开发者ID:FWDekker,项目名称:intellij-randomness,代码行数:29,代码来源:DataInsertAction.java

示例2: handleInsert

import com.intellij.openapi.editor.Editor; //导入方法依赖的package包/类
@Override
public void handleInsert(final InsertionContext context) {
    if (element.getParent() instanceof FieldReference) {
        final Editor     editor     = context.getEditor();
        final CaretModel caretModel = editor.getCaretModel();
        final Document   document   = editor.getDocument();

        document.insertString(caretModel.getOffset(), "()");
        caretModel.moveCaretRelatively(1, 0, false, false, false);
    }
}
 
开发者ID:rentalhost,项目名称:laravel-insight,代码行数:12,代码来源:ScopeCompletionContributor.java

示例3: getCurrentWords

import com.intellij.openapi.editor.Editor; //导入方法依赖的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);
}
 
开发者ID:a483210,项目名称:GoogleTranslation,代码行数:37,代码来源:GoogleTranslation.java

示例4: getCurrentWords

import com.intellij.openapi.editor.Editor; //导入方法依赖的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;
}
 
开发者ID:BolexLiu,项目名称:ReciteWords,代码行数:40,代码来源:ReciteWords.java

示例5: actionPerformed

import com.intellij.openapi.editor.Editor; //导入方法依赖的package包/类
public void actionPerformed(AnActionEvent event) {
    SourcetrailOptions options = SourcetrailOptions.getInstance();
    String MESSAGE_SPLIT_STRING = ">>";
    VirtualFile vFile = event.getData(PlatformDataKeys.VIRTUAL_FILE);
    String fileName = vFile != null ? vFile.getPath() : null;
    LogicalPosition logicalPosition = new LogicalPosition(0,0);
    final Editor editor = event.getData(CommonDataKeys.EDITOR);
    if (editor != null)
    {
        CaretModel caretModel = editor.getCaretModel();
        if ( caretModel != null)
        {
            logicalPosition = caretModel.getLogicalPosition();
        }
    }

    String text = "setActiveToken" + MESSAGE_SPLIT_STRING +
            fileName + MESSAGE_SPLIT_STRING
            + (logicalPosition.line + 1) + MESSAGE_SPLIT_STRING + logicalPosition.column + "<EOM>";
    try
    {
        Socket socket = new Socket(options.getIp(), options.getSourcetrailPort());
        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
        writer.write(text);
        writer.flush();
        socket.close();
    }
    catch(Exception e)
    {
        String errorMsg =
                "No connection to a Sourcetrail instance\n\n Make sure Sourcetrail is running and the right address is used("
                        + options.getIp() + ":" + options.getSourcetrailPort() + ")";
        Messages.showMessageDialog(errorMsg, "SourcetrailPluginError", Messages.getErrorIcon());
        e.printStackTrace();
    }

    StatusBar statusbar = WindowManager.getInstance().getStatusBar(PlatformDataKeys.PROJECT.getData(event.getDataContext()));

    JBPopupFactory.getInstance()
            .createHtmlTextBalloonBuilder("Location sent to Sourcetrail", MessageType.INFO, null)
            .setFadeoutTime(3000)
            .createBalloon()
            .show(RelativePoint.getCenterOf(statusbar.getComponent()), Balloon.Position.atRight);

}
 
开发者ID:CoatiSoftware,项目名称:idea-sourcetrail,代码行数:46,代码来源:ActivateTokenAction.java


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