by Mofi » Fri Mar 18, 2011 6:01 am
Okay, the syntax highlighting feature has no problems with the PHP code inside the HTML tags.
But as I already wrote, it looks like the code folding and the XML/HTML tag highlighting feature does not support tags inside tags, in other words < and > inside a tag starting with < and ending with >. That makes tags parsing very difficult, not just for the editor and is very unusual and typically not allowed, although permissible in your case.
Most PHP writers use simply 1 echo command to output the entire HTML line with the variable elements instead of starting the form with HTML, switchting to PHP for the id string, continue with HTML, switch again to PHP for the action string and finish the tag with HTML. That is a nightmare for all programs which need to interpret such code including the PHP interpreter. Also some lines above where opening < is HTML, followed by tag name and perhaps also attributes from PHP, closing > is again HTML, displayed content again from PHP, </ again HTML, closing tag name from PHP, and finally > from HTML is very uncommon. It is not wrong, but good PHP coding looks different. The entire snippet you captured to a screenshot should be inside a complete, single PHP block.
However, you can report this by email to IDM support and ask for an enhancement.
But to be honest, if I - a user of UltraEdit (and a developer), not an employee of IDM - would be asked to enhance code folding and XML/HTML tag highlighting to support tags inside tags, I would not do that. Why? Tags inside tags are only possible in HTML, not in XML. I think, it is very uncommon that tags to embed code with a different language are used inside HTML tags, but I may be wrong with my statement. But the main reason to deny such an enhancement request would be that parsing tags would become very complicated and complicated means always slow and causes often many mistakes (false-positive). Parsing for open tags with the Perl regular expressions <.+> (single line tag) or <[^>]+> (multi line tag) and for close tags with </.+> or </[^>]+> is very fast, but taking tags inside tags into account would dramatically slow down the parsing for tags.