shelly-shell 0.5.4

A Rust based Unix style shell with a typed and structured language syntax.
{
    "name": "shelly-shell",
    "displayName": "Shelly Shell",
    "description": "Parser-driven language support for the Shelly shell and scripting language.",
    "version": "0.2.1",
    "publisher": "cstrainge",
    "license": "MIT",
    "author": "Chloƫ Strainge",
    "icon": "Shelly.png",
    "homepage": "https://github.com/cstrainge/shelly#readme",
    "bugs": {
        "url": "https://github.com/cstrainge/shelly/issues"
    },
    "keywords": [
        "shelly",
        "shell",
        "shy",
        "language",
        "semantic highlighting"
    ],
    "galleryBanner": {
        "color": "#151a21",
        "theme": "dark"
    },
    "repository": {
        "type": "git",
        "url": "https://github.com/cstrainge/shelly.git",
        "directory": "extensions/vscode"
    },
    "engines": {
        "vscode": "^1.140.0",
        "node": ">=22"
    },
    "categories": [
        "Programming Languages"
    ],
    "extensionKind": [
        "workspace"
    ],
    "capabilities": {
        "untrustedWorkspaces": {
            "supported": "limited",
            "description": "Source analysis is available without executing documents. Trust is required to select a server executable through workspace settings.",
            "restrictedConfigurations": [
                "shelly-shell.serverPath"
            ]
        },
        "virtualWorkspaces": false
    },
    "main": "./out/extension.js",
    "contributes": {
        "languages": [
            {
                "id": "shelly",
                "aliases": [
                    "Shelly",
                    "shelly"
                ],
                "extensions": [
                    ".shy"
                ],
                "firstLine": "^#!.*\\bshelly\\b",
                "configuration": "./language-configuration.json"
            }
        ],
        "commands": [
            {
                "command": "shelly-shell.restartServer",
                "title": "Shelly: Restart Language Server"
            }
        ],
        "configuration": {
            "title": "Shelly",
            "properties": {
                "shelly-shell.serverPath": {
                    "type": "string",
                    "default": "shelly",
                    "scope": "machine-overridable",
                    "description": "Path to a Shelly executable supporting --language-server. A bare name is resolved through PATH. Restart the server after changing this setting."
                },
                "shelly-shell.trace.server": {
                    "type": "string",
                    "enum": [
                        "off",
                        "messages",
                        "verbose"
                    ],
                    "default": "off",
                    "description": "Trace language-server communication in the Shelly output channel."
                }
            }
        },
        "configurationDefaults": {
            "[shelly]": {
                "editor.semanticHighlighting.enabled": true
            }
        },
        "semanticTokenTypes": [
            {
                "id": "shellyBuiltin",
                "superType": "function",
                "description": "A native Shelly function."
            },
            {
                "id": "shellyAlias",
                "superType": "function",
                "description": "A command alias."
            },
            {
                "id": "shellyCommand",
                "superType": "function",
                "description": "An external or unresolved command name."
            },
            {
                "id": "shellyArgument",
                "superType": "string",
                "description": "An ordinary command argument."
            },
            {
                "id": "shellyLiteral",
                "superType": "keyword",
                "description": "A Boolean, enum variant, or discard."
            },
            {
                "id": "shellyDelimiter",
                "superType": "operator",
                "description": "A bracket or separator."
            },
            {
                "id": "shellyFormat",
                "superType": "namespace",
                "description": "A pipeline conversion descriptor."
            },
            {
                "id": "shellyEscape",
                "superType": "string",
                "description": "An escape within a string."
            },
            {
                "id": "shellyError",
                "description": "An invalid source span."
            }
        ],
        "semanticTokenScopes": [
            {
                "language": "shelly",
                "scopes": {
                    "shellyBuiltin": [
                        "support.function"
                    ],
                    "shellyAlias": [
                        "entity.name.function"
                    ],
                    "shellyCommand": [
                        "entity.name.function"
                    ],
                    "shellyArgument": [
                        "string.unquoted"
                    ],
                    "shellyLiteral": [
                        "constant.language"
                    ],
                    "shellyDelimiter": [
                        "punctuation"
                    ],
                    "shellyFormat": [
                        "entity.name.namespace"
                    ],
                    "shellyEscape": [
                        "constant.character.escape"
                    ],
                    "shellyError": [
                        "invalid.illegal"
                    ]
                }
            }
        ],
        "grammars": [
            {
                "language": "shelly",
                "scopeName": "source.shelly",
                "path": "./syntaxes/shelly.tmLanguage.json",
                "balancedBracketScopes": [
                    "*"
                ],
                "unbalancedBracketScopes": [
                    "comment",
                    "string"
                ]
            }
        ]
    },
    "scripts": {
        "check": "tsc -p . --noEmit",
        "test": "../../target/debug/shelly -m test.shy",
        "compile": "npm run check && node build.mjs",
        "watch": "npm run check && node build.mjs --watch",
        "vscode:prepublish": "npm run compile",
        "package": "vsce package --no-dependencies --out shelly-shell.vsix",
        "publish:marketplace": "vsce publish --packagePath shelly-shell.vsix"
    },
    "dependencies": {
        "vscode-languageclient": "10.1.2"
    },
    "devDependencies": {
        "@types/node": "26.6.5",
        "@types/vscode": "1.140.0",
        "@vscode/vsce": "4.0.0",
        "esbuild": "0.28.2",
        "typescript": "7.0.2",
        "vscode-oniguruma": "1.7.0",
        "vscode-textmate": "9.3.2"
    }
}