Socket
Socket
Sign inDemoInstall

langium-cli

Package Overview
Dependencies
25
Maintainers
0
Versions
39
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    langium-cli

CLI for Langium - the language engineering tool


Version published
Weekly downloads
3K
increased by55.8%
Maintainers
0
Created
Weekly downloads
 

Readme

Source

Langium CLI

This package provides a command line interface for Langium.

Usage: langium [options] [command]

Options:

  • -V, --version — output the version number
  • -h, --help — display help for command

Commands:

  • generate [options] — generate code for a Langium grammar
  • help [command] — display help for command

Generating Language Infrastructure

The main purpose of this tool is to generate the infrastructure for a language from its grammar declaration file. This command requires a configuration file langium-config.json.

Usage: langium generate [options]

Options:

  • -f, --file <file> — the configuration file or package.json setting up the generator
  • -w, --watch — enables watch mode
  • -h, --help — display help for command

Configuration

The configuration for the generate command is written into a file named langium-config.json. Alternatively, it can be embedded in the package.json using a property langium.

Schema:

{
    // Name of the language project
    projectName: string
    // Array of language configurations
    languages: {
        // The identifier of your language as used in vscode
        id: string
        // Path to the grammar file
        grammar: string
        // File extensions with leading `.`
        fileExtensions: string[]
        // Enable case-insensitive keywords parsing
        caseInsensitive: boolean
        // Enable generating a TextMate syntax highlighting file
        textMate: {
            // Output path to syntax highlighting file (json)
            out: string
        }
        // Enable generating a monarch syntax highlighting file
        monarch: {
            // Output path to syntax highlighting file (js)
            out: string
        }
        // Enable generating a prism syntax highlighting file
        prism: {
            // Output path to syntax highlighting file (js)
            out: string
        }
        // Enable generating railroad syntax diagram
        railroad: {
            // Output path to syntax diagrams
            out: string
            // Whether to print diagrams all into a single html file or in separate svg files (optional)
            mode: 'html' | 'svg'
        }
        // Configure the chevrotain parser for a single language
        chevrotainParserConfig: IParserConfig
    }[]
    // Main output directory for TypeScript code
    out: string
    // Set the file extension for generated local imports (e.g. ".js")
    importExtension: string
    // Configure the chevrotain parser for all languages
    chevrotainParserConfig: IParserConfig
}

Example:

{
    "projectName": "DomainModel",
    "languages": [{
        "id": "domain-model",
        "grammar": "src/language-server/domain-model.langium",
        "fileExtensions": [".dmodel"],
        "textMate": {
            "out": "syntaxes/domain-model.tmLanguage.json"
        },
        "railroad": {
            "out": "docs/syntax-diagram.html"
        }
    }],
    "out": "src/language-server/generated",
    "chevrotainParserConfig": {
        "recoveryEnabled": true,
        "nodeLocationTracking": "full",
        "maxLookahead": 3
    }
}

Keywords

FAQs

Last updated on 20 Jun 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc