{
  "id": "leiningen",
  "name": "Leiningen",
  "homepage": "https://leiningen.org",
  "description": "Automating Clojure projects without setting your hair on fire.",
  "icon": "https://leiningen.org/img/favicon/apple-touch-icon.png",
  "executables": [
    "lein"
  ],
  "dotfiles": {
    "paths": [
      "~/.lein/profiles.clj",
      "~/.lein/profiles.d/"
    ],
    "secret": [
      "~/.lein/credentials.clj.gpg",
      "~/.lein/credentials.clj"
    ]
  },
  "commands": {
    "format": 1,
    "label": "Run a Leiningen task",
    "description": "Run a lein task such as test, repl, uberjar or new, optionally offline or forcing snapshot updates. Task-specific options are typed as plain arguments.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": false,
      "short_attached": false,
      "short_bundles": false
    },
    "source": [
      {
        "id": "man",
        "kind": "manual",
        "url": "https://manpages.debian.org/unstable/leiningen/lein.1.en.html",
        "revision": "2.11.2",
        "evidence": "lein [-o] [-U] [TASK [ARGS]]\nlein new NAME\nlein test [TESTS]\nlein repl\nlein uberjar\nlein install\nlein deploy [REPOSITORY]\nlein clean\nlein deps\nlein run\n-o Run a task offline.\n-U Run a task after forcing update of snapshots.\n"
      }
    ],
    "field": [
      {
        "id": "offline",
        "label": "Offline",
        "description": "Run the task offline.",
        "type": "boolean",
        "option": [
          "-o"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "update_snapshots",
        "label": "Force snapshot update",
        "type": "boolean",
        "option": [
          "-U"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "task",
        "label": "Task",
        "type": "string",
        "position": 0,
        "suggestions": [
          {
            "value": "new",
            "label": "New project"
          },
          {
            "value": "test",
            "label": "Run tests"
          },
          {
            "value": "repl",
            "label": "REPL"
          },
          {
            "value": "uberjar",
            "label": "Build standalone jar"
          },
          {
            "value": "install",
            "label": "Install locally"
          },
          {
            "value": "deploy",
            "label": "Deploy"
          },
          {
            "value": "clean",
            "label": "Clean target"
          },
          {
            "value": "deps",
            "label": "Download dependencies"
          },
          {
            "value": "run",
            "label": "Run -main"
          }
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "args",
        "label": "Task arguments",
        "description": "For example a project name for new, or test namespaces for test.",
        "type": "string",
        "position": 1,
        "multiple": true,
        "sources": [
          "man"
        ]
      }
    ],
    "task": [
      {
        "id": "run_tests",
        "label": "Run tests",
        "fields": [
          "task",
          "args",
          "offline"
        ],
        "required": [
          "task"
        ],
        "set": {
          "task": [
            "test"
          ]
        }
      },
      {
        "id": "new_project",
        "label": "Create a project",
        "fields": [
          "task",
          "args"
        ],
        "required": [
          "task",
          "args"
        ],
        "set": {
          "task": [
            "new"
          ]
        }
      },
      {
        "id": "build_uberjar",
        "label": "Build uberjar",
        "fields": [
          "task",
          "offline",
          "update_snapshots"
        ],
        "required": [
          "task"
        ],
        "set": {
          "task": [
            "uberjar"
          ]
        }
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "task",
          "args"
        ]
      },
      {
        "id": "advanced",
        "label": "Advanced",
        "fields": [
          "offline",
          "update_snapshots"
        ]
      }
    ]
  }
}
