当前位置: 首页 > news >正文

wordpress如何关闭自动更新/时空seo助手

wordpress如何关闭自动更新,时空seo助手,抖音免费推广网站,聊天网站建设2019独角兽企业重金招聘Python工程师标准>>> intellij idea 提供了openApi,通过openApi我们可以自己开发插件,提高工作效率。这边直接贴个链接,可以搭个入门的demo;http://www.jianshu.com/p/2427e4cfd3e9,…

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

    intellij idea 提供了openApi,通过openApi我们可以自己开发插件,提高工作效率。这边直接贴个链接,可以搭个入门的demo;http://www.jianshu.com/p/2427e4cfd3e9,也可以自己网上找,文章比较多。。本人用的intellij idea 2017,jdk需要1.8以上。

    第一步:new project,选择IntelliJ Plaltform Plugin 如图,

093327_SrNm_2526698.png

然后点击下一步,填写项目名,点击finish,项目结构如下:

094826_gnsf_2526698.png

plugin.xml是插件的配置文件;

第二步:鼠标点击src文件夹,然后Alt+Insert 快捷键,选择action,如图:

095350_BiuU_2526698.png

然后填写相关信息,这边分组到JavaGenerateGroup1,快捷键为Ctrl+Shift+X(即此快捷键执行这个action的代码)

095652_rVA5_2526698.png

点击ok后,将创建名为GoToMapperAction的java类,以及plugin.xml中出现对应配置信息,如下图:

101711_3r0c_2526698.png

101732_WF8z_2526698.png

到此,执行快捷键Ctrl+Shift+X,就会执行actionPerformed方法了;接下来就是写具体逻辑代码了;

第三步:方法actionPerformed 中的参数AnActionEvent很有用,携带了交互的当前上下文信息,要检索活动project、选中的文件、编辑器中选中状态等IDE的当前状态信息,可以使用AnActionEvent.getData()方法。DataKeys类中定义了可以传递给此方法的不同数据键值;

1.获取方法名:

PsiElement psiElement = e.getData(PlatformDataKeys.PSI_ELEMENT);//鼠标所在的元素,这里就是方法
if (psiElement == null) {return;
}
String methodName = psiElement.toString().replace("PsiMethod:", "");//获取到方法名

2.获取方法所在的类名:

PsiElement psiElementParent = psiElement.getParent();//获取方法的父元素
if (psiElementParent == null) {return;
}
PsiFile containingFile = psiElementParent.getContainingFile();//获取到文件,这里是java类
String className = containingFile.getName();//获取到类名

3.到这里,我们已经获取到了类名,方法名,,那就可以确定对应的mybatis mapper文件的id=“方法名”的sql位置;我的项目中命名比较有规律,所以对应mapper文件的名称可以这样确定:

String mapperName ;
if (className.endsWith("Service.java")) {mapperName = className.replace("Service.java", "Mapper.xml");
}
else if (className.endsWith("Dao.java")) {mapperName = className.replace("Dao.java", "Mapper.xml");
}
else {return;
}

当然,还可以通过mapper的命名空间找到;

4.打开xml

Project project = e.getProject();
//查找名称为mapperName的文件
PsiFile[] files = PsiShortNamesCache.getInstance(project).getFilesByName(mapperName);
if (files.length == 1) {XmlFile xmlFile = (XmlFile) files[0];String xml = xmlFile.getDocument().getText();//获取mapper xml字符串//判断mapper是否存id="methodName"的sql,存在就打开对应的mapper xml//这里判断比较简单,不严谨。可以通过XmlFile遍历节点判断是否存在if (StringUtil.isNotEmpty(xml) && xml.contains("id=\"" + methodName + "\"")) {toMapper(project, methodName, files[0].getVirtualFile(), xml);}
}
/*** 进入mapper* @param project* @param methodName* @param mapperFile* @param xml*/
private void toMapper(Project project, String methodName, VirtualFile mapperFile, String xml) {//打开xml文件OpenFileDescriptor openFileDescriptor = new OpenFileDescriptor(project, mapperFile);Editor editor = FileEditorManager.getInstance(project).openTextEditor(openFileDescriptor, true);//获取sql所在的行数,这里用了比较笨的方法。api找了很久没找到有什么方法可以获取行号,希望有大神指点String[] split = xml.split("\n");int lineNumber = 0;for (int i = 0; i < split.length; i++) {String line = split[i];if (StringUtil.isNotEmpty(line) && line.contains(methodName)) {lineNumber = i;break;}}//定位到对应的sqlCaretModel caretModel = editor.getCaretModel();LogicalPosition logicalPosition = caretModel.getLogicalPosition();logicalPosition.leanForward(true);LogicalPosition logical = new LogicalPosition(lineNumber, logicalPosition.column);caretModel.moveToLogicalPosition(logical);SelectionModel selectionModel = editor.getSelectionModel();selectionModel.selectLineAtCaret();
}

5.至此,代码完成,现在可以测试下了,点击右上角运行,会打开一个新的idea进行调试

105725_9RZG_2526698.png

然后在新的idea中打开项目,把鼠标聚焦在你要找的方法中,然后快捷键Ctrl+Shift+X,跳到xml,这样就是成功了。

110752_8wd4_2526698.png

110812_aX34_2526698.png

6.发布,生成jar文件,然后就可以安装到idea使用了

112748_LEr5_2526698.png

 

最后:这里只是说明了大体逻辑,你还可以判断xml是否有这个sql,没有就自动创建一个tag等等,openapi有很多概念等等,大家可以自行百度或去官网查看文档。

下图是本人最近写的插件功能,只适用自己的项目,就不上代码了,更多有意思功能可以自己开发。

180619_8E79_2526698.png

欢迎加入qq群讨论:461964997

转载于:https://my.oschina.net/u/2526698/blog/1548929

http://www.jmfq.cn/news/4841821.html

相关文章:

  • 如何做网站呢/南昌百度推广公司
  • 温州做网站 掌熊号/最近国际时事热点事件
  • 最新设计网站大全/百度指数上多少就算热词
  • h5网站开发费用/友链之家
  • 建站网址平台/适合seo的网站
  • 服装行业网站开发/百度搜索风云榜排行榜
  • 上海网站建设 乐云seo/官网百度
  • 局域网内做网站/百度热线
  • 网站备案ip查询系统/企业产品推广策划方案
  • 怎么黑进网站后台/宁波seo公司推荐
  • 网上做兼职做网站/站长工具推荐
  • 洛阳bbs/优化软件seo排名
  • 成都市建设网扬尘监控网站/竞价推广方案
  • 网站建设必须注意的事项/营销网站案例
  • 网站制作营销型/株洲百度seo
  • 网站支付界面怎么做/中文搜索引擎大全
  • 怎样购买起名软件自己做网站/山东济南最新消息
  • 小程序云开发教程/百度seo排名推广
  • 宜宾建设网站/网络营销的含义特点
  • 做母婴网站/seo优化公司
  • 手机网站建设流程 知乎/拉新推广怎么快速拉人
  • 108社区找工作/seo咨询岳阳
  • 福建建设人才网/黄冈seo顾问
  • 做网站公司排名/营销网站建设方案
  • 比较简洁大方的网站/做网站推广的公司
  • 建设网站论坛/上海百度seo网站优化
  • 别人帮自己做网站有后门吗/网站结构优化
  • 官方网站下载官方版本/排名前50名免费的网站
  • 做网站要要多少钱/关键字挖掘爱站网
  • 做初中物理题目的网站/推广一次多少钱