{
  "$id": "https://json.schemastore.org/replit.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false,
  "description": "https://docs.replit.com/programming-ide/configuring-repl",
  "properties": {
    "run": {
      "description": "Command to run REPL",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "language": {
      "description": "Language name used in REPL",
      "type": "string",
      "$comment": "List is taken from https://replit.com/talk/learn/How-to-Get-a-List-of-All-Replit-Langauges/34411",
      "enum": [
        "clojure",
        "haskell",
        "kotlin",
        "qbasic",
        "forth",
        "lolcode",
        "brainf***",
        "emoticon",
        "bloop",
        "react_native",
        "unlambda",
        "javascript",
        "babel",
        "coffeescript",
        "scheme",
        "apl",
        "lua",
        "python",
        "ruby",
        "roy",
        "php",
        "python3",
        "nodejs",
        "enzyme",
        "go",
        "java",
        "cpp",
        "cpp11",
        "c",
        "csharp",
        "fsharp",
        "web_project",
        "html",
        "rust",
        "swift",
        "python_turtle",
        "basic",
        "jest",
        "django",
        "express",
        "sinatra",
        "rails",
        "rlang",
        "nextjs",
        "gatsbyjs",
        "reactjs",
        "reactts",
        "reactre",
        "flow",
        "bash",
        "quil",
        "polygott",
        "crystal",
        "julia",
        "perl6",
        "elixir",
        "nim",
        "dart",
        "gatsbyjsv2",
        "reason_nodejs",
        "tcl",
        "erlang",
        "typescript",
        "ocaml",
        "pygame",
        "love2d",
        "reason",
        "Tkinter",
        "tkinter",
        "java_swing",
        "php_server",
        "nodejs_prybar",
        "elisp",
        "php7",
        "sqlite",
        "java10",
        "php_cli",
        "nodejs_beta",
        "pyxel",
        "static",
        "go_beta",
        "nodejs_static",
        "python3_beta",
        "raku",
        "testj",
        "wasm",
        "java10_beta",
        "python_beta",
        "html_beta",
        "testj_beta",
        "scala",
        "riddlejs",
        "java_maven"
      ]
    },
    "audio": {
      "description": "Enable/disable system-wide audio in REPL",
      "type": "boolean"
    },
    "packager": {
      "description": "Universal Package Manager (UPM) configuration",
      "type": "object",
      "properties": {
        "afterInstall": {
          "description": "Command to run on new package install",
          "type": "string"
        },
        "ignoredPaths": {
          "description": "List of ignored path",
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1
          },
          "uniqueItems": true,
          "minItems": 1
        },
        "ignoredPackages": {
          "description": "List of ignored packages",
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1
          },
          "uniqueItems": true,
          "minItems": 1
        },
        "language": {
          "description": "Language name",
          "type": "string",
          "enum": [
            "python-python3-poetry",
            "python-python2-poetry",
            "nodejs-npm",
            "nodejs-yarn",
            "ruby-bundler",
            "elisp-cask",
            "dart-pub",
            "java-maven",
            "rlang",
            "dotnet",
            "rust"
          ]
        },
        "features": {
          "description": "Universal Package Manager (UPM) features",
          "type": "object",
          "properties": {
            "packageSearch": {
              "description": "Enable/disable package search panel",
              "type": "boolean"
            },
            "guessImports": {
              "description": "Enable/disable guessing required packages",
              "type": "boolean"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "languages": {
      "description": "Language configuration",
      "type": "object",
      "patternProperties": {
        ".": {
          "description": "Language configuration",
          "type": "object",
          "properties": {
            "glob": {
              "description": "Glob for language files",
              "type": "string",
              "minLength": 1
            },
            "languageServer": {
              "description": "Language Server Protocol (LSP) configuration",
              "type": "object",
              "properties": {
                "start": {
                  "description": "Command to run server",
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
  },
  "title": "Repl.it config schema (.replit)",
  "type": "object",
  "x-taplo-info": {
    "authors": ["Emily Grace Seville (https://github.com/EmilySeville7cfg)"],
    "patterns": ["\\.replit(?:\\.toml)?$"]
  }
}
