Functionlist no longer working on .vb files
- 
 Since several days the functionlist panel is empty for vb files on Notepad++ 7.9.1. For other files its still working as usual. 
 I checked the functionlist folder and there is no vb.xml file available.
 How to get it work again on vb files?best regards 
 Diedrich
- 
 
- 
 @Ekopalypse 
 Thanks for the answer.
 But its still not working.
 I copied the 43 lines of vb-3.0.FL.xml to an empty file, renamed it to vb.xml and copied the file to the functionlist folder, where the other xml files are located.
 What did I wrong?best regards 
 Diedrich
- 
 Can you try this one? <?xml version="1.0" encoding="UTF-8" ?> <NotepadPlus> <functionList> <associationMap> <association langID="18" id="vb_function" /> <!-- L_VB --> </associationMap> <!-- [vb_function] --> <parser id="vb_function" displayName="Visual Basic (.NET|Script|for Applications)" commentExpr="(?m:((?<=').*?$)|((?i:REM)([\t ].*?)?$))"> <classRange mainExpr="(?s:(?<SCOPE>(?i:CLASS|TYPE)).*?(?i:END[\t ]\k<SCOPE>))" displayMode="node" > <className> <nameExpr expr="(?i:CLASS|TYPE)[\t ]+(?:[A-Za-z_][\w]*\b)(?:.*?[\r\n])" /> <nameExpr expr="[\t ]+(?:[A-Za-z_][\w]*\b)" /> <nameExpr expr="[A-Za-z_][\w]*" /> </className> <function mainExpr="(?m:^[\t ]*(?i:(?:(?:PRIVATE|PROTECTED|PUBLIC)[\t ]+)?(?:STATIC[\t ]+)?(?:SUB|FUNCTION|PROPERTY)).*?(?:\(|$))" > <functionName> <funcNameExpr expr="(?i:(?:(?:PRIVATE|PROTECTED|PUBLIC)[\t ]+)?(?:STATIC[\t ]+)?(?:SUB|FUNCTION|PROPERTY)).*?(?:\(|$)"/> <funcNameExpr expr="(?i:(?:SUB|FUNCTION|PROPERTY)).*?(?:\(|$)"/> <funcNameExpr expr="[A-Za-z_][\w]*(?=[\t ]*\()"/> </functionName> </function> </classRange> <function mainExpr="^[\t ]*(?i:(?:(?:PRIVATE|PROTECTED|PUBLIC)[\t ]+)?(?:STATIC[\t ]+)?(?:SUB|FUNCTION|PROPERTY))[\t ].*?[A-Za-z_][\w]*(?:[\t ]*\(|$)" displayMode="$functionName"> <functionName> <nameExpr expr="(?i:(?:(?:PRIVATE|PROTECTED|PUBLIC)[\t ]+)?(?:STATIC[\t ]+)?(?:SUB|FUNCTION|PROPERTY))[\t ].*?[A-Za-z_][\w]*(?:[\t ]*\(|$)"/> <nameExpr expr="(?i:(?:SUB|FUNCTION|PROPERTY))[\t ].*?[A-Za-z_][\w]*(?:[\t ]*\(|$)"/> <nameExpr expr="[A-Za-z_][\w]*(?=[\t ]*\()"/> </functionName> </function> </parser> <!-- [] --> </functionList> </NotepadPlus>
- 
 @Diedrich-Hesmer said in Functionlist no longer working on .vb files: What did I wrong? Did you remember to exit all copies of Notepad++ and restart Notepad++ after putting that file in the right location? Because Notepad++ won’t re-read the configuration files until you restart. Are you sure it got saved as vb.xmland notvb.xml.txt?
- 
 It looks like the parser stag was removed. I’m currently trying
 to find out when this happened.
- 
 Seems this has been introduce with version 7.9.1. 
- 
 Correct, the new syntax doesn’t include the <parsers>tag wrapped around the<parser>tag anymore.The file you posted works: 
  Hmm, looks like the documentation for Function List and especially function list section of config files could use slight improvement to make it more clear that you don’t need the <parsers>...</parsers>with v7.9.1 and newer.
- 
 The new solution seems not cover lexer plugins. 
 I was trying to use<association id= "v.xml" langID= "86"/>or <association id= "v.xml" userDefinedLangName="VLang"/>But both failed. Technically lexer plugins do get an unique ID 
 assigned but this varies depending how much lexer plugins you are using.
 So … any ideas?
 I assume I have to open an issue.
- 
 Did you remember to also update the overrideMap.xml? For default builtin lexers, the overrideMap defaults to a reasonable value (shown in comments); but for any others (like UDL and presumably lexer plugins), you have to update the overrideMap.
