User-defined language with function list
-
Hello Npp community,
since version 7.9.x the functionList.xml doesn’t seem to work anymore.
Here is a simple language with only 3 commands for demonstration.
(Function, EndFunction, Print)<?xml version="1.0" encoding="UTF-8" ?> <NotepadPlus> <UserLang name="MyBasic" ext="myb" udlVersion="2.1"> <Settings> <Global caseIgnored="yes" allowFoldOfComments="no" foldCompact="no" forcePureLC="0" decimalSeparator="0" /> <Prefix Keywords1="no" Keywords2="no" Keywords3="no" Keywords4="no" Keywords5="no" Keywords6="no" Keywords7="no" Keywords8="no" /> </Settings> <KeywordLists> <Keywords name="Comments"></Keywords> <Keywords name="Numbers, prefix1"></Keywords> <Keywords name="Numbers, prefix2"></Keywords> <Keywords name="Numbers, extras1"></Keywords> <Keywords name="Numbers, extras2"></Keywords> <Keywords name="Numbers, suffix1"></Keywords> <Keywords name="Numbers, suffix2"></Keywords> <Keywords name="Numbers, range"></Keywords> <Keywords name="Operators1"></Keywords> <Keywords name="Operators2"></Keywords> <Keywords name="Folders in code1, open"></Keywords> <Keywords name="Folders in code1, middle"></Keywords> <Keywords name="Folders in code1, close"></Keywords> <Keywords name="Folders in code2, open"></Keywords> <Keywords name="Folders in code2, middle"></Keywords> <Keywords name="Folders in code2, close"></Keywords> <Keywords name="Folders in comment, open"></Keywords> <Keywords name="Folders in comment, middle"></Keywords> <Keywords name="Folders in comment, close"></Keywords> <Keywords name="Keywords1">Function
EndFunction
Print
</Keywords> <Keywords name="Keywords2"></Keywords> <Keywords name="Keywords3"></Keywords> <Keywords name="Keywords4"></Keywords> <Keywords name="Keywords5"></Keywords> <Keywords name="Keywords6"></Keywords> <Keywords name="Keywords7"></Keywords> <Keywords name="Keywords8"></Keywords> <Keywords name="Delimiters"></Keywords> </KeywordLists> <Styles> <WordsStyle name="DEFAULT" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="COMMENTS" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="LINE COMMENTS" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="NUMBERS" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="KEYWORDS1" fgColor="000080" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" /> <WordsStyle name="KEYWORDS2" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="KEYWORDS3" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="KEYWORDS4" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="KEYWORDS5" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="KEYWORDS6" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="KEYWORDS7" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="KEYWORDS8" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="OPERATORS" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="FOLDER IN CODE1" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="FOLDER IN CODE2" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="FOLDER IN COMMENT" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="DELIMITERS1" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="DELIMITERS2" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="DELIMITERS3" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="DELIMITERS4" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="DELIMITERS5" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="DELIMITERS6" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="DELIMITERS7" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="DELIMITERS8" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> </Styles> </UserLang> </NotepadPlus>What do I have to do now so that functions are displayed in the function list?
Greetings
-
See here.
-
Thanks @Ekopalypse!
I hadn’t seen the overrideMap.xml. -
Why is the functionList.xml
have been replaced?
I don’t see any great advantages in the new system. -
@Michael-Suther said in User-defined language with function list:
Why is the functionList.xml have been replaced?
I don’t see any great advantages in the new system.You don’t?
The obvious advantage is that before everything was in one file, and now…it’s not. -
@Michael-Suther said in User-defined language with function list:
Why is the functionList.xml
have been replaced?
I don’t see any great advantages in the new system.As with @Alan-Kilborn , I am surprised you don’t see the advantage.
See this anecdote, between Alice and Bob, with the old system:
Alice : I have this Function List for my cool GobbledyGoop UDL
Bob : Cool, how do I use it?
Alice : Okay, here’s a snippet. Go find a random place infunctionList.xmlto place it.
Bob : Okay
Alice : No, not there. It has to go in the<parsers>section.
Bob : Is here okay?
Alice : No, it has to be between the closing</parser>of one parser, and the opening<parser>of another.
Bob : Ah, okay. Is that all?
Alice : No, now you have to take this other snippet, and place it in the same file, but in the<associationMap>section
Bob : Got it.
Alice : No, you need to have both the userDefinedLanguageName row and a separate row for every extension that GobbledyGoop uses.
Bob : But doesn’t the GobbledyGoop UDL config already make the mapping from UDL to extension? I like following DRY/SPOT, after all.
Alice: Yes, but you still need it. Sorry, I didn’t design the system, I just use it.
Bob : Okay.
Alice : Now restart Notepad++
Bob : Cool, it’s working, thanks.Now compare that to with the new system:
Alice : I have this Function List for my cool GobbledyGoop UDL
Bob : Cool, how do I use it?
Alice : putGobbledyGoop.xmlin%AppData%\Notepad++\functionList\folder
Bob : done. Anything else?
Alice : yep, we have to tell Notepad++ where to look for that file.
Bob : Makes sense. How?
Alice : put this one<associationId>line in%AppData%\Notepad++\functionList\, right after the three example UDL rows near the end`
Bob : Done.
Alice : Now restart Notepad++
Bob : Wow! I can see the function list. Thanks for the help!Admittedly, I exaggerated. But the new system does make it easier to share function list definitions, IMO. And modularity makes maintenance less confusing. And not having to duplicate the extension-vs-UDL-name entries is a plus to me, too.
You are allowed your opinion, of course, but I see the advantages of splitting those up.
-
Cool. I wonder if Bob and Alice are going to become regular contributors here? :-)
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login