• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
1

Announcing ColdFusion Builder Extension for VS Code

Adobe Employee ,
Aug 25, 2022 Aug 25, 2022

Copy link to clipboard

Copied

We are pleased to announce the availability of ColdFusion Builder Extension for Visual Studio Code. Needless to say, we are as excited as you are to release this plugin. Now you'll be able to edit and validate code, manage files, projects, and servers, debug, and scan for security vulnerabilities, directly on Visual Studio Code.

What's in it for me

A lot, actually. The all-new Adobe ColdFusion Builder extension for VS Code helps developers to edit and validate code, manage files and projects, and debug and scan for security vulnerabilities. 

Why do I need this extension?

Integrate the Adobe ColdFusion Builder Extension on your VS Code to: 

  • Automate repetitive tasks and navigate code for a smoother and faster process.
  • Enjoy built-in support for IntelliSense code completion, better semantic code understanding, and code refactoring.
  • Identify security vulnerabilities and maintain the integrity of your code.
  • Manage your work with extensions, remote project support, integrated server management, a log viewer, and more.
  • Customize every feature to your liking by creating shortcuts, easily formatting and reusing code, and using powerful extensions to better your best.

What do I get

Code assist

Accelerate your application development with intelligent code assist for CFML, CFScript, HTML, JavaScript, and CSS. 

Security code analyzer

Use the security code analyzer to scan existing application code to automatically detect vulnerabilities and potential security breaches. Identify the exact vulnerable code, type of vulnerability and severity level and mitigate the vulnerability with the suggestion provided.

Debugger

Reduce testing time and hard-to-fix bugs with integrated debugging to control the execution of the code and observe the proceedings. Launch and step through applications directly within Visual Studio for analysis of the code.

Workspace viewer- Project Manager

Projects contain resources such as ColdFusion components, interfaces, and CFML pages that you can use to develop ColdFusion applications. 

You must create a workspace before creating a project if there is no workspace opened. If the workspace is already created and opened, the project will be tagged under that.

The workspace stores your projects and other metadata. The preferred workspace location is the ColdFusion document root.

RDS support and file viewer

Manage access to files and databases on a server hosting ColdFusion. The RDS File View displays the files and directories on both remote and local servers. The RDS Data View displays the data sources configured in a remote server. 

When you add a ColdFusion server instance in ColdFusion Builder, it automatically becomes available in RDS File View and RDS Data View.

Code Profiler

Identify performance bottlenecks, memory issues, and so on, with the help of Performance Monitoring Toolset, and import the data in Visual Studio.

Service browser

Quickly access web services exposed by the ColdFusion server from Visual Studio.

Code refactoring

Code refactoring is the process of improving the source code of a program without changing the overall result. Generally, code refactoring improves code readability and maintainability. 

The extension supports various refactoring techniques like renaming, searching, and previewing of CFCs, CFMs, and UDFs at the project and workspace levels.

 

For more information, see:

TOPICS
Builder , Getting started

Views

1.8K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 26, 2022 Aug 26, 2022

Copy link to clipboard

Copied

If you'd like to see Adobe ColdFusion Builder Extension on your VS Code  supported on Linux please vote here: https://tracker.adobe.com/#/view/CF-4214667

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 27, 2022 Aug 27, 2022

Copy link to clipboard

Copied

I'm looking forward to using this! I was just not a big Eclipse fan. VS Code is much more responsive and still has the functionality I need. So, thanks!

 

Dave Watts, Eidolon LLC

Dave Watts, Eidolon LLC

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Employee ,
Aug 27, 2022 Aug 27, 2022

Copy link to clipboard

Copied

Thank you Dave. Let us know about your experience with the extension. Lokking forward to hearing from you.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Nov 17, 2022 Nov 17, 2022

Copy link to clipboard

Copied

It's unclear how to setup this extention if you use a docker container to run Cf locally.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Nov 17, 2022 Nov 17, 2022

Copy link to clipboard

Copied

