Requirements  
Required products
User level
Adobe ColdFusion Builder (2016 release) (Download trial) All

 

Adobe ColdFusion Builder 2.0.1 (code-named Twister) is a free update to Adobe ColdFusion Builder 2.0. The main purpose of this updater is to integrate ColdFusion Builder with ColdFusion 10 (code-named Zeus) to support the new language features and new server configurations. ColdFusion 10 is now bundled with Tomcat server, unlike earlier versions that had the built-in JRun server. ColdFusion Builder 2.0.1 now supports configuring ColdFusion 10 in its server manager.
The enhancements in this release of ColdFusion Builder are not limited to ColdFusion 10 feature support. We have also fixed many existing bugs, enhanced editor performance, and also implemented many enhancements that users requested for existing features. This article gives overview of new features and enhancements in ColdFusion Builder 2.0.1.
 

Configuring ColdFusion 10

 
Configuring ColdFusion 10 in the server manager of ColdFusion Builder is similar to configuring previous versions of ColdFusion, however, you need to specify the CF + Tomcat Bundle option for the Application Server setting in the first screen of the Server Settings wizard.
 
Figure 1. Server settings
Figure 1. Server settings
 
The rest of the settings for the local server remain the same, however, if you are setting up a remote ColdFusion 10 server, you will see the changed Remote Server Settings tab on the second page of the wizard.
 
Figure 2. Remote Server Settings tab for ColdFusion 10
Figure 2. Remote Server Settings tab for ColdFusion 10

 

The settings, Admin Port, Username, and Password refer to remote Admin server (Jetty Server) that is bundled with ColdFusion 10. The default port is 8985, the default username is admin, and the default password is the password you entered when installing ColdFusion 10.
The setting, Server Name, is the name of the ColdFusion server instance. For a stand-alone installation of ColdFusion server, this is typically cfusion. The Context setting is AdminServlet and does not change. Document Root is path to wwwroot of the server, typically under the cfusion folder.
 

CFML language support for ColdFusion 10

 

ColdFusion Builder 2.0.1 supports syntax highlighting and syntax check for all new language constructs added in ColdFusion 10. It also provides code assist for new tags, attributes, and functions. We have added the ColdFusion 10 dictionary to the list of dictionaries already supported.

 

Language dictionary at the Project level 

 

In previous releases of ColdFusion Builder, you set the dictionary version in Preferences; the version specified applied to all ColdFusion projects. We have now added support to set project-specific dictionary versions. When you create a new project, ColdFusion Builder picks the default dictionary version from the one set in the global preferences. To change this, right-click the project name in the Navigator view and select Properties. Click ColdFusion Project and select the dictionary version.
 
Figure 3. Select dictionary in Project properties
Figure 3. Select dictionary in Project properties
 
Now, if different projects use different versions of ColdFusion, then you can set the dictionary version for each project targeted per server.
 

Enhancements to FTP features

 

In ColdFusion Builder, you can configure an FTP server in the File Manager. In the default ColdFusion Builder view, the File Manager is in lower left corner. If you associate the FTP server with project, you can easily sync files between local and remote machines. We have made following enhancements to FTP support based on requests from users.

 

Upload on Save

 

The FTP connection dialog box now has an option to upload local files to an FTP server when you save the file.
 
Figure 4. Upload to FTP server when you save a file
Figure 4. Upload to FTP server when you save a file

 

You must set up a project to sychronize with the FTP server for this option to work. Right-click a project name in the Navigator view and select the Synchronize > Create New Synchronize Connection… option.
 
Figure 5. Create connection for synchronization
Figure 5. Create connection for synchronization

 

Once you have set up the synchronization connection, ColdFusion Builder automatically uploads any local file in the project to the configured FTP server, but only if you have specified the Upload file on Save option for the FTP connection.

 

Keyboard shortcuts for Sync actions

 

We have added keyboard shortcuts for following synchronization actions:
Upload - Ctrl+Alt+W U (CTRL +ALT+W and then U)
Download – CTRL+ALT+W and then D
Synchronize – CTRL+Alt+W and then Y
In earlier, these actions were avilable only as menu items.
 

CFC path mappings for Projects

 

Code Assist for CFCs includes the following:

  • Suggestions for CFC names in createOjbect , cfobject , cfinvoke or new
  • Suggesting function or parameter names when code assist is invoked on CFC variable.

For both types of code assist support, ColdFusion Builder must resolve CFCs. That is, in the former case ColdFusion Builder finds valid CFCs, and, in the latter case ColdFusion finds the CFC path from CFC name.
ColdFusion Builder searches different parameters when resolving CFCs:

  • Search in the current folder
  • Search from the project root
  • Search from the wwwroot of the server if you have associated the server with the project
  • Search CFC mappings in the server administrator, again if you have associated the server with the project
  • Search CFC variable mappings for the project
  • Search external folders linked in the project

