Self-hosted compiler (selfhost/*.ludic), runtime, examples, editor tooling, and docs. Phase 1 of the syntax-redesign cohesion pass has landed: edge-system fix, signature-query, when-alias, and the documentation truth-pass. Suite green (14/14), C-free bootstrap fixpoint holds. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
158 lines
4.2 KiB
JSON
158 lines
4.2 KiB
JSON
{
|
|
"name": "ludic",
|
|
"displayName": "Ludic",
|
|
"description": "Ludic language support: syntax highlighting, formatting, and the ludic-lsp language server. Also highlights ```ludic fences in Markdown.",
|
|
"version": "1.0.0",
|
|
"publisher": "ludic",
|
|
"license": "MIT",
|
|
"engines": {
|
|
"vscode": "^1.75.0"
|
|
},
|
|
"categories": [
|
|
"Programming Languages",
|
|
"Formatters",
|
|
"Linters"
|
|
],
|
|
"keywords": [
|
|
"ludic",
|
|
"ecs",
|
|
"gamedev"
|
|
],
|
|
"main": "./src/extension.js",
|
|
"activationEvents": [
|
|
"onLanguage:ludic",
|
|
"onLanguage:markdown",
|
|
"workspaceContains:**/*.ludic"
|
|
],
|
|
"contributes": {
|
|
"languages": [
|
|
{
|
|
"id": "ludic",
|
|
"aliases": [
|
|
"Ludic",
|
|
"ludic"
|
|
],
|
|
"extensions": [
|
|
".ludic"
|
|
],
|
|
"configuration": "./language-configuration.json",
|
|
"icon": {
|
|
"light": "./icons/ludic.svg",
|
|
"dark": "./icons/ludic.svg"
|
|
}
|
|
}
|
|
],
|
|
"grammars": [
|
|
{
|
|
"language": "ludic",
|
|
"scopeName": "source.ludic",
|
|
"path": "./syntaxes/ludic.tmLanguage.json"
|
|
},
|
|
{
|
|
"scopeName": "markdown.ludic.codeblock",
|
|
"path": "./syntaxes/ludic.markdown-injection.json",
|
|
"injectTo": [
|
|
"text.html.markdown"
|
|
],
|
|
"embeddedLanguages": {
|
|
"meta.embedded.block.ludic": "ludic"
|
|
}
|
|
}
|
|
],
|
|
"semanticTokenScopes": [
|
|
{
|
|
"language": "ludic",
|
|
"scopes": {
|
|
"struct": [
|
|
"entity.name.type.component.ludic"
|
|
],
|
|
"class": [
|
|
"entity.name.type.archetype.ludic"
|
|
],
|
|
"namespace": [
|
|
"entity.name.type.scene.ludic"
|
|
],
|
|
"function.defaultLibrary": [
|
|
"support.function.builtin.ludic"
|
|
],
|
|
"enumMember.readonly.defaultLibrary": [
|
|
"constant.language.phase.ludic"
|
|
],
|
|
"decorator": [
|
|
"entity.name.function.decorator.ludic"
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"configuration": {
|
|
"title": "Ludic",
|
|
"properties": {
|
|
"ludic.server.path": {
|
|
"type": "string",
|
|
"default": "",
|
|
"markdownDescription": "Path to the `ludic-lsp` binary. Empty means: look in `build/ludic-lsp` under each workspace folder, then on `PATH`."
|
|
},
|
|
"ludic.server.enabled": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Run the Ludic language server. Turn this off to keep only the static syntax highlighting."
|
|
},
|
|
"ludic.compilerPath": {
|
|
"type": "string",
|
|
"default": "",
|
|
"markdownDescription": "Path to `ludicc`. The server shells out to it for authoritative diagnostics on save. Empty means `build/ludicc` under the workspace."
|
|
},
|
|
"ludic.compilerDiagnostics": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Report errors from the Ludic compiler on save, in addition to the server's own structural checks."
|
|
},
|
|
"ludic.indentSize": {
|
|
"type": "number",
|
|
"default": 2,
|
|
"description": "Spaces per indent level used by the formatter when the editor does not say otherwise."
|
|
},
|
|
"ludic.trace.server": {
|
|
"type": "string",
|
|
"enum": [
|
|
"off",
|
|
"messages",
|
|
"verbose"
|
|
],
|
|
"default": "off",
|
|
"description": "Log the traffic between VS Code and the Ludic language server."
|
|
}
|
|
}
|
|
},
|
|
"commands": [
|
|
{
|
|
"command": "ludic.restartServer",
|
|
"title": "Ludic: Restart Language Server"
|
|
},
|
|
{
|
|
"command": "ludic.showOutput",
|
|
"title": "Ludic: Show Language Server Log"
|
|
}
|
|
],
|
|
"configurationDefaults": {
|
|
"[ludic]": {
|
|
"editor.insertSpaces": true,
|
|
"editor.tabSize": 2,
|
|
"editor.semanticHighlighting.enabled": true
|
|
}
|
|
},
|
|
"snippets": [
|
|
{
|
|
"language": "ludic",
|
|
"path": "./snippets/ludic.json"
|
|
}
|
|
]
|
|
},
|
|
"dependencies": {
|
|
"vscode-languageclient": "^9.0.1"
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://example.invalid/ludic"
|
|
}
|
|
}
|