5 Replies Latest reply on Nov 3, 2009 10:53 AM by charlie@carehart.org

    HTML Support - Am I missing something?

    robhuddles Level 2

      I recently had an opportunity to use CF Builder for the first time, and I have to say I'm not overly impressed. Yes, the code insight is great. Yes, the Eclipse backend is nice for setting up projects.

       

      But here's the deal-breaker for me: CF Builder is, at least from my testing, just plain awful when it comes to HTML support.

       

      Did I miss something along the way and not notice that CF developers no longer have to worry about HTML?

       

      Why can I not create a new CF page that contains the basic HTML tags? It seems like the only way to do this is to create a new "Other" document, but that doesn't really work. When I try to save that document, Builder won't put it by default in the project folder, and it won't "run" the file either. I realize that not *every* CF page needs those tags, but to not have an easy way to create a page with them is shocking.

       

      Once I get started with the project, code completion for HTML seems to not work. Say for example I want to type this:

       

      <p>Welcome, <cfoutput>#form.firstName#</cfoutput></p>

       

      Builder has no problems entering the pound signs - which is nice - or the closing </cfoutput>. But when I type </ to close the paragraph, nothing happens. I went into the properties dialog and in both the ColdFusion section and the HTML section, I have it set to close tags when I type </, and yet it steadfastly refuses to do so for HTML.

       

      I also *hate* the fact that when I select an attribute from the code hints, it *never* gives me quotes.

       

      Please, please someone tell me that I'm just missing something, or doing something wrong. If this really is the level of HTML support that is planned for Builder, then I have to say that it will not become my go-to editor for ColdFusion. I can see it being useful for building CFCs, and for those CF devs who spend their time building backend systems for things like Flex, when you never need worry about HTML, that's great. But for those using CF as a backend for HTML-based sites, these missing features seem like a huge shortcoming.

        • 1. Re: HTML Support - Am I missing something?
          JakeMunson

          Hi Rob,

           

          I don't want to imply that your habitual workflow is flawed...I recognize that everybody has their comfort zone, and there is nothing wrong with how you code.  You are right that CFB doesn't autoclose tags very well yet.  I think they will work on that and it will eventually be as good as Dreamweaver.  I also have noticed that CFB doesn't enter attribute quotes.  Both of these issues (in my opinion) can be chalked up to the fact that CFB is still beta.

           

          However, you also don't like that CFB doesn't allow you to start with an HTML "template".  Personally I don't need this feature (nor would I like it if it were there).  For all of the sites I edit, either of these scenarios suit my needs:

          1.  The header/footer info is include files or custom tags, and I just need to wrap my content with two lines of code to get all of those missing HTML tags you refer to.

          2.  The site doesn't use includes or custom tags for header/footers, so I just copy an existing page and gut the body contents to get the standard header/footer code I need for that site.

           

          I suspect most CF developers do either of those two things, or they use an MVC framework that manages all the header/footer code for them.  In the framework world, each page truly only has CFML code in it.  You put your "presentation" code (HTML) in separate files that have almost 0 CFML in them.  So in this case, these people wouldn't want autogenerated HTML either.

           

          That said, I can see CFB supporting templates at some point.  Even for framework developers, templates would be nice in many cases.

          • 2. Re: HTML Support - Am I missing something?
            Adam Cameron. Level 5

            Why can I not create a new CF page that contains the basic HTML tags? It seems like the only way to do this is to create a new "Other" document, but that doesn't really work. When I try to save that document, Builder won't put it by default in the project folder, and it won't "run" the file either. I realize that not *every* CF page needs those tags, but to not have an easy way to create a page with them is shocking.

            I'm not sure what you mean here.  Right-click on a dir, select New > File > key in yourFile.html.  And you're away.

             

            If you want to have a template which has all the doctype / html / head / body tags, it doesn't take much to create a snippet to do that.  The template functionality for CFB is not implemented yet.  There is this E/R raised to cover this: http://cfbugs.adobe.com/bugreport/flexbugui/cfbugtracker/main.html#bugId=80162.  Maybe go vote for it.

             

            I don't see a problem with CF not providing an HTML template out ofthe box, because very few CF files are going to represent entire HTML documents, so it's rarely going to be necessary to create a file like that.

             

            Did I miss something along the way and not notice that CF developers no longer have to worry about HTML?

            I would never be writing vast tracts of HTML, rather the odd tag amongst some looping / formatting constructs.  It'd be rare that I'd have more than a couple of HTML tags adjacent to each other amongst the rest of the CFML. Indeed 90% of the code I write doesn't have any HTML in it at all.  I cannot remember the last time I had an entire HTML document expressed in a single file.  If ever.

             

            I also *hate* the fact that when I select an attribute from the code hints, it *never* gives me quotes.

             

            Well it will if you switch the functionality on.  I dunno why it's not on by default though.

             

            missing features seem like a huge shortcoming.

             

             

            CFB has a long way to go before it's ready for release, I agree with that.

             

             

            --

            Adam

             

            • 3. Re: HTML Support - Am I missing something?
              charlie@carehart.org Adobe Community Professional & MVP

              Rob, let me attend to one remaining point in particular: CFB not closing HTML tags. I've found that CFB doesn't close HTML tags if the html is on a page that has no tag.

               

              Now, that would normally be an issue for average developers who don't bother with all the HTML header tags, or as has been noted here they may also get those injected either through includes or by way of a framework. But when you say you want CF to put the complete HTML header tags in a new CF page, I'm left wondering if this is indeed the problem for you.

               

              Or is it possible you were opening a file that did not have those HTML header tags? Again, the key (in my experience) seems to be the lack of the root HTML tag itself. Let us know if that helps.

               

              Or have others seen anything different? BTW, this is one of the gotchas I cover in my "Hidden Gems in CF Builder" talk which I'll be giving online this Thursday at 6pm US Eastern time on the CFMeetup (coldfusionmeetup.com). Anyone's welcome to come. More at http://www.carehart.org/blog/client/index.cfm/2009/11/3/cfmeetups_nov_5

               

              /charlie

              • 4. Re: HTML Support - Am I missing something?
                robhuddles Level 2

                Charlie,

                I'm not sure I understand what you're saying. Do you mean that CFB should close HTML tags in a CF document that contains the root HTML stuff? If so, then no that isn't my experience - I just created a test page in which I copied the normal root stuff from DW:

                 

                 

                 

                When I tried typing a paragraph in the body, CFB still did not offer to close it.

                 

                Or am I not understanding what you meant?

                • 5. Re: HTML Support - Am I missing something?
                  charlie@carehart.org Adobe Community Professional & MVP

                  Looks like these forums don't let you embed HTML in the body. That's a shame.

                   

                  Anyway, hang in there, Rob. Besides the first suggestion, I have another.

                   

                  I was saying that I've seen that if a page of CFML/HTML, opened in the CFML editor, does not have an opening and closing HTML tag surrounding the code where I was wanting to see HTML code completion, then CFB was not completing the HTML tags. But I just did a test and it worked. So I don't know if my previous observation was on an older release (I really thought it was on the public beta 2), or perhaps some other combination of factors in the pages where I was seeing it.

                   

                  Anyway, I leave that in case it may help someone down the road. It's certainly worth trying, since it worked for me at one point. (And you mention having "the normal root stuff", but it's not clear if you did this just for this test, and if so had perhaps only the opening and not the closing HTML tag.)

                   

                  Anyway, assuming you do have both tags, or even for those without them who would love to hear that HTML tag completion should be working, I'll point out as well that one should check the Preferences>HTML>Editors>HTML>Typing, which is where such HTML tag completion is controlled. (To be clear, CFML tag completion is controlled elsewhere, in Preferences>ColdFusion>Editor Profiles>Editor>Typing.)

                   

                  Also, for both CFML and HTML tag completion (in public beta 2 at least), you can set (as in DW) whether it should happen while typing the closing bracket (>) of the opening tag, or when typing the / (</) of the closing tag.

                   

                  Let us know if any of that helps, Rob.

                   

                  /charlie