For CFCs that you host outside the project folder and wwwroot of the server, you can use CFC mapping in the server administrator or the link folders option. However, keep in mind that you might not always remember to configure mappings in the administrator at development time, and you might not always be connected to the server. In such cases, the link folders option is the only way for resolving such CFCs that are outside wwwroot and project root.

The link folders option work fine if no two projects refer to the same link folder, else you would have duplicate references to the same files. This could be a problem when using code hyperlinks on CFCs—if two projects have the same file, ColdFusion Builder asks you to select one through a dialog box that displays all references to the same file (from different projects). Many users had asked for ability to specify mappings at the project level, and we have implemented this option in ColdFusion Builder 2.0.1. To specify CFC mappings for a project, follow these steps:

  1. Open project properties (right-click the project name in the Navigator view and select Properties).
Figure 6. Specifying CFC mappings for a project.
Figure 6. Specifying CFC mappings for a project.
 
  1. Click CFC Mappings to see details. This page now contains a new section named CFC Folder Mappings.
  2. Within the CFC Folder Mappings section, specify the mapping name and path where you want ColdFusion Builder to look for when resolving CFCs. For example, if you map external CFCs to c:\cfcs, ColdFusion Builder shows all CFCs in c:\cfcs folder. If you have a CFC called mycfc.cfc in c:\cfcs, the CFC appears as externalCFCs.mycfc in the Code Assist dialog box in ColdFusion Builder.
  3. ColdFusion Builder caches CFC names in the mappings you specify on this page. If you add or delete any mapping, when you click OK or Apply, ColdFusion Builder automatically updates the cache. However if you add any files to the already mapped folder, you must make ColdFusion Builder update the cache. To do so, click Rebuild on this page.

Enhancements to ColdFusion Builder Extensions framework

 

ColdFusion Builder extensions let you you extend the functionality of ColdFusion Builder through menu contributions, views (using an XML configuration file), and the ability to specify CFML handlers that run on ColdFusion server. Interestingly, you write extensions using the technologies you already know, such as writing them in CFML, HTML, JavaScript, or XML. User interface for most extensions are created in HTML and run in a browser widget in ColdFusion Builder. ColdFusion Builder and extension handlers send commands and information back and forth. We have implemented the following enhacements to the extension framework in ColdFusion Builder 2.0.1

New event notifications

 

We have added three new event notifications:

  • onFileSaved : When you save a file.
  • onFileChangeInEditor : When you open a new file in the editor or switch files in the editor by clicking on editor tabs.
  • onRDSDataViewSelectionChange : When you change a selection in the RDS Data View; that is, when you navigate between server, data sources, tables, and fields.

You may want to notify your extensions of the above events, for example, to update a view (for example, when a user changes or saves a file) or if it needs to perform some action in the background based on the above events. List the events that you want to notify your extensions of within the ide_conig.xml file. Refer to ColdFusion Builder documentation for mode details.

 

New Callback functions

 

Extension handlers use callback functions to ask ColdFusion Builder to perform some actions. We have added the following callback commands in this release:

  • Get all projects ( getProjects ): Returns a list of all the projects in ColdFusion Builder with information such as project name, path, whether the project is closed and if it is it a ColdFusion project.
  • Reload all extensions ( reloadExtensions ): If you change ide_config.xml for an extension, you must reload the extension in ColdFusion Builder. Now you can use this callback command to reload the extension from your extension handler.
  • Sending a message to the extension, including itself (sendMessageToExtension): You can send a message to any extension from the handler of your extension by specifying name of the receiver extension, id of the handler to execute, and message parameters (key-value pairs). This is also useful when you need to send message to the same extension, for example, a handler that receives an event notification might ask ColdFusion Builder to update a view in the same extension, while the view has a different handler (from the one that received notification).

Please see ColdFusion Builder documentation for more details.

New menu contribution targets in the RDS Data View

 

In previous releases of RDS Data View you could add menus from extensions to table nodes only. Now you can add menus from extensions to other nodes too, such as server, data source, or column. The menu contribution for RDS Data View now supports the filter tag too. So, if you want a menu contribution to appear on a data source node only, you can specify a filter in the ide_config.xml file as follows:

<menucontributions > <contribution target="rdsview"> <menu name="DatabaseMenu"> <action name="Add Table" handlerid="AddTableHandler" showresponse="true" /> </menu> <filters> <filter type="database" /> </filters> </contribution> </menucontributions>

 

If you do not specify a filter, the menu contribution displays on all nodes.

 

Other extension enhacements

 

