【Intellij Idea 插件 番外】Api讲解(类、方法等)

IntelliJ IDEA插件开发指南

简介

本篇博客主要是介绍Intellij Idea 插件中比较常用的类和方法。俗话说的好,工欲善其事,必先利其器。只有知道了类和方法的功能才能更好的去写(此处会一直跟进补充,方便当做资料查询,如果想继续了解如何编写插件,可跳过本章节)。如有错误,请在留言中指正,谢谢。 系列汇总地址


类和方法简介

操作代码相关

说明:此部分介绍的是插件开发中对代码的检测、修改、读取等相关的类和方法

  1. PsiIfStatement

    • 说明:此类表示的是Java中的if语句和else if语句;

    • 举例说明:

      //if的情况
      if(a>3){
        xx
      }
      //else if的情况
      else if(a>3){
      }

    上面的内容包含两个if语句,对其进行读取的时候就是PsiIfStatement类型

    • 使用场景:
      当你对代码行进行检测的时候,需要知道那些是if判断的时候,可以采用以下代码:

      PsiElement currentCode;
       if(currentCode instanceOf PsiIfStatement){
        //todo 可以将currentCode当做if 语句处理了
       }

  2. PsiBlockStatement

    • 说明:此类表示的是Java中的代码块语句(使用{}包裹的内容);

    • 举例说明:

      //if的情况
      if(a>3){
        xx
      }
      //else if的情况
      else if(a>3){
          xx
      }

      上面的这个例子和刚才的一样,此处’xx’的内容以及’{} ‘都是PsiBlockStatement内的内容.

    • 使用场景:
      对于你检测方法、if、else if、else 、while、do while时他们的代码大都由{}包裹此时,可以先获取PsiBlockStatement,然后获取其内部的代码块的每行代码,从而可以获取所需内容,代码如下:

      //statement 是PsiIfStatement 类型的,getThenBranch获取if分支内容
      PsiBlockStatement blockStatement = (PsiBlockStatement) statement.getThenBranch();
      //获取if内的代码块
      PsiCodeBlock psiCodeBlock = blockStatement.getCodeBlock();
      //获取代码块内的内容
      PsiStatement[] codes = psiCodeBlock.getStatements();
      //此处codes就是代码块内的每行代码了(此处注意,这里的行不是单纯的一行,应该是一句代码,参考if语句理解)

      此时你就可以根据你自身的逻辑去对代码块的内容做出相应的处理了。


  3. PsiStatement

    • 说明:此类表示的是Java中的代码行;

    • 举例说明:

      //这是if语句
      if(a>3){
        xx
      }
      //这个是普通的语句
      String a="xx";
      

      上面这是两种不同的语句,但它们的基类都是PsiStatement

    • 使用场景:
      当你判断是否是java代码行时,可以判断是否是此类型(除了是代码行以外还有其他的类型,所以可以用此判断):

       PsiElement currentCode;
       if(currentCode instanceOf PsiStatement){
        //todo 可以将currentCode当做语句处理了
       }

  4. PsiJavaToken

    • 说明:此类表示的是Java中的标识,形如!==={}

    • 使用场景:
      当你判断比较类型或者代码块的{,代码如下:

      PsiJavaToken psiJavaToken;
      //此处获取上面标识的文字内容
      String token=psiJavaToken.getText();
      if"{".equals(token)){
       //psiJavaToken 可以当做{ 处理
      }


总结

至此已经基本了解了Intellij Idea 的插件的相关的类和方法,储存下足够的知识开启后续的旅程吧,内容持续加入中,敬请期待~

学完了内容后,多回顾多思考,继续后续内容

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值