Hi @seadoggie01!
Thanks for the heads up!
This is due to the incomplete parser. Currently With...EndWith blocks are not supported. Anything inside the block will fail, since i haven't added any rules to it yet. The reason is that EVERY rule needs to be copied with the small change, that ".property" is a valid syntax within that or child code blocks.
It is low priority, since With...EndWith is rarely seen used, but will be supported in the future at some point (depending on how urgent it is).
That's an interesting bug! From quick testing, the issue seems to be caused by the empty line in the remarks:
; Remarks .......: Use like: _Acro_DocBookmarkProperties($oBookmark) to get an array of values
;
; Default means values won't be changed.
My guess is some of my code is stuck in an infinite loop... I will look into it and fix it soon, since it can deadlock the extension.
"Legacy" documentation blocks was implemented quick, since I'm trying to move towards the more cross language familiar docBlock syntax, but that still does not mean the code should fail this spectacularly😅
>Developer: Reload Window
Should be your solution. It's not great, but faster than restarting the entire application 😉
Thank you for the kind words and the bug reporting! 😄
Edit:
found the line causing problems with the function documentation: https://github.com/genius257/vscode-autoit/blob/0f1bb89f8af77ee7a005d1d5a9da429e5f344700/server/src/autoit/docBlock/DocBlockFactory.ts#L84
It's my regular expression to test if the content matches the UDF documentation format. It causes catastrophic backtracking, never getting past that regex check. Prevention in JS seems to time a new worker, child-process or a regex library, from a quick google search...
I don't want to do any of that currently, so I've updated the regex, so it no longer has issues with your example, and if my test parses, I will push the change, and hope this issue does not come back 😜