The following are other extension enhancements we have added to ColdFusion 10.

  • Each variable in the response to getFunctionsAndVariables callback command now contains one of the following scopes: Argument , varscope , and tagcreated (the variable created by a ColdFusion tag, such as the cfquery tag). You can get other scopes from the prefix in the variable names, for example, the scopes of Form , Request , or This .
  • We have added a new attribute keepFocus to the view tag. When an extension handler (as specified in the configuration in the ide_config.xml file) creates a view, ColdFusion Builder processes this attribute. If you specify keepFocus=true , the view is in focus when created, otherwise focus remains in the editor. The default value is false. In the previous versions, ColdFusion Builder was set to focus on the view after creation, because of which some of the menu options did not work in the editor.

 

New Adobe CFC Generator Extension

 

ColdFusion Builder has shipped with an Adobe CFC Generator Extension since its first version. By default, the extension does not install in ColdFusion Builder automatically; it is available in the Extensions folder where you have installed ColdFusion Builder. You install it using the Extensions panel in ColdFusion Builder.

This extension adds the following menu options to tables in RDS Data View:

  • Create CFC: Creates CFCs for tables with SQL statements.
  • Create ORM CFC: Creates ORM CFCs for tables using no SQL.

To use this extension, right-click the tables and then select the Adobe CFC Generator option. Adobe CFC Generator creates the following CFCs for each table:

  • A data transfer CFC (named as table name) that has properties and getter/setters defined for each field in the table.
  • A data access CFC (named as table name + "DAO") that contains CRUD functions for the table. ColdFusion Builder will not create this CFC for the ORM option.
  • Gateway CFC (named as table name + "Gateway") that contains functions to get count, get all, and get paged records from the table. ColdFusion Builder will not create this CFC for the ORM option.
  • Service CFC (named as table name + "Service") that contains remote wrappers for CRUD operations.

Note that the user interface for the Create ORM CFC menu option did not work for Mac in earlier versions of ColdFusion Builder. In ColdFusion Builder 2.0.1, we have redone the user interface so that it works for Windows and Mac.
When you select the Create ORM CFC option, ColdFusion Builder displays a dialog box with options to select the folder where you want to save the generated files. When you click OK in this dialog box, a new dialog box with tables that you have selected is displayed (Figure 7).

 

Figure 7: ORM CFC Generator Extension dialog box
Figure 7: ORM CFC Generator Extension dialog box

 

You can create relationships between tables by dragging a field from one table to another, edit relationships by double-clicking the connector, and modify CFC properties and types by double-clicking table headers. Click Help within ColdFusion Builder (in the extension) to learn how to use this extension.
 

Performance improvements

 

ColdFusion Builder 2.0.1 performs better than earlier versions. In addition to overall performance improvements when using the editor, we have fixed the following issues:

  • If you had Application.cfc in the wwwroot (or in any application that had many CFCs), Code Assist for ORM became slow.
  • ColdFusion Builder became unresponsive if you imported or refreshed large projects.
  • Cyclic inclusion (the cfinclude tag) affected the editing speed of files.

Apart from these improvements, we have added a preference to turn off the Quick Fix option, which can improve performance in the following scenario. One of the features we added in ColdFusion Builder 2.0 was the Quick Fix option. If you had references to any undeclared functions such as CFCs or included files in the code, ColdFusion Builder displayed a warning icon and gave you the option to create the function, CFC, or file. Though this is a great productivity features, it might impact editor performance when working with large files in a large project that had many references to CFCs. This is because ColdFusion Builder needs to resolve each CFC reference; in a large project, this might cause slow performance. In ColdFusion Builder 2.0.1, you have option to turn off the Quick Fix feature by going to Preferences > ColdFusion > Profiles > Editor > Syntax Checking. Note that in ColdFusion Builder 2.0.1, we have turned off this feature by default. If you want to use this feature, turn it on in the Preferences noted aboves.

Though not new in this version, note that if you experience performance issues in the editor, you can set optimal performance options by selecting the following option: Preferences > ColdFusion > Profiles > Editor > Optimize editor preferences.

 

Eclipse upgrade

 

To leverage the latest functionalities, we have packaged the stand-alone version of ColdFusion Builder 2.0.1 with Eclipse 3.7.2.

 

Where to go from here

 

ColdFusion Builder 2.0.1 has complete support for use with ColdFusion 10. It enables configuration of ColdFusion 10 in the server manager, supports syntax check and colorization for new language constructs, and provides code assist for new functions, tags, and attributes. The release also enhances existing features and improves performance substantially. The goal of this article is to provide an overview of various features in ColdFusion Builder 2.0.1. Please read the complete ColdFusion Builder documentation for details on how to use all of the new and enhanced features.