notepad++自定义语言

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容