<div align="center">
    <img src="https://devalang.com/images/devalang-logo.svg" alt="Devalang Logo" width="300" />
</div>

# TODOs list

This is a list of tasks and features to be implemented in Devalang. Note that this is not an exhaustive list, and some items may be added or removed over time.

## Commands

- [x] Init project
  - [x] Implement init command
  - [x] Implement template selector
  - [ ] Implement project name validation
- [x] Template
  - [x] Implement template list
  - [x] Implement template info
- [x] Checking
  - [x] Implement watch mode
  - [x] Implement debug mode
  - [ ] Implement compilation mode
- [x] Building
  - [x] Implement watch mode
  - [x] Implement debug mode
  - [ ] Implement compilation mode
  - [x] Implement compression mode
- [x] Play
  - [x] Implement Audio Engine
  - [x] Implement debug mode
  - [x] Implement loop mode

## Core components

- [x] Audio Engine
- [x] Lexer
- [x] Parser
- [x] Preprocessor
- [x] Debugger
- [x] Builder

## Syntax elements

- [x] #
- [x] @import
- [x] @export
- [x] @load
- [ ] @include
- [x] function
- [ ] pattern
- [x] group
- [x] call
- [x] spawn
- [x] sleep
- [x] bpm
- [x] bank
- [x] loop
- [x] let
- [x] if
- [x] else
- [x] else if

## Triggers

- [x] Built-in triggers
- [x] Custom triggers

## Other TODOs

- [ ] Comment all core components
- [ ] Add unit tests for all core components