doomemacs/modules/tools/terraform/README.org

70 lines
2.4 KiB
Org Mode
Raw Normal View History

2019-11-21 14:43:09 -05:00
#+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= |