{
  "id": "stack",
  "name": "Stack",
  "homepage": "https://haskellstack.org",
  "description": "Stack is a program for developing Haskell projects, aimed at new and experienced users and supporting Linux, macOS and Windows.",
  "icon": "https://docs.haskellstack.org/en/stable/img/stack-favicon.svg",
  "executables": [
    "stack"
  ],
  "dotfiles": {
    "paths": [
      "~/.stack/config.yaml",
      "%APPDATA%/stack/config.yaml"
    ],
    "exclude": [],
    "secret": [
      "~/.stack/upload/credentials.json",
      "%APPDATA%/stack/upload/credentials.json"
    ],
    "machine_lines": [
      {
        "file": [
          "~/.stack/config.yaml",
          "%APPDATA%/stack/config.yaml"
        ],
        "match": {
          "key_path": [
            "local-bin-path",
            "local-programs-path",
            "extra-path"
          ]
        },
        "scope": "backup"
      },
      {
        "file": [
          "~/.stack/config.yaml",
          "%APPDATA%/stack/config.yaml"
        ],
        "match": {
          "key_path": [
            "extra-include-dirs",
            "extra-lib-dirs"
          ]
        },
        "scope": "platform"
      }
    ]
  },
  "commands": {
    "format": 1,
    "label": "Haskell Stack",
    "description": "Build, test and create Haskell projects. Setup, upload and the other stack commands are left out.",
    "quality": "ai-draft",
    "base": "fig:stack",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": true,
      "short_bundles": false
    },
    "source": [
      {
        "id": "fig",
        "kind": "completion",
        "url": "https://github.com/withfig/autocomplete/blob/master/src/stack.ts",
        "license": "MIT"
      }
    ],
    "subcommand": [
      {
        "path": [
          "build"
        ],
        "label": "Build packages",
        "description": "Build the packages in the current project.",
        "source": [
          {
            "id": "fig",
            "kind": "completion",
            "url": "https://github.com/withfig/autocomplete/blob/master/src/stack.ts",
            "license": "MIT"
          }
        ],
        "field": [
          {
            "id": "targets",
            "label": "Targets",
            "type": "string",
            "position": 0,
            "description": "Packages or targets to build; empty builds the project.",
            "multiple": true,
            "sources": [
              "fig"
            ]
          },
          {
            "id": "test",
            "label": "Run tests",
            "type": "boolean",
            "option": [
              "--test"
            ],
            "description": "Run the complete test suite.",
            "sources": [
              "fig"
            ]
          },
          {
            "id": "bench",
            "label": "Run benchmarks",
            "type": "boolean",
            "option": [
              "--bench"
            ],
            "description": "Run benchmarks.",
            "sources": [
              "fig"
            ]
          },
          {
            "id": "haddock",
            "label": "Build Haddocks",
            "type": "boolean",
            "option": [
              "--haddock"
            ],
            "description": "Generate Haddocks.",
            "sources": [
              "fig"
            ]
          },
          {
            "id": "file_watch",
            "label": "Watch files",
            "type": "boolean",
            "option": [
              "--file-watch"
            ],
            "description": "Rebuild when files change.",
            "sources": [
              "fig"
            ]
          },
          {
            "id": "pedantic",
            "label": "Pedantic",
            "type": "boolean",
            "option": [
              "--pedantic"
            ],
            "description": "Turn on -Wall and -Werror.",
            "sources": [
              "fig"
            ]
          },
          {
            "id": "copy_bins",
            "label": "Copy binaries",
            "type": "boolean",
            "option": [
              "--copy-bins"
            ],
            "description": "Copy executables to the local bin path.",
            "sources": [
              "fig"
            ]
          },
          {
            "id": "resolver",
            "label": "Resolver",
            "type": "string",
            "option": [
              "--resolver"
            ],
            "description": "Override the resolver in the project file.",
            "sources": [
              "fig"
            ]
          },
          {
            "id": "ghc_options",
            "label": "GHC options",
            "type": "string",
            "option": [
              "--ghc-options"
            ],
            "description": "Additional options passed to GHC for local targets.",
            "sources": [
              "fig"
            ]
          }
        ],
        "task": [
          {
            "id": "build",
            "label": "Build",
            "fields": [
              "targets",
              "pedantic"
            ],
            "required": []
          },
          {
            "id": "watch",
            "label": "Build on change",
            "set": {
              "file_watch": [
                true
              ]
            },
            "fields": [
              "targets"
            ],
            "required": []
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "targets",
              "test",
              "haddock",
              "file_watch",
              "pedantic"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "resolver",
              "ghc_options",
              "copy_bins",
              "bench"
            ]
          }
        ]
      }
    ]
  }
}
