simplicityhl 0.5.0

Rust-like language that compiles to Simplicity bytecode.
Documentation
{
  "name": "simplicityhl",
  "displayName": "SimplicityHL Language Support",
  "description": "Syntax highlighting and autocompletion for SimplicityHL (Simfony) language",
  "version": "0.3.1",
  "publisher": "Blockstream",
  "repository": {
    "type": "git",
    "url": "https://github.com/BlockstreamResearch/SimplicityHL"
  },
  "engines": {
    "vscode": "^1.85.0"
  },
  "categories": [
    "Programming Languages"
  ],
  "main": "dist/extension.js",
  "contributes": {
    "languages": [
      {
        "id": "simplicityhl",
        "aliases": [
          "Simfony",
          "simfony",
          "SimplicityHL",
          "simplicityhl"
        ],
        "extensions": [
          ".simf"
        ],
        "icon": {
          "dark": "./icons/simf.svg",
          "light": "./icons/simf.svg"
        },
        "configuration": "./language-configuration.json"
      },
      {
        "id": "simplicityhl-witness",
        "aliases": [
          "Simfony witness",
          "simfony witness",
          "SimplicityHL witness",
          "simplicityhl witness"
        ],
        "extensions": [
          ".wit"
        ],
        "icon": {
          "dark": "./icons/wit.svg",
          "light": "./icons/wit.svg"
        },
        "configuration": "./witness-configuration.json"
      }
    ],
    "grammars": [
      {
        "language": "simplicityhl",
        "scopeName": "source.simfony",
        "path": "./syntaxes/simfony.tmLanguage.json"
      },
      {
        "language": "simplicityhl-witness",
        "scopeName": "source.wit",
        "path": "./syntaxes/witness.tmLanguage.json"
      }
    ],
    "snippets": [
      {
        "language": "simplicityhl",
        "path": "./snippets/simplicityhl.json"
      }
    ],
    "configuration": {
      "title": "SimplicityHL",
      "properties": {
        "simplicityhl.suppressMissingLspWarning": {
          "type": "boolean",
          "default": false,
          "description": "Do not show missing LSP executable warning."
        },
        "simplicityhl.disableAutoupdate": {
          "type": "boolean",
          "default": false,
          "description": "Do not autoupdate LSP server."
        },
        "simplicityhl.compiler.path": {
          "type": "string",
          "default": "",
          "description": "Path to the simc compiler. If empty, searches PATH and common locations."
        },
        "simplicityhl.build.autoSaveBeforeCompile": {
          "type": "boolean",
          "default": true,
          "description": "Automatically save the file before compiling."
        }
      }
    },
    "commands": [
      {
        "command": "simplicityhl.restartServer",
        "title": "Restart Server",
        "category": "SimplicityHL"
      },
      {
        "command": "simplicityhl.compileFile",
        "title": "Compile Current File",
        "category": "SimplicityHL",
        "icon": "$(play)"
      },
      {
        "command": "simplicityhl.compileFileDebug",
        "title": "Compile with Debug Symbols",
        "category": "SimplicityHL"
      },
      {
        "command": "simplicityhl.compileWithWitness",
        "title": "Compile with Witness",
        "category": "SimplicityHL"
      },
      {
        "command": "simplicityhl.compileJson",
        "title": "Compile to JSON",
        "category": "SimplicityHL"
      }
    ],
    "menus": {
      "editor/title": [
        {
          "when": "resourceLangId == simplicityhl",
          "command": "simplicityhl.compileFile",
          "group": "navigation"
        }
      ],
      "editor/context": [
        {
          "when": "resourceLangId == simplicityhl",
          "command": "simplicityhl.compileFile",
          "group": "1_modification"
        },
        {
          "when": "resourceLangId == simplicityhl",
          "command": "simplicityhl.compileWithWitness",
          "group": "1_modification"
        }
      ],
      "commandPalette": [
        {
          "command": "simplicityhl.compileFile",
          "when": "resourceLangId == simplicityhl"
        },
        {
          "command": "simplicityhl.compileFileDebug",
          "when": "resourceLangId == simplicityhl"
        },
        {
          "command": "simplicityhl.compileWithWitness",
          "when": "resourceLangId == simplicityhl"
        },
        {
          "command": "simplicityhl.compileJson",
          "when": "resourceLangId == simplicityhl"
        }
      ]
    },
    "keybindings": [
      {
        "command": "simplicityhl.compileFile",
        "key": "ctrl+shift+b",
        "mac": "cmd+shift+b",
        "when": "resourceLangId == simplicityhl"
      }
    ],
    "taskDefinitions": [
      {
        "type": "simplicityhl",
        "required": [
          "command"
        ],
        "properties": {
          "command": {
            "type": "string",
            "enum": [
              "compile",
              "compile-debug",
              "compile-with-witness"
            ],
            "description": "The compilation command to run"
          },
          "file": {
            "type": "string",
            "description": "The SimplicityHL file to compile (defaults to current file)"
          },
          "witnessFile": {
            "type": "string",
            "description": "The witness file to use (for compile-with-witness)"
          }
        }
      }
    ],
    "problemMatchers": [
      {
        "name": "simplicityhl",
        "owner": "simplicityhl",
        "fileLocation": [
          "absolute"
        ],
        "pattern": {
          "regexp": "^Error:\\s+(.*)$",
          "message": 1
        },
        "severity": "error"
      }
    ]
  },
  "license": "MIT",
  "scripts": {
    "compile": "npm run check-types && node esbuild.js --production",
    "check-types": "tsc --noEmit",
    "watch": "npm-run-all -p watch:*",
    "watch:esbuild": "node esbuild.js --watch",
    "watch:tsc": "tsc --noEmit --watch --project tsconfig.json",
    "vscode:prepublish": "npm run compile",
    "login": "vsce login Simplicity",
    "package": "vsce package",
    "eslint-check": "eslint . --ext .ts",
    "publish": "vsce publish"
  },
  "icon": "icon.png",
  "devDependencies": {
    "@eslint/js": "^9.13.0",
    "@stylistic/eslint-plugin": "^2.9.0",
    "@types/node": "^22",
    "esbuild": "^0.25.9",
    "ts-loader": "^9.5.4",
    "@types/vscode": "^1.66.0",
    "@vscode/vsce": "^3.6.0",
    "@typescript-eslint/eslint-plugin": "^8.44.1",
    "@typescript-eslint/parser": "^8.44.1",
    "eslint": "^9.36.0",
    "eslint-plugin-promise": "^7.2.1",
    "jiti": "^2.6.0",
    "ts-node": "^10.9.2",
    "typescript": "^5.7.3",
    "typescript-eslint": "^8.44.1"
  },
  "dependencies": {
    "vscode-languageclient": "^9.0.1"
  }
}