天天看點

如何添加Notepad++自定義文法着色(高亮)檔案?

先大緻看一下Notepad++的文法着色檔案内容是怎樣的,這裡以smali語言(apk反編譯後産生的類檔案所使用語言)的文法着色檔案為例:

<NotepadPlus>
  <UserLang name="smali" ext="smali">
    <Settings>
      <Global caseIgnored="no" />
    </Settings>
    <KeywordLists>
      <Keywords name="Delimiters"></Keywords>
      <Keywords name="Folder+"></Keywords>
      <Keywords name="Folder-"></Keywords>
      <Keywords name="Operators">' ! " ( ) , ; : @ [ ] { }</Keywords>
      <Keywords name="Comment">0#</Keywords>
      <Keywords name="Words1">move move/from16 move/16 move-wide move-wide/from16 move-wide/16 move-object move-object/from16 move-object/16 move-result move-result-wide move-result-object move-exception return-void return return-wide return-object const/4 const/16 const const/high16 const-wide/16 const-wide/32 const-wide const-wide/high16 const-string const-string/jumbo const-class monitor-enter monitor-exit check-cast instance-of array-length new-instance new-array filled-new-array filled-new-array/range fill-array-data throw goto goto/16 goto/32 packed-switch sparse-switch cmpl-float cmpg-float cmpl-double cmpg-double cmp-long if-eq if-ne if-lt if-ge if-gt if-le if-eqz if-nez if-ltz if-gez if-gtz if-lez aget aget-wide aget-object  aget-boolean aget-byte aget-char aget-short aget-short aput aput-wide aput-object aput-boolean aput-byte aput-char aput-short iget iget-wide iget-object iget-boolean iget-char iget-short iput iput-wide iput-object iput-boolean iput-byte iput-char iput-short sget sget-wide sgetobject sget-boolean sget-byte sget-char sget-short sput sput-wide sput-object sput-boolean sput-byte sput-char sput-short invoke-virtual invoke-super invoke-direct invoke-static invoke-interface invoke-virtual/range invoke-super/range invoke-direct/range invoke-static/range invoke-interface/range neg-int not-int neg-long neg-float neg-double int-tolong int-tofloat int-to-double long-to-int long-to-float long-to-double float-to-int float-to-long double-to-double double-to-int double-to-long double-to-float int-to-byte int-to-char int-to-short add-int sub-int mul-int div-int rem-int and-int or-int xor-int shl-int shr-int ushr-int add-long sub-long mul-long div-long rem-long and-long or-long xor-long shl-long shr-long ushr-long add-float sub-float mul-float div-float rem-float add-double sub-double mul-double div-double rem-double add-int/2addr sub-int/2addr mul-int/2addr div-int/2addr rem-int/2addr and-int/2addr or-int/2addr xor-int/2addr shl-int/2addr shr-int/2addr usnhr-int/2addr add-long/2addr sub-long/2addr mul-long/2addr div-long/2addr rem-long/2addr and-long/2addr or-long/2addr xor-long/2addr shl-long/2addr shr-long/2addr ushr-long/2addr add-float/2addr sub-float/2addr mul-float/2addr div-float/2addr rem-float/2addr add-double/2addr mul-double/2addr div-double/2addr rem-double/2addr add-int/lit16 rsub-int mul-int/lit16 div-int/lit16 and-int.lit16 or-int/lit16 xor-int/lit16 and-int/lit8 mul-int/lit8 div-int/lit8</Keywords>
      <Keywords name="Words2">.method .annotation .end  .line .prologue .implements .super .class .source  .locals .parameter .field .local .restart</Keywords>
      <Keywords name="Words3">public annotation method protected static final field private synthetic local</Keywords>
      <Keywords name="Words4">Z V I F</Keywords>
    </KeywordLists>
    <Styles>
      <WordsStyle name="DEFAULT" styleID="11" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
      <WordsStyle name="FOLDEROPEN" styleID="12" fgColor="FF0000" bgColor="FFFFFF" fontName="" fontStyle="0" />
      <WordsStyle name="FOLDERCLOSE" styleID="13" fgColor="FF0000" bgColor="FFFFFF" fontName="" fontStyle="0" />
      <WordsStyle name="KEYWORD1" styleID="5" fgColor="FF8040" bgColor="FFFFFF" fontName="Consolas" fontStyle="1" fontSize="10" />
      <WordsStyle name="KEYWORD2" styleID="6" fgColor="91A62D" bgColor="FFFFFF" fontName="Consolas" fontStyle="2" fontSize="10" />
      <WordsStyle name="KEYWORD3" styleID="7" fgColor="004080" bgColor="FFFFFF" fontName="Consolas" fontStyle="0" fontSize="10" />
      <WordsStyle name="KEYWORD4" styleID="8" fgColor="FF0000" bgColor="FFFFFF" fontName="Consolas" fontStyle="0" fontSize="10" />
      <WordsStyle name="COMMENT" styleID="1" fgColor="FF8080" bgColor="FFFFFF" fontName="Consolas" fontStyle="2" fontSize="10" />
      <WordsStyle name="COMMENT LINE" styleID="2" fgColor="008000" bgColor="FFFFFF" fontName="Consolas" fontStyle="2" fontSize="10" />
      <WordsStyle name="NUMBER" styleID="4" fgColor="D9006C" bgColor="FFFFFF" fontName="Consolas" fontStyle="0" fontSize="10" />
      <WordsStyle name="OPERATOR" styleID="10" fgColor="008040" bgColor="FFFFFF" fontName="" fontStyle="0" />
      <WordsStyle name="DELIMINER1" styleID="14" fgColor="AF2BFF" bgColor="FFFFFF" fontName="" fontStyle="0" />
      <WordsStyle name="DELIMINER2" styleID="15" fgColor="AF2BFF" bgColor="FFFFFF" fontName="" fontStyle="0" />
      <WordsStyle name="DELIMINER3" styleID="16" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
    </Styles>
  </UserLang>
</NotepadPlus>           

可以看到,文法着色檔案的内容還是非常簡單的,首先要指明使用者定義語言的名字和字尾名,然後是關鍵詞清單,不同種類的關鍵詞要有不同的name,然後是定義字型格式,Notepad++會自動把你所定義的字型格式配置設定給不同種類的關鍵詞。

好了,現在我們已經有了語言對應的文法着色檔案,那麼要如何添加到Notepad++裡呢?

網上别的很多地方是說将文法着色檔案放到這個目錄C:\Users\使用者名\AppData\Roaming\Notepad++ 裡,再啟動Notepad++,就自動添加完成了,但是這隻是針對安裝版的Notepad++的,我用的Notepad++剛好不用安裝,隻要解壓後就可以直接用了,這種Notepad++根本沒有上面那個路徑,這時添加的方法是:

在Notepad++菜單中選擇:語言-->Define your language,如下圖:

如何添加Notepad++自定義文法着色(高亮)檔案?

然後在出來的對話框中點選導入,選擇你的文法着色檔案,如下圖:

如何添加Notepad++自定義文法着色(高亮)檔案?

最後再自定義語言後,一定要記得重新開機Notepad++,這樣添加的文法着色檔案才能夠生效,效果如下:

如何添加Notepad++自定義文法着色(高亮)檔案?

繼續閱讀