{
  "id": "scc",
  "name": "scc",
  "description": "Counts lines of code, comments and complexity per language.",
  "homepage": "https://github.com/boyter/scc",
  "executables": [
    "scc"
  ],
  "commands": {
    "format": 1,
    "label": "Count lines of code",
    "description": "Count code in files or directories. Generated/minified detection tuning, COCOMO model options and remap flags are left out.",
    "quality": "ai-draft",
    "base": "fig:scc",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": true,
      "short_bundles": false
    },
    "source": [
      {
        "id": "src",
        "kind": "completion",
        "url": "https://github.com/withfig/autocomplete/blob/master/src/scc.ts",
        "license": "MIT"
      }
    ],
    "field": [
      {
        "id": "paths",
        "label": "Files or directories",
        "type": "path",
        "position": 0,
        "multiple": true,
        "path": {
          "kind": "any",
          "role": "input"
        },
        "sources": [
          "src"
        ]
      },
      {
        "id": "format",
        "label": "Output format",
        "type": "enum",
        "option": [
          "--format",
          "-f"
        ],
        "choices": [
          {
            "value": "tabular",
            "label": "tabular"
          },
          {
            "value": "wide",
            "label": "wide"
          },
          {
            "value": "json",
            "label": "json"
          },
          {
            "value": "csv",
            "label": "csv"
          },
          {
            "value": "csv-stream",
            "label": "csv-stream"
          },
          {
            "value": "cloc-yaml",
            "label": "cloc-yaml"
          },
          {
            "value": "html",
            "label": "html"
          },
          {
            "value": "html-table",
            "label": "html-table"
          },
          {
            "value": "sql",
            "label": "sql"
          },
          {
            "value": "sql-insert",
            "label": "sql-insert"
          }
        ],
        "sources": [
          "src"
        ]
      },
      {
        "id": "output",
        "label": "Output file",
        "type": "path",
        "option": [
          "--output",
          "-o"
        ],
        "path": {
          "kind": "file",
          "role": "output"
        },
        "sources": [
          "src"
        ]
      },
      {
        "id": "by_file",
        "label": "Per-file output",
        "type": "boolean",
        "option": [
          "--by-file"
        ],
        "sources": [
          "src"
        ]
      },
      {
        "id": "sort",
        "label": "Sort by",
        "type": "enum",
        "option": [
          "--sort",
          "-s"
        ],
        "choices": [
          {
            "value": "files",
            "label": "files"
          },
          {
            "value": "name",
            "label": "name"
          },
          {
            "value": "lines",
            "label": "lines"
          },
          {
            "value": "blanks",
            "label": "blanks"
          },
          {
            "value": "code",
            "label": "code"
          },
          {
            "value": "comments",
            "label": "comments"
          },
          {
            "value": "complexity",
            "label": "complexity"
          }
        ],
        "sources": [
          "src"
        ]
      },
      {
        "id": "include_ext",
        "label": "Only extensions (comma separated)",
        "type": "string",
        "option": [
          "--include-ext",
          "-i"
        ],
        "sources": [
          "src"
        ]
      },
      {
        "id": "exclude_dir",
        "label": "Exclude directories (comma separated)",
        "type": "string",
        "option": [
          "--exclude-dir"
        ],
        "sources": [
          "src"
        ]
      },
      {
        "id": "not_match",
        "label": "Ignore matching (regex)",
        "type": "string",
        "option": [
          "--not-match",
          "-M"
        ],
        "sources": [
          "src"
        ]
      },
      {
        "id": "wide",
        "label": "Wide output",
        "type": "boolean",
        "option": [
          "--wide",
          "-w"
        ],
        "sources": [
          "src"
        ]
      },
      {
        "id": "no_complexity",
        "label": "Skip complexity",
        "type": "boolean",
        "option": [
          "--no-complexity",
          "-c"
        ],
        "sources": [
          "src"
        ]
      },
      {
        "id": "no_cocomo",
        "label": "Skip COCOMO",
        "type": "boolean",
        "option": [
          "--no-cocomo"
        ],
        "sources": [
          "src"
        ]
      },
      {
        "id": "no_duplicates",
        "label": "Remove duplicate files",
        "type": "boolean",
        "option": [
          "--no-duplicates",
          "-d"
        ],
        "sources": [
          "src"
        ]
      },
      {
        "id": "no_gitignore",
        "label": "Ignore .gitignore rules",
        "type": "boolean",
        "option": [
          "--no-gitignore"
        ],
        "sources": [
          "src"
        ]
      },
      {
        "id": "languages",
        "label": "List supported languages",
        "type": "boolean",
        "option": [
          "--languages",
          "-l"
        ],
        "sources": [
          "src"
        ]
      }
    ],
    "task": [
      {
        "id": "count",
        "label": "Count a directory",
        "fields": [
          "paths",
          "sort"
        ],
        "required": []
      },
      {
        "id": "json",
        "label": "JSON report",
        "fields": [
          "paths",
          "format",
          "output"
        ],
        "required": [],
        "set": {
          "format": [
            "json"
          ]
        }
      },
      {
        "id": "perfile",
        "label": "Per-file breakdown",
        "fields": [
          "paths",
          "by_file",
          "sort"
        ],
        "required": [],
        "set": {
          "by_file": [
            true
          ]
        }
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "paths",
          "format",
          "output",
          "by_file",
          "sort",
          "include_ext"
        ]
      },
      {
        "id": "advanced",
        "label": "Advanced",
        "fields": [
          "no_complexity",
          "no_cocomo",
          "no_duplicates",
          "no_gitignore",
          "languages",
          "not_match",
          "exclude_dir",
          "wide"
        ]
      }
    ]
  }
}
