Files
tree-sitter-jhcl/README.md

38 lines
1.3 KiB
Markdown
Raw Normal View History

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
2021-06-14 23:25:32 +02:00
## Example
Highlighting `example/example.hcl`:
2021-06-15 11:40:32 +02:00
![Highlighting Example](https://i.imgur.com/TEWlCwT.png)
2021-06-14 23:25:32 +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.
## Running Tests
2021-06-08 23:18:50 +02:00
To run tests simply run `nix-shell --run 'tree-sitter test'`.
2021-06-12 21:47:30 +02:00
## Quoted Template Expressions
2021-06-14 23:25:32 +02:00
In principle it is allowed to contain arbitary expressions in quoted template interpolations. Consider for example:
```hcl
2021-06-15 11:40:32 +02:00
foo = "prefix-${func(\"bar\")}"
```
To make parsing a little easier, this parser only checks for valid escape sequences and template chars.
When using this parser one would have to take the content of a template interpolation, unescape it and parse it again to get the syntax tree. The same applies to template directives.
## Todo
2021-06-14 23:25:32 +02:00
* [ ] use [Unicode® Standard Annex #31](https://www.unicode.org/reports/tr31/) (augmented with '-') for identifiers
* [ ] add [template expressions](https://github.com/hashicorp/hcl/blob/main/hclsyntax/spec.md#template-expressions)
2021-06-14 23:25:32 +02:00
* [x] add quoted templates
* [x] add quoted template interpolations
* [ ] add quoted template directives
* [ ] add heredoc templates