Skip to content
/ beat Public

Declarative programming markup language

Notifications You must be signed in to change notification settings

lyret/beat

Repository files navigation

This is very much a work in progress. Thank you for stopping by. ♥ ♥ ♥


GitHub package.json version license last-commit mantained-status

The Beat Language

Beat can best be seen as an exploration and implementation of several different idéas that been slowly rotating in my mind the last couple of years, mainly regarding

  • How infrastructure as code relate to the idéa of separation between code and data.

  • Limitations and constraints of text based programming.

  • The agreements and s.o.c. between applications and runtime environments and between developer and operating systems today.

The language definition and implementation is highly in flux, and this repository will be updated sporadicly as inspiration and motivation strikes.

Current syntax

The current state of the syntax can be viewed here.

Repository contents:

Source:

The source implementation of the Beat programming language, written in Typescript. See the documentation for further details.

  • Tests: Contains scripts for testing the source code.

Code client:

A VS code extension that provides language services for Beat.

  • Syntax: Contains a TextMate syntax definitions file for themable highligths in VS Code and other editors supporting the format.

  • Workspace: Contains testfiles in Beat syntax for testing the IDE with the Beat extension or language server installed.

Language server:

An Language service protocol implementation for Beat.

♥ Thanks to the authors of the following articles:

Installing, running and developing

The in-progress first implementation of Beat is being developed in Typescript for Node.JS, you can test it and help out by cloning this repository and getting it running on any machine meeting the following specifications:

os-version node-version typescript-version

A basic knowledge for using node.js, npm and typescript is required for getting started. No global packages are needed, but depending on your use case I recommend installing nvm and using it for switching to the correct node version for this project. Also Visual studio code is needed to test and work on the Language server implementation and Editor extension.