插件开发教程2

778 阅读2分钟

本文和下篇文章介绍一下官方的样版项目里各个功能的用法。通过了解这些样版项目。能组合出我们想要的功能。官方样版项目地址:

github.com/JetBrains/i…

项目简介:

1.png


Action Basics 像我们介绍了

  1. IDEA中Action的概念
  2. 通过com.intellij.openapi.ui.Messages#showMessageDialog类来弹出对话框
  3. 通过继承com.intellij.openapi.actionSystem.ActionGroup实现动态新增Action

action.gif

action1.gif

动态生成Action

action2.gif

action3.gif


Comparing References Inspection为我们实现了一个有代码提示的功能插件的小例子。

在这个例子里我们可以了解IDEA中关于PSI的概念,简单来说IDEA把代码抽象成PSI代码树,通过PSI我们可以方便的操作,改写代码。

comparing_references_inspection.gif

该插件可以将 == 号替换为 equals


Conditional Operator Intention同上一个项目类似,一个通过PSI改写代码的小例子

conditional_operator_intention.gif

可以把三目运算符改写成if else 的结构


editor_basics 像我们介绍了操作编辑器相关的功能,包括插入光标,获取光标位置等

editor_basics1.gif 获取光标处的位置信息

editor_basics2.gif 新建一个光标,但是感觉这个项目有问题,创建多个光标以后输入文字的时候,会在文件开头增加editor_basics字符串。

editor_basics3.gif 替换选中的字符串为 editor_basics


Facet Basics提供了新增Facet种类的例子。

IDEA的Facet功能我基本没怎么用过,大概是告诉IDEA你的项目用了什么框架,IDEA会给你做出一些优化吧。

facet_basics.gif


Framework Basics新增了Java下Framework的类别

framework_basics.gif


Inspection Basics 新增一个IDEA中的Inspection,这个Inspection在官网的定义是这样的

Inspections are built-in static code analysis tools that help you find probable bugs, locate dead code, detect performance issues, and improve the overall code structure.

感觉自己开发插件的话也不怎么用这个功能吧

inspection_basics.gif


Kotlin Demo 没接触过kotlin


Live Templates 像我们介绍了 live templates怎么开发的。

在IDEA中自带了很多live template

2.png

我常用的有sout ,itar ,iter等等,也会自己写一些live template。

Live Templates这个项目有两个功能

  1. 快速创建超链接
  2. 选择字符串后,按下ctrl + alt +T 触发,会变成大写字母开头(这里用到了IDEA live template中的SELECTION的概念)

live_templates.gif


Max Opened Projects 像我们介绍了通过ProjectManagerListener监控打开的窗口数,大于3个则会显示一个提示框如下

3.png

我们通过这个项目可以学习IDEA是怎么管理工程窗口的。


Module 新增Module功能

module.gif


Product Specific - PyCharm Sample 没接触过Python


剩下的项目,下篇继续写 插件开发教程1 插件开发教程3