RDS is required for CF Builder's functionality. You'll need to enable this in your Docker environment variable configuration. You should be able to change how Docker launches the image so that RDS will be enabled. The specific environment variable, I think, is:

 

SILENT_ENABLE_RDS=false

 

which you'll need to change to

 

SILENT_ENABLE_RDS=true

 

You can probably do this by running this from your command prompt:

 

docker container run -dt -e acceptEULA=YES -e SILENT_ENABLE_RDS=true -e password={password} adobecoldfusion/coldfusion:latest

 

You might find this link useful, although it doesn't talk about RDS directly. It does talk about how to view Docker environment variables.

 

https://hub.docker.com/r/adobecoldfusion/coldfusion

 

Note: I don't know much about CF Docker containers really. I hope this helps!

 

Dave Watts, Eidolon LLC

Dave Watts, Eidolon LLC

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Nov 18, 2022 Nov 18, 2022

Copy link to clipboard

Copied

Dave, I can confirm that sadly the properties for the cf silent installer feature DON'T get picked up by the cf images if used as env vars. That would be cool, but I tested and they do not.

 

That said, there are 3 built-in ways (with the images) to configure any admin setting, from auto-importing a CAR file, to auto-executing a setup script cfm file (calling the admin api, for instance), to the new cf2021 image's ability to import settings from a json file created with cf2021's cfsetup tool. (Commandbox images for cf and Lucee offer instead a means to import json files created via its cfconfig module.)

 

All that said, enabling rds would be just the first step of a long road to leverage a docker image from within the vscode cf builder extension. I'll offer more thoughts to James' question in a different reply, so it's not buried here. 


/Charlie (troubleshooter, carehart.org)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Nov 18, 2022 Nov 18, 2022

Copy link to clipboard

Copied

That's a good idea. Thanks! Like I said, I'm not too knowledgeable about developing against a CF Docker container.

 

Dave Watts, Eidolon LLC

Dave Watts, Eidolon LLC

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Nov 18, 2022 Nov 18, 2022

Copy link to clipboard

Copied

James, that's a surprisingly complex question. It depends on what features you mean to leverage. Most of what the cfbuilder extension adds requires a) that the cfm/cfc file you open must be in a cf builder-defined project, b) and that project must be connected to a cf "server" also as defined in CFB. Then as Dave notes, c) that server needs cf's rds feature to be enabled and the connection to that properly configured. 

 

Now, a cf instance (whether it's running in docker or not) can at least be added as a "server" in CFB, and if rds is setup and configured, you could then see the files and databases/data sources within it via the panels offered for that.

 

But if you want to do more, like have cfb find and show cfcs in that "server"--or do step debugging of code against it, that's when things get more challenging.

 

For those things, you'll be told in error messages you need to have properly mapped the project to the root of the server or to have added a linked folder. And that gets more difficult here, because when defining a "server" in CFB, the second tab asks if it's local or remote and by default it chooses local. Technically, for cfb running on a machine with docker, the cf image would be a "remote" rather than a local server (because the cfb on your "host" is not running WITHIN the cf image, running as a container, or "guest" one might say.)

 

And to configure such a remote server, you'll see it asks you to identify the rmi port for the cf instance--which the cf images don't expose by default.

 

Then there's no mechanism to point to the code within the cf container to "open" that, so you'd need to map your host version of the files (such as what you copy into the image in a dockerfile or point to as a volume mount) to their equivalent location within the image (server).

 

I started to dig into all this after I replied to Dave's other comment here about trying to use the silent installer properties as env vars for the images (which as I noted doesn't work). I hit these same snags so had to stop. I will try again soon and will follow up, whether here or in a blog post I point to. 

 

Before concluding, I'll note that some of these are the same challenges that the original cf builder had when running CF remotely from your local machine. And while the old cfb docs covered that, the new ones do not (that I have seen), so getting all these things right will be a challenge for many - - just like it was for many folks with the old cfb.

 

