{
  "description": "Search a directory tree for a pattern with ack, skipping VCS and binary files. Listing-only modes, file-type filters and ignore-dir management are partly covered.",
  "options": [
    {
      "names": [
        "--ignore-case",
        "-i"
      ],
      "description": "Ignore case"
    },
    {
      "names": [
        "-S"
      ],
      "description": "Ignore case only if the pattern has no upper-case letters."
    },
    {
      "names": [
        "--word-regexp",
        "-w"
      ],
      "description": "Whole words only"
    },
    {
      "names": [
        "--literal",
        "-Q"
      ],
      "description": "Literal pattern"
    },
    {
      "names": [
        "--invert-match",
        "-v"
      ],
      "description": "Invert match"
    },
    {
      "names": [
        "--files-with-matches",
        "-l"
      ],
      "description": "List matching files only"
    },
    {
      "names": [
        "--count",
        "-c"
      ],
      "description": "Count matches per file"
    },
    {
      "names": [
        "--after-context",
        "-A"
      ],
      "description": "Lines after",
      "args": {
        "name": "after",
        "isOptional": false
      }
    },
    {
      "names": [
        "--before-context",
        "-B"
      ],
      "description": "Lines before",
      "args": {
        "name": "before",
        "isOptional": false
      }
    },
    {
      "names": [
        "--type",
        "-t"
      ],
      "description": "Only search files of this ack file type.",
      "args": {
        "name": "file_type",
        "description": "Only search files of this ack file type.",
        "isOptional": false,
        "suggestions": [
          {
            "name": "perl",
            "description": "Perl"
          },
          {
            "name": "python",
            "description": "Python"
          },
          {
            "name": "js",
            "description": "JavaScript"
          },
          {
            "name": "cc",
            "description": "C"
          }
        ]
      }
    }
  ],
  "args": [
    {
      "name": "pattern",
      "isOptional": false
    },
    {
      "name": "paths",
      "description": "Defaults to the current directory when empty.",
      "isOptional": true,
      "isVariadic": true,
      "template": "filepaths"
    }
  ],
  "name": "ack"
}
