notepad++自定义语言
2017-04-13 本文已影响185人
xigua1234
1.Notepad plus与语言相关的配置文件主要有:
langs.xml :
所有支持的语言
langs.model.xml :
跟langs.xml的内容一样,大概是备份文件吧
r语言为例,说明其格式(我删掉了很多关键词)
<Language name="r" ext="r s splus" commentLine="#">
<Keywords name="instre1">if else repeat while function for in next break TRUE FALSE NULL NA Inf NaN</Keywords>
<Keywords name="instre2">abbreviate abline</Keywords>
<Keywords name="type1">acme aids</Keywords>
</Language>
userDefineLang.xml :
用户自定义文件
- 1.如userDefineLang_ANSYS.xml是ansys语言定义
- 2.可以在notepad++的官网下载,也可自己定义生成(GUI菜单:语言-自定义语言格式)
stylers.xml和stylers.model.xml:
默认的主题文件,其他的主题文件在themes里,每种语言的格式
<LexerType name="r" desc="r" ext="">
<WordsStyle name="DEFAULT" styleID="0" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
<WordsStyle name="COMMENT" styleID="1" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
<WordsStyle name="INSTRUCTION WORD" styleID="2" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" keywordClass="instre1" />
<WordsStyle name="BASE WORD" styleID="3" fgColor="8000FF" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" keywordClass="instre2" />
<WordsStyle name="KEYWORD" styleID="4" fgColor="0080FF" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" keywordClass="type1" />
<WordsStyle name="NUMBER" styleID="5" fgColor="FF8000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
<WordsStyle name="STRING" styleID="6" fgColor="808080" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
<WordsStyle name="STRING2" styleID="7" fgColor="808080" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
<WordsStyle name="OPERATOR" styleID="8" fgColor="000080" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" />
<WordsStyle name="INFIX" styleID="10" fgColor="804000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
<WordsStyle name="IDENTIFIER" styleID="9" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
</LexerType>
2.代码提示、补全:
notepad++\plugins\APIs路径下的配置文件
3.代码自动完成
- 用quicktext插件,所有的自定义语言被看成一种,不能单独各自定义。这与notepad++自己的内部机制有关,不管安装什么插件都一样。他们并不能识别你是自定义的什么语言。
- 我试过zen.conding,snipptes,都没用的
-
间接实现:
notepad++里面不是有很多不用的语言吗?把里需要的语言定义成它!
步骤(以markdown伪装成makefile语言为例):
-
删除自定义的markdown语言
-
在GUI-设置-语言格式设置里,选定makefile,在左下方的自定义后缀名里加md MD
-
在langs.model.xml和langs.xml中的关键词修改成markdown的(实现了代码关键词的设置,用于自动补全和颜色高亮)
-
在notepad++\plugins\APIs路径下,仿照已存在的语言文件,定义函数名(用于自动补全)
-
在quicktext类似的插件里,定义makefile的代码替换。
注意:
- 我试过将上述提到的文件的makefile都替换成markdown,在GUI-语言里,依然是makefile,没有markdown
建议:
- 感觉,自己定义的语言只能被当成一种语言(只在代码替换时),不是很大的问题,担心冲突?
应该还好吧,毕竟我自定义的就ansys命令流(APDL),SAS,Markdown