IDE support for Pest, via the LSP.
This repository contains an implementation of the Language Server Protocol in Rust, for the Pest parser generator.
Please see the issues page to suggest features or view previous suggestions.
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.
The method of updating your config is editor specific.
The available options are:
jsonc
{
// Set a custom path to a Pest LS binary
"pestIdeTools.serverPath": "/path/to/binary",
// Custom arguments to pass to the Pest LS binary
"pestIdeTools.customArgs": [],
// Check for updates to the Pest LS binary via crates.io
"pestIdeTools.checkForUpdates": true,
// Ignore specific rule names for the unused rules diagnostics (useful for specifying root rules)
"pestIdeTools.alwaysUsedRuleNames": [
"rule_one",
"rule_two"
]
}
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.
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.
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.