Function List for Simatic
-
Thanks!
In your example the function name (
%_N_WAITE_CH2_FREE_SPF
) does not end with a colon but in your parser you end the main-expression with a colon (^([%_N_]*[_A-Za-z])\w*:
).
Which one is correct?
Do you have a link to a Siemens document that describes the syntax of the numeric control language? -
The code did not work. http://imgur.com/rQLGnfL Here you can see that userDefinedLangName is the same name as the entry in the language menu.
Without the colon is the correct version. -
Here’s an update …
<association id="NC_function" userDefinedLangName="NC 840dsl" /> <association id="NC_function" ext=".arc" /> <parser id="NC_function" displayName="NC 840dsl" commentExpr="(?m-s:;.*?$)"> <function mainExpr="^%_N_\K[A-Za-z_]\w*" /> </parser>
-
First of all, thanks a lot for your help and time MAPJe71
I found this document for the syntax. https://support.industry.siemens.com/cs/document/109248664/sinumerik-840d-sl-job-planning?dti=0&pnid=14599&lc=en-WW
To wrap it up, I wrote down the current state of the function list. It still doesnt work. :(<association id="NC_function" userDefinedLangName="NC 840dsl" /> <association id="NC_function" ext=".arc" /> <parser id="NC_function" displayName="NC 840dsl" commentExpr="(?m-s:;.*?$)"> <function mainExpr="^%_N_\K[A-Za-z_]\w*" /> <functionName> <nameExpr expr="\w+"/> </functionName> </function> </parser>
-
You didn’t correctly copy-paste the parser-node I posted.
Remove the …<functionName> <nameExpr expr="\w+"/> </functionName> </function>
part or re-copy/paste so it looks like this …
<parser id="NC_function" displayName="NC 840dsl" commentExpr="(?m-s:;.*?$)"> <function mainExpr="^%_N_\K[A-Za-z_]\w*" /> </parser>
Also check whether or not you edited the right functionList.xml file as there might be more than one on your system:
- %ProgramFiles%\Notepad++\functionList.xml;
- %ProgramFiles(x86)%\Notepad++\functionList.xml;
- %AppData%\Notepad++\functionList.xml
Furthermore, make sure to restart Notepad++ after you edited and saved the XML-file.
-
It did work!!
Thank you!!
Apperantly I modified the false file. Namely, %APPDATA%\notepad++\functionList.xml as in https://notepad-plus-plus.org/features/function-list.html, and not as you mentioned above: %ProgramFiles(x86)%\Notepad++\functionList.xml.
Thanks MAPJe71, you really helped me a lot.
My best regards! -
Hi!
I recently discovered a bug in the function list feature. (or something I overlooked)
The function list works great. But when I open certain files, functions are not being listed. However, when I copy the content of my code to a new window, functions are listed just as normal.
This does not happen with every file. With file names such as: SPF_DIR.arc and MPF_DIR.arc, it happens all the time. Are those file names not permitted in Notepad++?
Thanks! -
AFAIK there’s no restriction on file names other than the standard Windows restrictions.
Could you post the files and the Notepad++Debug Info
(you can find it in the?
menu) so I can try to reproduce the problem? -
https://www.dropbox.com/sh/53wxnnxioxmcj8p/AADzd9wMDWoCVTgVrZJdqqL-a?dl=0
In the shared folder, there is a file which I am trying to display the functions of it and the respective functionlist and the user defined language.
Due to the copywrite agreements, I can not post the complete code that is why I trimmed the code to the function names. I tried to view the functions, it didnt work.
Many thanks! -
Due to the copyright agreements, I can not post the complete code …
I understand and so far the trimmed down code helps, as it does not show any functions on my system either.
I’ll have a look. -
Thank you for correcting me. I probably typed it really quick. :)
I can confirm that the regex file you provided, really did the trick and the function view normally works. It fails to show the functions whenever I try to open a new file
Once again thank you so much for your help! -
You’re welcome!
- Incomplete parser;
- Known bug with comment following function header.
ad.1. Adapt parser to:
<parser id="NC_function" displayName="NC 840dsl" commentExpr="(?m-s:;.*?$)"> <function mainExpr="(?m)^%_N_\K[A-Za-z_]\w*" /> </parser>
ad.2. There have to be at least two characters between the function header and the comment.
e.g. a line-break and a space%_N_CH1_BASIC_POS_SPF ;$PATH=/_N_SPF_DIR ;(c)2013 by Linsinger Maschinenbau Ges.m.b.H.
or two line-breaks
%_N_CH1_BASIC_POS_SPF ;$PATH=/_N_SPF_DIR ;(c)2013 by Linsinger Maschinenbau Ges.m.b.H.
or two spaces
%_N_CH1_BASIC_POS_SPF ;$PATH=/_N_SPF_DIR ;(c)2013 by Linsinger Maschinenbau Ges.m.b.H.
or a colon and a line-break
%_N_CH1_BASIC_POS_SPF: ;$PATH=/_N_SPF_DIR ;(c)2013 by Linsinger Maschinenbau Ges.m.b.H.
etc.
-
It is weird. Because it doesnt happen with other files even though the comment line is right below the function tag.
Thanks for your time and help! -
Had another look …
ad.2. or make sure your line-breaks consist of a carriage-return and a line-feed (i.e. two characters).Your
SPF_DIR - Kopie.arc
uses line-feeds for line-breaks i.e. only one character between tag and comment. -
Is it possible to add an exception into comments section?
For example: everything is a comment except when $PATH comes right after ‘;’. -
Yes that can work, in your case!
ChangecommentExpr
to"(?m-s:;(?!\$PATH).*?$)"
.