{ "name": "lux-lang", "displayName": "Lux Language", "description": "Language support for Lux - a functional language with algebraic effects", "version": "0.1.0", "publisher": "lux-lang", "repository": { "type": "git", "url": "https://github.com/lux-lang/lux" }, "engines": { "vscode": "^1.75.0" }, "categories": [ "Programming Languages" ], "keywords": [ "lux", "functional", "effects", "algebraic effects" ], "activationEvents": [ "onLanguage:lux" ], "main": "./out/extension.js", "contributes": { "languages": [ { "id": "lux", "aliases": ["Lux", "lux"], "extensions": [".lux"], "configuration": "./language-configuration.json", "icon": { "light": "./icons/lux-light.png", "dark": "./icons/lux-dark.png" } } ], "grammars": [ { "language": "lux", "scopeName": "source.lux", "path": "./syntaxes/lux.tmLanguage.json" } ], "configuration": { "title": "Lux", "properties": { "lux.lspPath": { "type": "string", "default": "", "description": "Path to the Lux binary. If empty, searches PATH." }, "lux.lsp.enabled": { "type": "boolean", "default": true, "description": "Enable the Lux language server" }, "lux.format.onSave": { "type": "boolean", "default": false, "description": "Format files on save" }, "lux.diagnostics.enabled": { "type": "boolean", "default": true, "description": "Enable inline diagnostics" } } }, "commands": [ { "command": "lux.run", "title": "Lux: Run Current File" }, { "command": "lux.format", "title": "Lux: Format Document" }, { "command": "lux.check", "title": "Lux: Type Check File" }, { "command": "lux.startRepl", "title": "Lux: Start REPL" }, { "command": "lux.sendToRepl", "title": "Lux: Send Selection to REPL" }, { "command": "lux.restartLsp", "title": "Lux: Restart Language Server" } ], "keybindings": [ { "command": "lux.run", "key": "ctrl+shift+r", "mac": "cmd+shift+r", "when": "editorLangId == lux" }, { "command": "lux.sendToRepl", "key": "ctrl+enter", "mac": "cmd+enter", "when": "editorLangId == lux && editorHasSelection" } ], "menus": { "editor/context": [ { "command": "lux.run", "when": "editorLangId == lux", "group": "lux" }, { "command": "lux.sendToRepl", "when": "editorLangId == lux && editorHasSelection", "group": "lux" } ] }, "snippets": [ { "language": "lux", "path": "./snippets/lux.json" } ] }, "scripts": { "vscode:prepublish": "npm run compile", "compile": "tsc -p ./", "watch": "tsc -watch -p ./", "lint": "eslint src --ext ts" }, "devDependencies": { "@types/node": "^18.x", "@types/vscode": "^1.75.0", "@typescript-eslint/eslint-plugin": "^6.0.0", "@typescript-eslint/parser": "^6.0.0", "eslint": "^8.0.0", "typescript": "^5.0.0" }, "dependencies": { "vscode-languageclient": "^9.0.0" } }