difftastic/vendored_parsers/tree-sitter-elm
Wilfred Hughes 1dd7bbebe8 Merge commit '09dbf221d7491dc8d8839616b27c21b9c025c457' 2024-04-28 23:48:30 +07:00
..
.github Merge commit '09dbf221d7491dc8d8839616b27c21b9c025c457' 2024-04-28 23:48:30 +07:00
.vscode Rename vendor/ directory 2023-01-10 08:35:01 +07:00
bindings Merge commit '09dbf221d7491dc8d8839616b27c21b9c025c457' 2024-04-28 23:48:30 +07:00
docs Merge commit '09dbf221d7491dc8d8839616b27c21b9c025c457' 2024-04-28 23:48:30 +07:00
queries Rename vendor/ directory 2023-01-10 08:35:01 +07:00
script Merge commit '09dbf221d7491dc8d8839616b27c21b9c025c457' 2024-04-28 23:48:30 +07:00
src Merge commit '09dbf221d7491dc8d8839616b27c21b9c025c457' 2024-04-28 23:48:30 +07:00
test Merge commit '09dbf221d7491dc8d8839616b27c21b9c025c457' 2024-04-28 23:48:30 +07:00
.editorconfig Rename vendor/ directory 2023-01-10 08:35:01 +07:00
.gitattributes Rename vendor/ directory 2023-01-10 08:35:01 +07:00
.gitignore Merge commit '09dbf221d7491dc8d8839616b27c21b9c025c457' 2024-04-28 23:48:30 +07:00
.npmignore Rename vendor/ directory 2023-01-10 08:35:01 +07:00
Cargo.toml Merge commit '09dbf221d7491dc8d8839616b27c21b9c025c457' 2024-04-28 23:48:30 +07:00
HOW_TO_RELEASE.md Merge commit '09dbf221d7491dc8d8839616b27c21b9c025c457' 2024-04-28 23:48:30 +07:00
LICENSE.md Rename vendor/ directory 2023-01-10 08:35:01 +07:00
Package.swift Merge commit '09dbf221d7491dc8d8839616b27c21b9c025c457' 2024-04-28 23:48:30 +07:00
README.md Rename vendor/ directory 2023-01-10 08:35:01 +07:00
binding.gyp Merge commit '09dbf221d7491dc8d8839616b27c21b9c025c457' 2024-04-28 23:48:30 +07:00
grammar.js Merge commit '09dbf221d7491dc8d8839616b27c21b9c025c457' 2024-04-28 23:48:30 +07:00
package.json Merge commit '09dbf221d7491dc8d8839616b27c21b9c025c457' 2024-04-28 23:48:30 +07:00
tsconfig.json Rename vendor/ directory 2023-01-10 08:35:01 +07:00

README.md

Build Status

Elm tree sitter

Why am I doing this?

I believe that Elm would greatly benefit from better tooling, the ultimate goal is to write a language server integration. This is a possible building block for that.

What it brings to the table:

  • Very fast parsing, should enable parsing on each keystroke.
  • Resilient, even if you use wrong syntax, most of the file should still be recognized alright.
  • Should also be useful to the elm atom maintainers, as atom is using tree sitter as the new default for code highlighting (our ast might be too expressive). Highlight implementation still needs to be done if wanted.

What is this tested with?

This is tested against the tests included in the repo and:

So it should work fine for a fair amount of code. What's not tested right now is behavior in error cases.

Thanks

Very very big thanks goes out to @klazuka and the people of intellij-elm as I basically stole how they're creating their parser minus the GLSL implementation.

Want to help?

Help writing some tests or simply find valid elm files, that fail parsing. Test are located in the test folder and separated in parser tests and highlighting tests.