3.4.0 • Published 4 months ago

langium v3.4.0

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

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.

More information: 🌍 https://langium.org

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 16 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) and the documentation on the website 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)

Please follow the Langium documentation to learn how to use this language.

Langium features a command line interface (langium-cli) that reads a grammar declaration and generates 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.

3.4.0

4 months ago

3.2.1

8 months ago

3.4.0-next.325db9f

7 months ago

3.4.0-next.325db9e

7 months ago

3.4.0-next.10c0eb7

4 months ago

3.3.1

6 months ago

3.3.0

8 months ago

3.4.0-next.1409e5d

7 months ago

3.2.0

10 months ago

3.2.0-next.5063a2b

10 months ago

3.1.3

11 months ago

3.1.2

1 year ago

3.1.1

1 year ago

3.1.0

1 year ago

3.0.0

1 year ago

2.1.3

2 years ago

2.1.2

2 years ago

2.1.1

2 years ago

2.1.0

2 years ago

1.3.1

2 years ago

2.0.2

2 years ago

2.0.1

2 years ago

1.3.0

2 years ago

1.2.1

2 years ago

2.0.0

2 years ago

1.2.0

2 years ago

1.1.0

2 years ago

1.0.1

3 years ago

1.0.0

3 years ago

0.5.0

3 years ago

0.4.0

3 years ago

0.3.0

3 years ago

0.2.0

4 years ago

0.1.0

4 years ago