- 
 I use this file and it works: <?xml version="1.0" encoding="UTF-8" ?> <!-- ==========================================================================\ | | To learn how to make your own language parser, please check the following | link: | https://npp-user-manual.org/docs/function-list/ | \=========================================================================== --> <NotepadPlus> <functionList> <!-- ================================================== [ VB/VBS/VBA ] --> <parser displayName="Visual Basic (.NET|Script|for Applications)" id ="vb_function" commentExpr="(?m:((?<=').*?$|((?i:REM)([\t ].*?)?$))" > <classRange mainExpr="(?s:(?<SCOPE>(?i:CLASS|TYPE)).*?(?i:END[\t ]\k<SCOPE>))" displayMode="node" > <className> <nameExpr expr="(?i:CLASS|TYPE)[\t ]+(?:[A-Za-z_][\w]*\b)(?:.*?[\r\n])" /> <nameExpr expr="[\t ]+(?:[A-Za-z_][\w]*\b)" /> <nameExpr expr="[A-Za-z_][\w]*" /> </className> <function mainExpr="(?m:^[\t ]*(?i:(?:(?:PUBLIC|PRIVATE|PROTECTED|FRIEND|PROTECTED FRIEND)[\t ]+)?(?:(?:STATIC|SHARED|SHADOWS|OVERRIDABLE|OVERRIDES|READONLY|WRITEONLY)[\t ]+)?(?:SUB|FUNCTION|PROPERTY)).*?(?:\(|$))" > <functionName> <funcNameExpr expr="(?i:(?:(?:PUBLIC|PRIVATE|PROTECTED|FRIEND|PROTECTED FRIEND)[\t ]+)?(?:STATIC[\t ]+)?(?:SUB|FUNCTION|PROPERTY)).*?(?:\(|$)"/> <funcNameExpr expr="(?i:(?:SUB|FUNCTION|PROPERTY)).*?(?:\(|$)"/> <funcNameExpr expr="(?i:(?:GET|LET|SET)[\t ]+)?[A-Za-z_][\w]*(?=[\t ]*(?:\(|$))"/> </functionName> </function> </classRange> <function mainExpr="^[\t ]*(?i:(?:(?:PUBLIC|PRIVATE|PROTECTED|FRIEND|PROTECTED FRIEND)[\t ]+)?(?:(?:STATIC|(?:DECLARE(?:[\t ]+(ANSI|UNICODE|AUTO))?))[\t ]+)?(?:SUB|FUNCTION|PROPERTY)).*?(?:\(|$)" displayMode="$functionName" > <functionName> <nameExpr expr="(?i:(?:(?:PUBLIC|PRIVATE|PROTECTED|FRIEND|PROTECTED FRIEND)[\t ]+)?(?:(?:STATIC|(?:DECLARE(?:[\t ]+(?:ANSI|UNICODE|AUTO))?))[\t ]+)?(?:SUB|FUNCTION|PROPERTY)).*?(?:\(|$)"/> <nameExpr expr="(?i:(?:SUB|FUNCTION|PROPERTY)).*?(?:\(|$)"/> <nameExpr expr="(?i:(?:GET|LET|SET)[\t ]+)?[A-Za-z_][\w]*(?i:[\t ]+(LIB|ALIAS)[\t ]+[\w"\.]+)*(?=[\t ]*(?:\(|$))"/> </functionName> </function> </parser> </functionList> </NotepadPlus>
- 
 Sorry, I should have clarified that these changes were made in overrideMap.xml. 
- 
 These overrideMap customizations work for me <!-- ==================== Peter's Customizations ============================ --> <association id= "my_perl.xml" langID= "21" /> <association id= "udl_markdown.xml" userDefinedLangName="Markdown"/> <association id= "udl_cadence.xml" userDefinedLangName="Cadence"/> <!-- ======================================================================== -->The first overrides where the default perl (#21) file is named. The other two are for UDL maps. So what you showed does look like the syntax you should use. Maybe a bug in the implementation that doesn’t allow for plugin-based lexers to work with functionList? 
- 
 @PeterJones said in Functionlist no longer working on .vb files: Maybe a bug in the implementation that doesn’t allow for plugin-based lexers to work with functionList? I am currently assuming this is the case, but am struggling to really understand the code. Will have to check this further. 
- 
 Issue, perhaps better called question, 9519 opened. 
- 
 @Ekopalypse 
 I’m back to normal. Thanks for your help, this copy did it.best regards 
 Diedrich


