Home

Awesome

Pest IDE Tools

IDE support for Pest, via the LSP.

This repository contains an implementation of the Language Server Protocol in Rust, for the Pest parser generator.

<p align="center"> <img src="demo.gif" alt="A demo of the Pest VSCode extension." /> </p>

Features

Please see the issues page to suggest features or view previous suggestions.

Usage

You can find documentation on how to set up the server for in the DOCS.md file.

Supported IDEs

Due to the usage of the LSP by this project, adding support for new IDEs should be far more achievable than a custom implementation for each editor. Please see the tracking issue to request support for another IDE or view the current status of IDE support.

Development

This repository uses a Taskfile; install the task command for a better experience developing in this repository.

The task fmt-and-lint can be used to check the formatting and lint your code to ensure it fits with the rest of the repository.

In VSCode, press F5 to build and debug the VSCode extension. This is the only method of debugging that we have pre set-up.

Architecture

The server itself is implemented in Rust using tower-lsp. It communicates with editors via JSON-RPC through standard input/output, according to the language server protocol.

Contributing

We appreciate contributions! I recommend reaching out on Discord (the invite to which can be found at pest.rs) before contributing, to check with us.

Credits