Giter Club home page Giter Club logo

pest-ide-tools's Introduction

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.

A demo of the Pest VSCode extension.

Features

  • Error reporting.
  • Warnings for unused rules.
  • Syntax highlighting definitions available.
  • Rename rules.
  • Go to rule declaration, definition, or references.
  • Hover information for built-in rules and documented rules.
  • Autocompletion of rule names.
  • Inline and extract rules.
  • Full-unicode support.
  • Formatting.
  • Update checking.

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

  • Visual Studio Code
    • VSCode has a pre-built extension that can compile, update, and start up the language server. It also includes syntax highlighting definitions.
  • Sublime Text

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

pest-ide-tools's People

Contributors

jamalam360 avatar dependabot[bot] avatar huacnlee avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.