{
  "id": "webstorm",
  "name": "WebStorm",
  "homepage": "https://www.jetbrains.com/webstorm/",
  "description": "The JavaScript and TypeScript IDE.",
  "icon": "theSVG:webstorm",
  "executables": [
    "webstorm"
  ],
  "dotfiles": {
    "paths": [
      "[appData]/JetBrains/WebStorm*/"
    ],
    "exclude": [
      "[appData]/JetBrains/WebStorm*/plugins/"
    ],
    "secret": [
      "[appData]/JetBrains/WebStorm*/c.kdbx"
    ],
    "self_sync": true
  },
  "commands": {
    "format": 1,
    "label": "Open in WebStorm",
    "description": "Open files or folders, compare two files, or run the code formatter. Inspection and plugin installation are left out.",
    "quality": "ai-draft",
    "base": "fig:webstorm",
    "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/webstorm.ts",
        "license": "MIT"
      }
    ],
    "field": [
      {
        "id": "paths",
        "label": "Files or folders",
        "type": "path",
        "position": 0,
        "multiple": true,
        "path": {
          "kind": "any",
          "role": "input"
        },
        "sources": [
          "fig"
        ]
      },
      {
        "id": "wait",
        "label": "Wait until closed",
        "type": "boolean",
        "option": [
          "--wait"
        ],
        "sources": [
          "fig"
        ]
      }
    ],
    "task": [
      {
        "id": "open",
        "label": "Open path",
        "fields": [
          "paths",
          "wait"
        ],
        "required": [
          "paths"
        ]
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "paths",
          "wait"
        ]
      }
    ],
    "subcommand": [
      {
        "path": [
          "diff"
        ],
        "label": "Compare two files",
        "description": "Open the diff viewer.",
        "source": [
          {
            "id": "fig",
            "kind": "completion",
            "url": "https://github.com/withfig/autocomplete/blob/master/src/webstorm.ts",
            "license": "MIT"
          }
        ],
        "field": [
          {
            "id": "left",
            "label": "First file",
            "type": "path",
            "position": 0,
            "path": {
              "kind": "file",
              "role": "input"
            },
            "sources": [
              "fig"
            ]
          },
          {
            "id": "right",
            "label": "Second file",
            "type": "path",
            "position": 1,
            "path": {
              "kind": "file",
              "role": "input"
            },
            "sources": [
              "fig"
            ]
          }
        ],
        "task": [
          {
            "id": "diff",
            "label": "Diff files",
            "fields": [
              "left",
              "right"
            ],
            "required": [
              "left",
              "right"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "left",
              "right"
            ]
          }
        ]
      },
      {
        "path": [
          "format"
        ],
        "label": "Format code",
        "description": "Apply code style formatting.",
        "source": [
          {
            "id": "fig",
            "kind": "completion",
            "url": "https://github.com/withfig/autocomplete/blob/master/src/webstorm.ts",
            "license": "MIT"
          }
        ],
        "field": [
          {
            "id": "paths",
            "label": "Files or folders",
            "description": "Formatting rewrites these files in place.",
            "type": "path",
            "position": 0,
            "multiple": true,
            "path": {
              "kind": "any",
              "role": "input"
            },
            "effect": "overwrite",
            "sources": [
              "fig"
            ]
          },
          {
            "id": "mask",
            "label": "File masks",
            "description": "Comma-separated file masks, e.g. *.ts,*.js.",
            "type": "string",
            "option": [
              "-m"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "recursive",
            "label": "Recurse into directories",
            "type": "boolean",
            "option": [
              "-r"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "settings",
            "label": "Code style settings file",
            "type": "path",
            "option": [
              "-s"
            ],
            "path": {
              "kind": "file",
              "role": "input"
            },
            "sources": [
              "fig"
            ]
          },
          {
            "id": "dry",
            "label": "Validate only (dry run)",
            "type": "boolean",
            "option": [
              "-d"
            ],
            "sources": [
              "fig"
            ]
          }
        ],
        "task": [
          {
            "id": "dry",
            "label": "Check formatting",
            "fields": [
              "paths",
              "mask",
              "recursive",
              "dry"
            ],
            "required": [
              "paths"
            ],
            "set": {
              "dry": [
                true
              ]
            }
          },
          {
            "id": "format",
            "label": "Format files",
            "fields": [
              "paths",
              "mask",
              "recursive",
              "settings"
            ],
            "required": [
              "paths"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "paths",
              "mask",
              "recursive",
              "dry"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "settings"
            ]
          }
        ]
      }
    ]
  }
}
