2021-06-07 20:52:50 +02:00
# tree-sitter-hcl
2021-06-13 09:26:49 +02:00
tree-sitter grammar for the [HCL ](https://github.com/hashicorp/hcl/blob/main/hclsyntax/spec.md ) language
2021-06-08 23:18:50 +02:00
2022-06-05 11:37:07 +02:00
## Try It Out
Try the parser in the [playground ](https://michahoffmann.github.io/tree-sitter-hcl/ )
2021-06-14 23:25:32 +02:00
## Example
Highlighting `example/example.hcl` :
2021-09-19 13:25:57 +02:00

2021-06-14 23:25:32 +02:00
2021-06-14 00:55:24 +02:00
## Developing
2021-06-08 23:18:50 +02:00
It is recommended to use `nix` to fulfill all development dependencies. To activate the development environment simply run `nix-shell` in the project root.
2021-06-14 00:55:24 +02:00
## Running Tests
2021-06-08 23:18:50 +02:00
2021-06-14 23:33:28 +02:00
To run tests simply run `nix-shell --run 'tree-sitter test'` .
2021-06-12 21:47:30 +02:00
2021-06-19 16:56:35 +02:00
## Compliance
2021-06-23 20:30:30 +02:00
The directory `example/real_world_stuff` contains a corpus of hcl files that I found with the github query `language:HCL` for users `coreos` , `hashicorp` , `oracle` and `terraform-community-modules` .
2021-06-19 16:56:35 +02:00
```bash
2021-06-23 20:30:30 +02:00
tree-sitter parse --quiet --stat example/real_world_stuff/*/*
2021-06-26 10:31:33 +02:00
Total parses: 1892; successful parses: 1892; failed parses: 0; success percentage: 100.00%
2021-06-19 16:56:35 +02:00
```
2021-06-27 19:57:02 +02:00
## Fuzzing
2021-06-19 16:56:35 +02:00
2021-09-19 12:21:37 +02:00
See the [fuzzing repo for this parser ](https://github.com/MichaHoffmann/tree-sitter-hcl-fuzz )
2021-06-19 16:56:35 +02:00
2022-06-05 11:37:07 +02:00
## Attributions
Pages were copied from https://github.com/m-novikov/tree-sitter-sql