Terraform Provisioners are a last resort, so I'd encourage you to think about other options first.
In this case, your example suggests that you're already using cloud-init and so if at all possible I'd suggest modifying that cloud-init configuration to include a request to install the package you want to install. If you are using the cloud-config YAML format ...
Currently, there is only one extension for Visual Studio Code which highlights Terragrunt - https://marketplace.visualstudio.com/items?itemName=4ops.terraform
It is better than nothing.
You can also format Terragrunt configurations before git commit automatically using pre-commit and such config.
The terraform service account was located in a separate project and the API needed to be enabled for appengine in the account the Terraform service account runs in even though it was creating a resource in an another project.
I believe you should be able to reference the namespace name like so:
namespace_name = azurerm_eventhub_namespace.eventhub.name
However, if the namespace_name field is a required parameter on the resources you are passing it to, you might run into other issues while you are trying to set enabled to false, as the resources depend on the output of the ...