tree-sitter-purescript

Purescript language grammar for Tree-sitter.

Current state of the grammar

Parsing and highlighting is handled rather well; for instance, parsing 57k LOC of PureScript code across 700 files returns no errors, so it will work very well for your regular syntax highlighting tasks.

The areas of potential improvement at the moment are cleaner, better structured node trees, more elaborate queries, reducing the size of and the dependency for the C scanner as well as increasing the amount of tests. Some documentation wouldn't hurt too.

Editor support

Helix

PureScript support works out of the box.

Kakoune

Default configuration is present for kak-tree-sitter. Install the plugin and install PureScript grammar with ktsctl -fci purescript.

(Neo)Vim

PureScript support is available with nvim-treesitter plugin. First of all, make sure your Neovim installation recognizes PureScript filetype. If you have purescript-vim installed, this is already the case. If you haven't, you can either install it, or add PS filetype manually. To add it manually, add this to your init.lua:

vim.filetype.add({ extension = { purs = 'purescript' }})

After that, install the grammar with :TSInstall purescript and it's ready.

Q: Should I use this or purescript-vim?

Our grammar seems to provide more extensive highlighting, but these two do not conflict. If you enjoy the features that purescript-vim plugin provides, you can as well keep using both.

Emacs

TBA.

Other editors

Please suggest your ideas via issues.

Issues reporting and contributing

If you notice something not working correctly or simply have a suggestion or request to make, don't hesitate to open an issue, or open a pull request if you have code to share.

Related projects

Acknowledgments