langium
    TypeScript icon, indicating that this package has built-in type declarations

    0.2.0 • Public • Published

    Langium

    Langium is a language engineering tool with built-in support for the Language Server Protocol. It has a simple and direct integration with the VS Code extension API.

    Getting Started

    Langium offers a Yeoman generator to create a new language extension for VS Code. The only prerequisite for the following terminal commands is NodeJS version 14 or higher.

    1. Install Yeoman and the Langium extension generator.
    npm install -g yo generator-langium
    
    1. Run the generator and answer a few questions.
    yo langium
    
    1. Open the new folder in VS Code (replace hello-world with the extension name you chose).
    code hello-world
    
    1. Press F5 to launch the extension in a new Extension Development Host window.

    2. Open a folder, create a file with your chosen file name extension (.hello is the default), and see that validation and completion (ctrl+space) works:

    Follow the instructions in langium-quickstart.md (in your extension folder) to go further.

    How Does it Work?

    The core of Langium is a grammar declaration language in which you describe multiple aspects of your language:

    • Tokens (keywords and terminal rules)
    • Syntax (parser rules)
    • Abstract syntax tree (AST)

    The grammar declaration language of Langium is very similar to Xtext. Please follow the Xtext documentation to learn how to use this language.

    Langium features a command line interface (langium-cli) that reads a grammar declaration and generates a parser, TypeScript type declarations for the AST and more.

    Integration with the Language Server Protocol (LSP) is done with vscode-languageserver. You have full access to the LSP API in Langium, so you can register additional message handlers or extend the protocol in a breeze.

    The main code of Langium consists of a set of services that are connected via dependency injection (DI). You can override the default functionality and add your own service classes by specifying a DI module.

    Examples

    The source repository of Langium includes examples that demonstrate different use cases.

    Install

    npm i langium

    DownloadsWeekly Downloads

    40

    Version

    0.2.0

    License

    MIT

    Unpacked Size

    1.06 MB

    Total Files

    279

    Last publish

    Collaborators

    • spoenemann
    • sailingfox