Problem: We need to deliver a VSCode extension but the one we use
currently is located in a separate repo, requires manual patches
and does not support ReasonLIGO.
Solution: Add our extension that supports PascaLIGO and ReasonLIGO;
CamLIGO is WIP.
Problem: We want to be able to parse whole directory for ligo
contracts for testing purposes.
Solution: Add `parseContracts` function that returns `ParsedContract`
data that ignores every file which is not a ligo contract.
Problem: We want to support code folding for functions and types
in our lsp.
Solution: Add `foldingAST` function that produces an additional
list of ranges along with the given monad used in `haskell-lsp`
API to collect ranges that are consequently sent to server.
Problem: It happens that "go to definition" fails with lambda
parameters meaning that we do not create proper AST for it.
Also we need to restructure grammar so that we can support it in
the future.
Solution: Restructure grammar to use "param_decl" and ensure that
we use proper fields for parser resolution.
Problem: Currently we have not integrated our completions with
haskell-lsp server so that we could use this completion from text
editor itself.
Solution: Add the corresponding requests for handling code completion.
Problem: With generated ReasonLIGO grammar we need to develop its
parser as well. With it we also need to restructure AST a bit
and add expressions that are used for ReasonLIGO specifically.
Solution: Add ReasonLIGO parser and some dummy examples of its
usage, adapt AST to it, rename LIGO to AST.
Problem: We need to add stylish config to settle code style for our
project. Makefile to simplify its building. Also we need to check
our project for trailing whitespaces so we need to add the corresponding
script to be used later in CI.
Solution:
Add
- stylish-haskell config
- Makefile
- `check_trailing_whitespace` script
Problem: Before making parser for ReasonLIGO we need to construct
its grammar so that we can collect *all* errors and simplify our
further work with AST. Also since we use those grammars in squirrel
it would be conscise to use them from the project directory directly.
Solution: Add grammar for ReasonLIGO and move grammar to squirrel.
Problem: The current implementation of "Find references" and
"Go to definition" is not exposed via the LSP. We need to expose
them so that they are accessible from the client.
Solution: Add the necessary handlers, send response messages.