A language server implementation for function-hcl.
Provides the following features:
- Completion
- Hover descriptions
- Goto Declaration/ Find references
- Semantic tokens
- Validations and inline errors
- Code folding
Completion requires provider CRDs to be set up such that the language server can find type definitions.
The exact mechanics of how to set this up along with IDE integration will be documented under the docs page when the client code is added to the repo.
This repo owes a lot to the HCL language library and the Terraform language server implementation.
This repo contains code copied from the above repos and modified for use. Since function-hcl is different enough from Terraform, the borrowed code did not work well for it but gave the authors a great starting point. A lot of refactoring has been done on both these copied codebases to make the language server work for function-hcl.
In addition, the go.mod replaces the HCL dependency
with a fork because of a critical fix
for a known issue that is needed.
You cannot build this repo using go install github.com/... because of this. For source builds, you will need to clone
the repo and build it locally.