Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 64 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,66 @@
# Player Language

- DSL
- DSL Generators
- LSP
Language tooling and DSL framework for [Player UI](https://github.com/player-ui/player) — providing a language server, validation, completions, and programmatic DSLs for authoring Player content.

## Packages

### Language Server & Services

| Package | Description |
|---|---|
| `@player-lang/json-language-service` | Core language service: JSON parsing, validation, completions, hover, and go-to-definition for Player content |
| `@player-lang/json-language-server` | LSP server wrapping the language service for IDE integration |
| `@player-lang/typescript-expression-plugin` | Plugin for validating TypeScript expressions within Player content |
| `@player-lang/complexity-check-plugin` | Plugin for analyzing Player content complexity |
| `@player-lang/metrics-output-plugin` | Plugin for collecting and reporting language service metrics |

### DSLs & Code Generation

| Package | Description |
|---|---|
| `@player-lang/functional-dsl` | Functional DSL for constructing Player content programmatically |
| `@player-lang/react-dsl` | React component DSL for authoring Player content |
| `@player-lang/functional-dsl-generator` | CLI tool (`functional-generator`) for generating type-safe DSL builders from schemas |

### Common

| Package | Description |
|---|---|
| `@player-lang/static-xlrs` | Pre-compiled XLR type definitions for Player assets |
| `@player-lang/test-utils` | Testing utilities for language service and DSL packages |


## Getting Started

**Prerequisites:** Node.js 22+ and pnpm 10+

```bash
git clone https://github.com/player-ui/language.git
cd language
pnpm install
```

**Build:**
```bash
bazel build //...
```

**Test:**
```bash
bazel test //...
```

## Repo Structure

```
/lsp Language server & services
/dsl DSL packages (functional, React)
/generators Code generation tools
/common Shared utilities and type definitions
/helpers Build and test helpers
/scripts Build and utility scripts
```

## License

MIT
14 changes: 8 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,15 @@
},
"packageManager": "pnpm@10.13.1",
"dependencies": {
"@player-ui/player": "^0.15.0",
"@player-ui/types": "^0.15.0",
"@player-ui/player": "*",
"@player-ui/types": "*",
"@types/node": "^18.18.0",
"@types/react": "^18.3.3",
"@typescript/vfs": "^1.4.0",
"@xlr-lib/xlr": "0.1.1-next.4",
"@xlr-lib/xlr-converters": "0.1.1-next.4",
"@xlr-lib/xlr-sdk": "0.1.1-next.4",
"@xlr-lib/xlr-utils": "0.1.1-next.4",
"@xlr-lib/xlr": "^1.0.0",
"@xlr-lib/xlr-converters": "^1.0.0",
"@xlr-lib/xlr-sdk": "^1.0.0",
"@xlr-lib/xlr-utils": "^1.0.0",
"detect-indent": "^6.0.0",
"dequal": "^2.0.2",
"fs-extra": "^10.0.0",
Expand All @@ -41,6 +41,8 @@
"vscode-languageserver-types": "^3.15.1"
},
"devDependencies": {
"@player-ui/player": "^0.15.0",
"@player-ui/types": "^0.15.0",
"@auto-it/version-file": "^10.46.0",
"@eslint/js": "^9.22.0",
"@vitest/coverage-v8": "^2.1.3",
Expand Down