Levels of syntax checking in PLCNE

I notice in the course of porting ST programs developed on a different platform,
there are various levels of syntax-checking…
and I am curious if the details of that are described anywhere ?
For example sometimes syntactical or type errors result in lists of warnings and errors.
Making some seemingly innocuous code change may suddenly result in just a short list of
errors - with no warnings at all.
When resolving the short list of errors - which are sometimes due to a single statement,
then POOF the whole list of warnings and “old” errors, apparently lower-priority items -
reappears.
Then, when I had all of the errors seemingly resolved, when I did a Project rebuild
BAM… all of the illegal type conversions - which passed the lower-level syntax checking
emerged…
As I worked through them I noticed as soon as I touched any of the list of “higher priority” errors, the list disappeared and I had to keep re-running Project rebuild to get the next ones.
I thought I could just do a global search and replace to find and fix all of the type conversions of a certain form - but I could not find any way to search for terms and generate a global list spanning the whole program space…
each POU appears to be segregated and maintains a separate search space
search in the program window appears to apply only to program names not content
I understand these are symptoms of NEWBYism - and coming from a platform which did allow global searching and wanting to find equivalent functionality here and wanting to gain some familiarity with how PLCNE works “under the hood”
I noticed an interesting artifact: Variable names are not allowed to end in “_”

Hi Kurt,
there’s a “Global search and replace” in the lower toolbar
image.png
Regarding your trailing _ in variable names:
That’s forbidden, see IEC61131-3 (Chapter 6.1.2 Identifiers)

Cheers
DivisionByZero