That's some great info Gordon. Once I finish some of my current tasks I'll look again into MXML.
I'm working with the old compiler in mind, I'd love to see Falcon finished, and being able to use it for code completion would be great if it proves to be fast enough. Using the compiler services is how code completion works by default for Haxe in FlashDevelop. I'd like to help improving Falcon and any other of the Apache Flex projects, but sadly don't have the time for it right now... On Sat, Dec 13, 2014 at 10:30 PM, Gordon Smith <gsmit...@hotmail.com> wrote: > > I have a few points to belatedly make on this thread: > > 1. The 'specifications' folder of the 'flex-external' repository has a > spec for MXML 2006 and 2009. It's incomplete, but it's the best one that > exists. If you find that it doesn't answer your questions about which > elements are allowed inside which elements, please let me know where > specific information is missing or wrong and I'll try to improve the spec. > > 2. In the new Falcon compiler, MXMLNodeBase, the abstract base class for > all nodes in the MXML syntax tree, has a method called processChildTag() > which gets overridden in each subclass to process the allowed child tags > (i.e., elements). For example, if you look at this method in > MXMLDeclarationsNode (which represents <fx:Declarations>) you can see that > MXMLComponentNode (representing <fx:Component>), MXMLModelNode > (representing <fx:Model>), and MXMLInstanceNode (representing tags like > <s:Button> and <fx:int>) are allowed, while all other tags are disallowed. > Since Falcon hasn't been completed, this may or may not match the logic in > the old compiler and in the spec, but the information still may be of some > use to you. In any case, if you're using Falcon, your code hinting will > match what the compiler allows. Are you working to incorporate Falcon into > an IDE, or the old compiler? > > 3. In my opinion, code-hinting logic belongs in Falcon, and it would be > great it you would add it there rather than in one particular IDE. Falcon > was always intended to be a code-intelligence engine to support IDE > editing, and not just a compiler. > > - Gordon > >