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

簡介

本篇博客主要是介紹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 的插件的相關的類和方法,儲存下足夠的知識開啓後續的旅程吧,內容持續加入中,敬請期待~

學完了內容後,多回顧多思考,繼續後續內容

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章