Skip to content

VSCode language extension for RAILS specification (part of GuardRails project)

License

Notifications You must be signed in to change notification settings

JoanGi/guardrails-vscode

Repository files navigation

GuardRails for VSCode

GuardRails for VSCode is a language plugin to help developers during the creation of the RAILS specification

The project is in an early stage, and is not ready for production. Please help us to improve the developer experience using GuardRails.

If you are seeking for the GuardRails project this is the repo

Installation

Until have a minimal usable version the best way to test the plugin is cloning the repository in local.

Open it with an VSCode instance, and in the debug tag run the "Run Extension" debugging.

This will open a new instance of VSCode with the plugin enabled.

Contributing

This project is an open-source project, and we are open (and expecting!) to contributions from the community. If you are interested in contributing to this project, please first read the CONTRIBUTING.md guidelines file.

Repository structure

The following tree shows the list of the repository's relevant sections:

  • The test_lab folder contains the examples of the RAILs specification. Can be useful to test the plugin.
  • The out folder contains the executable plugin in JS. You may not want to dive in as it is generated by the TypeScrpit compiler
  • The src folder contains the project's source code
    • The cli folder is the generated grammar and AST from Langium. You may not want to dive in it as it is a generated asset
    • The generator-service folder contains all the code of the generation service. Could be a good place to start if you want to improve the generation of the tool.
    • The language-server folder contains all the language features, and the grammar declaration. If you want to improve the grammar, or some of the features the plugin offers here is the place you may want to start
      • The rails.langium file contains the main grammar declaration. This grammar is developed using the Langium Grammar Language. Please refer to the linked documentation to more insights on how to develop the grammar.

├── test_lab                                // Here are the examples of RAILS specification 
├── out                                     // The generated JS from the src folder
└── src                                     // The source code of the project
  ├── cli                                     // Langium framework utils
  ├── hints-service                  // The service that proveide the Hover hints
  └── language-server                         // The tool's language features
        ├── generated                           // Generated grammar and AST from Langium
        ├── rails-index.ts        // Custom index feature
        ├── rails-module.ts       // Declaration of the custom language features
        ├── rails-validator.ts    // Custom language features 
        └── rails.langium         // The main grammar file of the tool
  

Testing and Debugging the extensions

This repo comes with an already built-in config to debug. Just go to Debug in VSCode, and launch the Extension config. Please check your port 6009 is free.

For more information about how the framework works and how the language can be extended, please refer to https://github.com/langium/langium or the VSCode extension API documentation https://code.visualstudio.com/api

Code of Conduct

In this project we are dedicated to creating and maintaining welcoming, inclusive, safe, and harassment-free development spaces. Anyone participating will be subject to and agrees to sign on to our Code of Conduct.

License

Shield: License: MIT

The source code for the site is licensed under the MIT license, which you can find in the MIT-LICENSE file.

All graphical assets are licensed under the Creative Commons Attribution 3.0 Unported License.

About

VSCode language extension for RAILS specification (part of GuardRails project)

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published