【问题标题】:Print selection cursors index in JetBrains' IDEsJetBrains IDE 中的打印选择光标索引
【发布时间】:2019-02-12 15:42:08
【问题描述】:

当多选游标处于活动状态时,有没有办法访问游标的索引?

例子:

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

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

通过访问游标的索引,我可以很容易地把它变成

lo1rem
ip2sum
do3lor
si4t
am5et

【问题讨论】:

    标签: jetbrains-ide


    【解决方案1】:

    您可以通过简单地从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++;
                }
            });
        }
    }
    

    结果:

    【讨论】:

    • 作为一名开发人员,我喜欢您采用“自己构建”的方式,但我正在考虑 IDE 本身内置的工具线。我记得只能通过搜索和替换、RegEx 和文本操作快捷方式在 Sublime Text 上做到这一点。
    猜你喜欢
    • 2019-02-18
    • 2014-03-31
    • 1970-01-01
    • 1970-01-01
    • 2014-10-09
    • 1970-01-01
    • 1970-01-01
    • 2016-07-15
    • 2017-04-08
    相关资源
    最近更新 更多