A new view in the HashiCorp Terraform extension for Visual Studio Code shows your Terraform Cloud workspaces and runs, reducing context-switching.
HashiCorp maintains a Terraform extension for Visual Studio Code in order to ensure that practitioners have a first-class editor experience. Our extension has the unique opportunity to accompany you on every step of your journey, from learning the syntax and writing your first lines of HashiCorp Configuration Language (HCL), to provisioning infrastructure as part of larger teams at companies serving millions of users. This post covers a recent integration with Terraform cloud as well as other enhancements added to the Terraform extension for VS Code that some users may not be aware of.
Earlier this month, we launched a native integration with Terraform Cloud in our VS Code extension to better support professional individuals and teams who rely on Terraform Cloud for standardizing and managing their infrastructure automation and lifecycle.
The core capabilities of the new Terraform Cloud integration focus on providing a read-only view of workspaces and runs in order to reduce the amount of window- and context-switching you need to do. Instead of opening up the Terraform Cloud web interface in your browser to look up why a run failed and then switching back to VS Code to look for the configuration that caused the error, you can now view the apply log side-by-side with your code, allowing you to get back to debugging faster.
To see the full list of features as we continue to add to them over the coming months, check out the extension overview on the Visual Studio Marketplace. And read on to learn more about enhancements you may not know about.
For example, installing HashiCorp's Terraform extension for VS Code also gives you access to our Module and Provider Explorer, which can be used regardless of whether or not you have Terraform Cloud. You can access this functionality by clicking on the HashiCorp Terraform icon in the activity bar:
The Module Explorer lists Terraform modules used in the current open folder (root module) in the Explorer Pane, or you can drag it to the Secondary Side Bar pane to keep it in view. Each item shows an icon indicating where the module comes from (local filesystem, Git repository, or Terraform Registry). If the module comes from the Terraform Registry, a link to open the documentation in a browser is provided.
The Provider Explorer lists all Terraform providers used in the current open document in the Explorer pane, or you can drag it to the Secondary Side Bar pane for an expanded view.
For some time, we have been tracking reports of poor performance in the Terraform language server, which powers the Terraform extension for VS Code and can also be used to provide IDE features in LSP-compatible editors like Sublime Text, Neovim, and others.
When you open up your editor, the Terraform language server does a lot of work in the background to understand the code you're working on. It has an indexing process that finds all the Terraform files and modules in your current working directory, parses them, and builds an understanding of all the interdependencies and references. It holds this information inside an in-memory database, which is updated as you change your files. If you open a directory with many hundreds of folders and files, this may consume more CPU and memory than intended.
v0.31.5 of the Terraform language server and v2.27.2 of the Terraform VS Code extension (both released in September 2023) include fixes that many users have reported dramatically improve performance. If you've previously tried the extension or the language server and encountered problems with performance but have not yet tried these updates, we encourage you to check them out and let us know if you see a difference.
We know these fixes have not yet addressed all of the performance problems that users encounter, and we continue to investigate and trial possible solutions. If you continue to experience poor performance, please don't hesitate to file an issue on GitHub. The more log output and reproducible configuration you provide, the better we are able to diagnose and address the root cause.
In the coming months, we plan to continue to add features to the Terraform Cloud integration, improve the enhanced validation feature announced at HashiConf last month, complete the Terraform language server's understanding of all Terraform language features (you can track our progress here and here), and implement additional performance enhancements.
Another goal we hope to achieve next year is to move toward a model of Day 0 support for new language features as they come out: as functionality gets added to Terraform, we want our VS Code extension (and other editors powered by the Terraform language server) to provide a best-in-class experience when using those new features.
Whether you’re new to Terraform or an advanced practitioner, we’d love to hear how we can improve the experience of authoring Terraform configuration inside of our VS Code extension or other editors. Please file any bugs you encounter, let us know about your feature requests, and share your questions, thoughts, and experiences in the Terraform Editor Integrations discussion forum.
HashiCorp Terraform Cloud now offers even more ways to connect, secure and provision infrastructure with AWS.
17 new Terraform integrations from 14 partners provide more options to automate and secure cloud infrastructure management.
The latest Terraform Cloud and Enterprise enhancements help users leverage high-quality modules, monitor their workspace health, minimize management overhead, and more.