69 lines
2.4 KiB
Org Mode
69 lines
2.4 KiB
Org Mode
#+TITLE: tools/terraform
|
|
#+DATE: November 21, 2019
|
|
#+SINCE: v2.1.0
|
|
#+STARTUP: inlineimages
|
|
|
|
* Table of Contents :TOC_3:noexport:
|
|
- [[#description][Description]]
|
|
- [[#module-flags][Module Flags]]
|
|
- [[#plugins][Plugins]]
|
|
- [[#prerequisites][Prerequisites]]
|
|
- [[#features][Features]]
|
|
- [[#syntax-highlighting][Syntax highlighting]]
|
|
- [[#code-formatting][Code formatting]]
|
|
- [[#code-navigation][Code navigation]]
|
|
- [[#code-completion][Code completion]]
|
|
- [[#documentation][Documentation]]
|
|
- [[#executing-terraform-commands][Executing Terraform commands]]
|
|
- [[#appendix][Appendix]]
|
|
- [[#keybindings][Keybindings]]
|
|
- [[#localleader][:localleader]]
|
|
|
|
* Description
|
|
This module adds support for working with [[https://www.terraform.io][Terraform]] files in Doom Emacs. This
|
|
includes syntax highlighting, intelligent code completion, and the ability to run
|
|
Terraform commands directly from Emacs.
|
|
|
|
** Module Flags
|
|
This module provides no flags.
|
|
|
|
** Plugins
|
|
+ [[https://github.com/syohex/emacs-terraform-mode][terraform-mode]]
|
|
+ [[https://github.com/rafalcieslak/emacs-company-terraform][company-terraform*]]
|
|
|
|
* Prerequisites
|
|
The =terraform= executable must be installed and accessible from your PATH.
|
|
|
|
* Features
|
|
** Syntax highlighting
|
|
Syntax highlighting is provided from =terraform-mode= and =hcl-mode=.
|
|
|
|
** Code formatting
|
|
=:tools terraform= does not provide code formatting directly, but =:editor
|
|
format= works with Terraform files.
|
|
|
|
** Code navigation
|
|
Code navigation is supported through =imenu= from =terraform-mode=.
|
|
|
|
** Code completion
|
|
Code completion of Terraform builtins is provided from =company-terraform= and
|
|
generally works well despite being generated through a [[https://github.com/rafalcieslak/emacs-company-terraform/blob/master/company-terraform-data.el][static (outdated) file]].
|
|
|
|
=company-terraform= also provides code completion of resources within your project.
|
|
|
|
** Documentation
|
|
Documentation is accessible through the normal =company-mode= show documentation
|
|
functionality, thanks to =company-terraform=.
|
|
|
|
** Executing Terraform commands
|
|
=:tools terraform= provides commands under the =localleader= to run the most
|
|
common Terraform operations (see Keybindings below).
|
|
|
|
* Appendix
|
|
** Keybindings
|
|
*** :localleader
|
|
| key | description |
|
|
|-----+-----------------------|
|
|
| =i= | Run =terraform init= |
|
|
| =p= | Run =terraform plan= |
|
|
| =a= | Run =terraform apply= |
|