{ "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" } }