blu3mania / npp-papyrus

Notepad++ plugin to provide Papyrus scripting language support to Notepad++, such as syntax highlighting with automatic recognition of class names/functions/properties, keywords matching, and hyperlinks to referenced scripts. It also comes with a compiler that can provide compilation errors in a separate list window, as well as inline annotation and indication where errors are reported, plus support anonymization of compiled .pex files.
GNU General Public License v3.0
27 stars 7 forks source link

Function List not showing arrays #56

Closed dizietsma closed 11 months ago

dizietsma commented 11 months ago

The function list doesn't seem to show functions that return arrays, such as: Form[] Function dz_make_inventory_array(Actor NPCref) or String[] Function dz_make_strings_array(Form[] array,Int array_length) When I remove the [] and save the document then the function shows up in the list.

diziet

blu3mania commented 11 months ago

I tried your examples and they worked fine for me. As I explained in https://github.com/blu3mania/npp-papyrus/blob/main/Installation.md, this functionList configuration was not created by me, but from CreationKit: https://www.creationkit.com/index.php?title=Notepad%2B%2B_Setup#Papyrus_Function_List_for_Notepad.2B.2B

Also, the regex used is:

^[\t ]*([\w\[\]]+[\t ]+)?(function|event)[\t ]+\w+[\t ]*\(.*?\)

And you can use https://regex101.com/ to test it (make sure you enable case insensitive flag)

dizietsma commented 11 months ago

That's fair enough regarding the regex, however I can't get it to match anything in https://regex101.com:) I installed the function list by copying the 'overridemap.xm'l and the 'papyrus script.xml' files to my appdata\roaming\notepad++\functionlist folder, is that correct? Just to show this is what I have: https://i.imgur.com/NIQsPTO.png this isn't a big problem and I get that you don't need to support someone else's regex!

diziet

blu3mania commented 11 months ago

No, it's not. You better use the menu to do it. Read the installation guide for more details. If you just overwrote Notepad++'s default overrideMap.xml, I am not sure if it had other language's config...

As for https://regex101.com/, you need to make sure you enable case insensitive flag as I mentioned. Otherwise you will need to convert your code to all lowercase.

dizietsma commented 11 months ago

That's odd, I used the menu from the papyrus plugin and it just seemed to copy over the Papyrus Script.xml file in appdata\roaming\notepad++\functionlist the modified date of overridemap.xml still says 14/11/2023:) and dosn't seem to have changed. I remember that earlier this month I had to edit the overridemap.xml with the langid of papyrus in my install and that edit is still there. But now the array functions are showing so groovy! As for regex101.com I didn't realise I had to write in the whole function declaration, I was just trying to match against the phrase 'Form Function' or 'Form[] Function' as opposed to 'Form Function somename()'

Thanks for your time anyway:)

diziet

blu3mania commented 11 months ago

You're welcome. As such, I am closing this issue.