jetbrains-ide - 在 JetBrains 的 IDE 中打印选择光标索引

标签 jetbrains-ide

当多个选择光标处于事件状态时,有没有办法访问光标的索引?

例子 :

假设我有以下文本,有 5 个光标

lo|rem
ip|sum
do|lor
si|t
am|et

通过访问游标的索引,我可以轻松地将其转换为
lo1rem
ip2sum
do3lor
si4t
am5et

最佳答案

您可以通过简单地迭代来自 getCaretModel().getAllCarets() 的每个插入符号/光标来使用插件来完成此操作。并插入运行索引。 getAllCarets()方法总是返回按视觉顺序排序的插入符号:

public class CaretIndexAction extends AnAction {
    public CaretIndexAction() {
        super("Insert Caret Index(es)");
    }

    public void actionPerformed(AnActionEvent event) {
        Editor editor = PlatformDataKeys.EDITOR.getData(event.getDataContext());
        Document doc = editor.getDocument();

        WriteCommandAction.runWriteCommandAction(event.getProject(), () -> {
            int i = 1;
            for (Caret c : editor.getCaretModel().getAllCarets()) {
                doc.replaceString(c.getSelectionStart(), c.getSelectionEnd(), String.valueOf(i));
                i++;
            }
        });
    }
}

结果:

enter image description here

关于jetbrains-ide - 在 JetBrains 的 IDE 中打印选择光标索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54653754/

相关文章:

javascript - php/phpstorm toggle 自动测试在不保存文件的情况下被触发

npm - WebStorm npm 脚本 : ng build --prod

python - 如何让DataSpell显示单元格的运行时间?

android - 无法通过 Android Studio 3.0 项目结构搜索依赖项

terminal - JetBrains IDE 嵌入式终端光标在使用箭头键(<- 和 ->)时消失

pycharm - PyCharm 中 Unresolved reference async/await

c# - JetBrains Rider C# | Windows 窗体用户界面

angular - IntelliJ 无法识别 Angular Material HTML 标签

android - Android Studio 中的 NDK 集成

java - IntelliJ IDEA定义的maven pom中的错误