**soapbox**

And sadly, such complications will lead some to abandon their attempts, as there are just too many moving parts. It was true then and it's still true now, depending on what features you try to use, and what is your environment. Sadly there are MANY variations. 

 

And I tried for decades (literally, starting in 2008) to lead people to that promised land of getting these more advanced aspects of CFB working for them (see presentations, articles, blog posts and even book chapters I've done on builder over the years at carehart.org). But too many people balked at the eclipse-based characteristics of that older CFB, so it really never took off. 

 

With vscode, a whole new generation will at least be open to the possibility of considering it...but they too are tripping over these sort of matters, even to setup a local machine.

 

They'll see some showing off the cool things it can do, but those showing it generally won't explain how they set it up to work. Or they used a most basic setup which had little challenges, though they don't even explain away those. 

 

And as some people stumble, others will use their experience to poopoo Adobe or the extension or ACF in general, which will only further discourage some who see it not taking off. 

 

Sadly, I fear we're in for a rough ride early on, as the community (and Adobe) learn/relearn how to guide people to that promised land of getting cfb to work in the many, many different ways people will want it to work.

 

Heck, some get tripped up with just the fundamental points I started with above about projects (and workspaces) and servers and rds...while still others  won't even get there because they can't get past the new cfb's requirement to have Java installed in a way it wants, to even start.

 

Expect frustration to rule for months if not years, I fear. Hopefully Adobe or the community will respond with more and better resources and guidance, and people WILL make it through the rough patch and it will be what it should be for the cf developer community. 

 

As for me, I'll help, but as you can see here, the answers aren't simple. So I'll offer them, but I suspect most won't have the stomach to wade through the many things that generally need to be considered to get to the right answer. It will just take time for the volume of help (in various places and forms) to grow to a point to reach a larger audience. I just fear that will take a long time, which might thwart/stunt wide acceptance of the great values in the tool.

 

As before, some will get it and love it, some will leverage just a fraction of its capabilities, others will stumble along and may give up, while still others will give up on their first try.

**/soapbox

 

Like I said, James, yours is a far more complicated question than it may seem. I hope I offered at the top something to help you. 

 

And while you could follow up here, the blog comment threading is not great. Your question does also have very specific aspects that some will not care to have to wade through. It would probably be best for you to open a new post on the cf community forums instead. If you do, please come back and point people to that here, so they can follow the discussion if interested.

 

And apologies to those who think this reply (or at least the soapbox part) should have been a blog post I wrote and pointed to. I was tempted to consider that once done here, but I've already spent a lot of time writing this and need to get to work for a client. So for James' sake I wanted to go ahead and share it for at least the docker specifics, and I hope the soapbox  points may benefit others reading along.

 

James, if you get it going, let us know. I'll do the same, as I dig in more. If I do it as a blog post or forum thread z I'll come back and point to it in a reply here. 


/Charlie (troubleshooter, carehart.org)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Dec 01, 2022 Dec 01, 2022

Copy link to clipboard

Copied

Just revolving back to tthis.  Thank you for your thoughtful note.  I will let you know if I get it working.  

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Dec 01, 2022 Dec 01, 2022

Copy link to clipboard

Copied

Good luck!

 

Dave Watts, Eidolon LLC

Dave Watts, Eidolon LLC

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Dec 02, 2022 Dec 02, 2022

Copy link to clipboard

Copied

LATEST

This VS Code extension works for debugging in a local development environment, which I use. I have colleagues that use a remote CF server for development and I noticed that the "Remote Server Settings" fields were not documented.

I opened bug report CF-4215640 and some of the fields have now been briefly documented, but not all, and the report has been closed as fixed.

 

The remote server port setting appears to get ignored and fails when trying to initiate a debugging session. I added a note to this effect on the bug report but it may get ingored because it is a closed issue.

 

Before I open a new bug report I would be interested to know if anyone has managed to get debugging working when CF is running on a different machine than VS Code.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Resources
Documentation