IntelliJ IDEA/Andro Studio Plugin 替换选中字符串
来源:互联网 发布:手机图像对比软件 编辑:程序博客网 时间:2024/06/07 21:33
package test;import com.intellij.openapi.actionSystem.AnAction;import com.intellij.openapi.actionSystem.AnActionEvent;import com.intellij.openapi.actionSystem.CommonDataKeys;import com.intellij.openapi.actionSystem.PlatformDataKeys;import com.intellij.openapi.command.WriteCommandAction;import com.intellij.openapi.editor.*;import com.intellij.openapi.project.Project;import com.intellij.openapi.ui.Messages;import com.intellij.openapi.util.TextRange;import org.apache.http.util.TextUtils;/** * Created by Administrator on 2017/4/27. */public class ReplaceCtrID extends AnAction { @Override public void actionPerformed(AnActionEvent event) { Editor mEditor = event.getData(PlatformDataKeys.EDITOR); final Project project = event.getRequiredData(CommonDataKeys.PROJECT); if (null == mEditor) { return; } SelectionModel model = mEditor.getSelectionModel(); String selectedText = model.getSelectedText(); if (TextUtils.isEmpty(selectedText)) { selectedText = getCurrentWords(mEditor); if (TextUtils.isEmpty(selectedText)) { return; } } final Document document = mEditor.getDocument(); String queryText = strip(addBlanks(selectedText)); final int start = model.getSelectionStart(); final int end = model.getSelectionEnd(); Runnable runnable = new Runnable() { @Override public void run() { document.replaceString(start, end, "1111111"); } }; //Making the replacement WriteCommandAction.runWriteCommandAction(project, runnable); model.removeSelection(); /* Runnable r = ()-> EditorModificationUtil.deleteSelectedText(mEditor); WriteCommandAction.runWriteCommandAction(mEditor.getProject(), r); r = ()-> EditorModificationUtil.insertStringAtCaret(mEditor,"111111"); WriteCommandAction.runWriteCommandAction(mEditor.getProject(), r);*/ //mEditor.getDocument().deleteString(0,1); } public String strip(String str) { return str.replaceAll("/\\*+", "") .replaceAll("\\*+/", "") .replaceAll("\\*", "") .replaceAll("//+", "") .replaceAll("\r\n", " ") .replaceAll("\\s+", " "); } public String addBlanks(String str) { String temp = str.replaceAll("_", " "); if (temp.equals(temp.toUpperCase())) { return temp; } String result = temp.replaceAll("([A-Z]+)", " $0"); return result; } 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])) { 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); return ret; }}
0 0
- IntelliJ IDEA/Andro Studio Plugin 替换选中字符串
- Intellij IDEA MyBatis plugin Crack
- Android Studio : Intellij idea
- IntelliJ IDEA Plugin中文开发文档
- Intellij Idea 14 配置 go-lang-plugin
- IntelliJ Idea Mybatis Plugin插件破解
- IntelliJ Idea Mybatis Plugin 安装及破解
- Intellij IDEA Plugin 下载与安装
- intellij-idea-plugin-(插件开发资料)
- IntelliJ Idea Mybatis Plugin插件破解
- IntelliJ IDEA MyBatis-Plugin插件的使用
- intellij idea安装thrift support plugin后报错
- Intellij IDEA Mybatis plugin插件破解安装
- ubuntu16 intellij idea install lombok plugin
- Intellij IDEA 安装破解Mybatis Plugin
- IntelliJ IDEA mybatis plugin 安装破解教程
- Intellij IDEA Mybatis plugin插件破解安装
- IntelliJ IDEA 2016.1.2插件(选中内容首尾添加字符串),同时适用于PhpStrom,WebStorm
- Linux打卡Day6-磁盘与分区
- 报头压缩-ROHC报文/校验/编码
- 杭电1002(大数A+B) 之 A + B Problem II
- 【机器学习】基于人工鱼群算法的非线性函数寻优
- Cocos 资料大全 下载链接地址
- IntelliJ IDEA/Andro Studio Plugin 替换选中字符串
- 半角JS
- 网页文章列表分页码制作
- Android Studio 编译 cocos creator本地应用
- Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.$conforms()Lscala/Predef$$less
- MAC, Centos 安装tensorflow。
- ThumbnailatorDemo 图片处理
- JavaScript学习笔记10-函数中调用其他函数
- 全景拼接