ColdFusion. What Do You Need In An IDE?

OK - this has popped up on a few blogs and apparently there is a thread on CFTalk as well… But someone mentioned features and I thought I’d start a post and collect comments…

What features would you like to see in a ColdFusion, programmer centric IDE. Comment below - anything non-positive and non-related (platform wars, developer vs designer, Eclipse vs. Dreamweaver) will be deleted or edited to remain on topic.

Ideally I’d like to compile a comprehensive feature list which we could provide to Adobe and Mark and see what happens. I’d also like to list features that may already be present in CFEclipse and/or Dreamweaver just so the list is complete.

And if you post - maybe number your items in order of importance to you - #1 = important #10 = not so much.

8 Comments

  1. Posted January 9, 2008 at 12:23 pm | Permalink

    - Source formatting
    - Intellisense
    - Framework “support” - code completion
    - Dynamic snippets
    - Code folding
    - Version control integration

  2. Posted January 9, 2008 at 12:34 pm | Permalink

    From the Adobe survey I grabbed these:

    - Syntax high-lighting of the code
    - Hotkeys for code snippets
    - Intellisense on CFCs
    - Integrated debugger
    - Integrated CFC Explorer
    - Integrated Log viewer
    - Integrated CRUD Wizard
    - Integrated RDS data explorer
    - Integrated file explorer
    - Integrated help for CF tags/functions
    - Source code control
    - Code autoformatting
    - Customizable code coloring
    - HTML/CSS/JS/SQL editing

  3. Posted January 9, 2008 at 12:44 pm | Permalink

    - the ability to highlight a variable of function name and then right-click jump to definition
    - refactoring (even consistent renaming would be a big plus, rather than just find’n'replace)

  4. Posted January 9, 2008 at 1:18 pm | Permalink

    multi file search and replace. I miss it so much from homesite.

    Not just a 30 char form field either, give me two text areas.

  5. Posted January 9, 2008 at 2:10 pm | Permalink

    1 - Stable
    2 - Built in FTP/SFTP client and Directory Syncronization (see Aptana plugin for example)
    3 - Quick load time and as small a system footprint as possible.
    4 - Integrated updating system for IDE itself and it’s support files like code completion and help.

  6. Posted January 9, 2008 at 2:26 pm | Permalink

    David Buhler posted a nice list in this thread:

    http://www.cfinsider.com/index.....F1A978692A

    - I want an IDE that can order my tag attributes by name.
    - I want a visual editor that gives me a 10,000′ view of my code. Ideally, I would love to see a Flex or Flash interface that is color-coded and shows me the order of my methods. It would allow me to double-click on a block of code and it would expand to show me the contents. I would be able to drag blocks of code around.
    - I want an IDE that is smart enough to see two instances of cfinvoke with the smae namespace, and suggest I should instantiate one cfobject tag, instead.
    - I want an IDE that implements best practices. My IDE should tell me when variables aren’t scoped.
    - I want an IDE that is integrated with the step-thru debugger.
    - I want an IDE that is integrated with the CFAdmin. When I have DW open, and I have CF Server running, I have to clear the template cache 150x a day, bare minimum, to get around the ’shared resource’ error, and causes me to lose 20 minutes a day on a busy day of coding?
    - I want an IDE with subversion integration.
    - With DW, it’s so annoying to have to thumb through irrelevant pages and tabs and buttons related to PHP, ASP, etc. I want an IDE that is focused on my needs.
    - I want an IDE that enforces consistency. If the output types are “No”, all output types should be “no” and not “false” or “no”.
    - I want an IDE that red-flags attributes that are the default attributes to reduce the bloatin of code.
    - I want preloaded snippets, because we all pretty much write the same function block structure over and over again.
    - I want code hinting for namespaces. When I type in “Com”..I should see a list to all of my possible namespaces. CF should check to ensure namespaces exist.
    - I fear refactorng in DW or Eclipse.
    - I want more organized debugging information. Add some colours. Add some font sizes to give some hierarchy to the information. Show me the debug info in the same IDE I am coding within.
    - I want SQL formatting in my IDE. I’m fine with my formatting not being configurable, so long as it’s consistent.

  7. david buhler
    Posted January 9, 2008 at 4:12 pm | Permalink

    Based on Fowler’s Book on refactoring:

    Request long method names be refactored into more readable names with underscores:

    Something like:
    generateXMLByRegionName

    would be:
    generate_XML_by_region_name()

  8. david buhler
    Posted January 9, 2008 at 5:00 pm | Permalink

    Smooth, Animated Transitions within the IDE to improve workflow.

    Underlined table names for recognized and valid Database tables.

    Highlighted table name columns for recognized and valid database table columns.

    Code hinting to database table columns, after typing the table name.

    Random Data Generator that is integrated with a CFC introspection explorer that can quickly test email addresses, domain names, strings, numbers, booleans, etc. The Data Generator would remember the last values used to test.

    Option to default all attribute names to the smallest footprint: “no” instead of “false”.

    Ability to have all Functions folded when opening the IDE.

    Color-coded datatypes for CF_query_params
    Color-coded datatypes for CF argument types
    Color-coded return types for cffunctions

    (Color and Symbols are a much better indicator of purpose than text).

    I’d like to see an IDE that generates a folder structure and classes based on a domain model by asking for the application’s views, or looking at the given set of views. For example, if you’re looking at a Flex application, the viewstack/tabnavigator is going to represent the view hierarchy and the domain model.

    Incorporating this kind of logic into an IDE would greatly simplify a team’s ability to grasp a site’s logic and structure.

    Ability to click on a CFObject or CFInvoke tag and go straight to the method.

    Ability to generate isValid methods for selected arguments, based on the argument type.

    More Robust code for CFCs. For example, when creating an Application.cfc, an IDE should provide onError code that includes CFMail tags, error type arguments, CFDumps of CGI scopes, request scopes, URL scopes, etc. Creating the CFApplication tags should generate the default attributes.

    An IDE should flag deprecated tags.

    Suggested or forced naming conventions, based on a setting. Such a setting would force developers to use an Adobe standard for coding (best practices). Developers should be able to go from one job to another, or one task to another, and easily understand another developer’s naming conventions because they are part of an Adobe standard.

    IDE would be able to subscribe to a portal of snippets and download the latest snippets.

    Ability to flag spaces in return types (it happens).

    Improved code colouring for different attribute types within popular tags (cffunction’s name, type, output, returntype).

    Code colouring for tags based on level of importance/severity. For example, CFDirectory should always be bright yellow on a black background, and no other tag should be able to use this color scheme (except cffile, of course..oh heck..and CFPop).

    Default toggleCasing. “returnttype” should be “returnType.”

    Ability to hide all CF tag names and attribute names for improved readability of the values. For example, an IDE should change CFIF to if for readability (maybe in preview mode) and cfargument should temporarily disappear in this preview mode, leaving just the attribute’s value (another example of the smallest footprint concept).

    Ability to output the Admin’s jobs/schedules to cfschedule code.

Creative Commons License

Copyright © 2007 thecrumb.com. All rights reserved.