Skip to content

Commit

Permalink
readme
Browse files Browse the repository at this point in the history
  • Loading branch information
gfx committed Jul 6, 2024
1 parent ce25a1f commit bf70943
Showing 1 changed file with 28 additions and 5 deletions.
33 changes: 28 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
# TiTyS - Turing-Incomplete TypeScript as a Configuration Language
# TiTys - Turing-Incomplete TypeScript as a Configuration Language

TiTyS is a configuration language designed to be intuitive and easy to work with for both humans and machines. It draws inspiration from TypeScript and JSON, offering the benefits of both:
TiTys is a configuration language designed to be intuitive and easy to work with for both humans and machines. It draws inspiration from TypeScript and JSON, offering the benefits of both:

* **Readability and maintainability** for humans, similar to JSON.
* **Type safety and structure** for machines, inspired by TypeScript.

TiTyS is intentionally designed to be **Turing incomplete**. This means it's focused on defining configurations and not intended for general programming tasks. However, since it's a subset of TypeScript, you can still leverage the TypeScript development toolkit for features like language services.
TiTys is intentionally designed to be **Turing incomplete**. This means it's focused on defining configurations and not intended for general programming tasks. However, since it's a subset of TypeScript, you can still leverage the TypeScript development toolkit for features like language services.

## Project Status

This is a work in progress. **The current implementation is a proof of concept** and not yet feature complete. The goal is to provide a simple and easy-to-use configuration language that can be used in a variety of applications.

## Example

TiTyS definition:
TiTys definition:

```typescript
// edotor_config.ts
// editor_config.ts
const LF = "\x0A";

export const EditorConfig = {
Expand All @@ -27,6 +27,28 @@ export const EditorConfig = {
};
```

Right now, the only interface is a command called titis(1) (or `cargo run` on development).

```sh
$ cargo run ./editor_config.ts
```

the output is:

```json
{
"editorConfig": {
"tabSize": 4,
"trimTrailingWhitespace": true,
"endOfLine": "\n",
"encoding": "utf-8"
}
}
```

TBD

<!--
Use the data in Rust:
```rust
Expand All @@ -48,6 +70,7 @@ fn main() {
println!("{:?}", editorConfig);
}
```
-->

## Authors

Expand Down

0 comments on commit bf70943

Please sign in to comment.