How do I create my custom "User-Defined" language in Notepad++?

In Notepad++ there is a menu option: Language->"User-Defined".

How do I customize that? What are capabilities of such option?

Can I highlight date/time? Can I highlight 21-29th symbols in the lines? Can I use RegExp?


Solution 1:

You can define your language as you wish (and make a new programming language!), but the most convenient way is to import an XML document that defines the whole configuration. An XML file for this purpose can be downloaded from here: http://www.mediafire.com/download/qv84x0wjwn816d6/userDefineLang.xml

Then you have to define this file using your own syntax as follows:

<?xml version="1.0" encoding="Windows-1252" ?>
<NotepadPlus>
    <UserLang name="(name your language here e.g.P++) " ext="java">
        <Settings>
          <Global caseIgnored="no" />
          <TreatAsSymbol comment="no" commentLine="no"/>
          <Prefix words1="no" words2="no" words3="yes" words4="yes"/>
       </Settings>
        <KeywordLists>
            <Keywords name="Folder+">{</Keywords>
            <Keywords name="Folder-">}</Keywords>
            <Keywords name="Operators">- ( ) * , . / : ? @ [ ] + =</Keywords>
            <Keywords name="Comment">//</Keywords>
            <Keywords name="Words1"></Keywords>
            <Keywords name="Words2"></Keywords>
            <Keywords name="Words3">instanceof assert if else switch case default break goto return for while do continue new throw throws try catch finally this super extends implements import true false null</Keywords>
            <Keywords name="Words4">capsule design package transient strictfp void char short int long double float const static volatile byte boolean class interface native private protected public final abstract synchronized enum</Keywords>
        </KeywordLists>
        <Styles>
            <WordsStyle name="DEFAULT" styleID="11" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="9" />
            <WordsStyle name="FOLDEROPEN" styleID="12" fgColor="808040" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="14" keywordClass="Folder+"/>
            <WordsStyle name="FOLDERCLOSE" styleID="13" fgColor="808040" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="14" keywordClass="Folder-" />            
            <WordsStyle name="KEYWORD3" styleID="7" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" keywordClass="Words3"/>
            <WordsStyle name="KEYWORD4" styleID="8" fgColor="8000FF" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" keywordClass="Words4"/>/>
            <WordsStyle name="COMMENT" styleID="1" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" keywordClass="Comment"/>
            <WordsStyle name="COMMENT LINE" styleID="2" fgColor="008000" bgColor="FFFFFF" fontName="Comic Sans MS" fontStyle="0" fontSize="" keywordClass="Comment"/>
            <WordsStyle name="NUMBER" styleID="4" fgColor="FF0000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
            <WordsStyle name="OPERATOR" styleID="10" fgColor="804000" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" />
        </Styles>
    </UserLang>
</NotepadPlus>

Then you would see your language in the language tab.