{
  "name": "rustc",
  "description": "CLI for rustc",
  "options": [
    {
      "names": [
        "-h",
        "--help"
      ],
      "description": "Prints out help info"
    },
    {
      "names": [
        "--cfg"
      ],
      "description": "Configures compilation settings",
      "args": [
        {
          "name": "Spec",
          "description": "Ex: verbose' or 'feature=\"serde\"'"
        }
      ]
    },
    {
      "names": [
        "-L"
      ],
      "description": "Adds a directory to the library search path",
      "args": [
        {
          "name": "kind",
          "description": "The kind of search path",
          "isOptional": true,
          "suggestions": [
            "dependency",
            "crate",
            "native",
            "framework",
            "all"
          ]
        },
        {
          "name": "path",
          "description": "Path to search for external crates and libraries",
          "template": "folders"
        }
      ]
    },
    {
      "names": [
        "--l"
      ],
      "description": "Links the generated crate to a native library",
      "args": [
        {
          "name": "kind",
          "description": "Kind of library",
          "isOptional": true,
          "suggestions": [
            "dylib",
            "static",
            "framework"
          ]
        },
        {
          "name": "Name",
          "description": "Native library name"
        }
      ]
    },
    {
      "names": [
        "--crate-type"
      ],
      "description": "Specify types of crates for the compiler to emit",
      "args": [
        {
          "name": "type",
          "description": "Type of crates",
          "suggestions": [
            "bin",
            "lib",
            "rlib",
            "dylib",
            "cdylib",
            "staticlib",
            "proc-macro"
          ]
        }
      ]
    },
    {
      "names": [
        "--crate-name"
      ],
      "description": "Specify the name of the crate being built",
      "args": [
        {
          "name": "Name"
        }
      ]
    },
    {
      "names": [
        "--edition"
      ],
      "description": "Specify the edition to use",
      "args": [
        {
          "name": "edition",
          "suggestions": [
            "2015",
            "2018",
            "2021"
          ]
        }
      ]
    },
    {
      "names": [
        "--emit"
      ],
      "description": "Specify the types of output files to generate",
      "args": [
        {
          "name": "type",
          "suggestions": [
            "asm",
            "llvm-bc",
            "llvm-ir",
            "obj",
            "metadata",
            "link",
            "dep-info",
            "mir"
          ]
        }
      ]
    },
    {
      "names": [
        "--print"
      ],
      "description": "Prints compiler info",
      "args": [
        {
          "name": "type",
          "suggestions": [
            "crate-name",
            "file-names",
            "sysroot",
            "target-libdir",
            "cfg",
            "target-list",
            "target-cpus",
            "target-features",
            "relocation-models",
            "code-models",
            "tls-models",
            "target-spec-json",
            "native-static-libs"
          ]
        }
      ]
    },
    {
      "names": [
        "-g"
      ],
      "description": "Synonym for -C debuginfo=2"
    },
    {
      "names": [
        "-O"
      ],
      "description": "Synonym for -C opt-level=2"
    },
    {
      "names": [
        "-o"
      ],
      "description": "Specify the filename to write output",
      "args": [
        {
          "name": "filename"
        }
      ]
    },
    {
      "names": [
        "--out-dir"
      ],
      "description": "Specify directory to write output",
      "args": [
        {
          "name": "dir"
        }
      ]
    },
    {
      "names": [
        "--explain"
      ],
      "description": "Provides a detailed explanation of an error message",
      "args": [
        {
          "name": "Error Code"
        }
      ]
    },
    {
      "names": [
        "--test"
      ],
      "description": "Builds a test harness"
    },
    {
      "names": [
        "--target"
      ],
      "description": "Selects a target triple to build",
      "args": [
        {
          "name": "Target"
        }
      ]
    },
    {
      "names": [
        "-W",
        "--warn"
      ],
      "description": "Sets lint warnings",
      "args": [
        {
          "name": "OPT"
        }
      ]
    },
    {
      "names": [
        "-A",
        "--allow"
      ],
      "description": "Set lint allowed",
      "args": [
        {
          "name": "OPT"
        }
      ]
    },
    {
      "names": [
        "-D",
        "--deny"
      ],
      "description": "Set lint denied",
      "args": [
        {
          "name": "OPT"
        }
      ]
    },
    {
      "names": [
        "-F",
        "--forbid"
      ],
      "description": "Set lint forbid",
      "args": [
        {
          "name": "Opt"
        }
      ]
    },
    {
      "names": [
        "--cap-lints"
      ],
      "description": "Set the most restrictive lint level",
      "args": [
        {
          "name": "Level"
        }
      ]
    },
    {
      "names": [
        "-C",
        "--codegen"
      ],
      "description": "Set a codegen option",
      "args": [
        {
          "name": "option"
        }
      ]
    },
    {
      "names": [
        "-Z"
      ],
      "description": "Set unstable options",
      "args": [
        {
          "name": "option",
          "description": "Unstable options to pass to rustc"
        }
      ]
    },
    {
      "names": [
        "-V",
        "--version"
      ],
      "description": "Prints version"
    },
    {
      "names": [
        "-v",
        "--verbose"
      ],
      "description": "Use verbose output"
    },
    {
      "names": [
        "--extern"
      ],
      "description": "Specify where an external library is located",
      "args": [
        {
          "name": "Path",
          "description": "Path where crate(s) can be found",
          "template": "folders"
        }
      ]
    },
    {
      "names": [
        "--sysroot"
      ],
      "description": "Overrides the system root",
      "isDangerous": true,
      "args": [
        {
          "name": "directory"
        }
      ]
    },
    {
      "names": [
        "--error-format"
      ],
      "description": "Controls how errors are produced",
      "args": [
        {
          "name": "format",
          "suggestions": [
            "human",
            "json",
            "short"
          ]
        }
      ]
    },
    {
      "names": [
        "--color"
      ],
      "description": "Configures coloring of output",
      "args": [
        {
          "name": "color",
          "suggestions": [
            "auto",
            "always",
            "never"
          ]
        }
      ]
    }
  ],
  "args": [
    {
      "name": "filepath",
      "template": "filepaths"
    }
  ]
}
