{
  "name": "code",
  "description": "Visual Studio Code",
  "options": [
    {
      "names": [
        "-"
      ],
      "description": "Read from stdin (e.g. 'ps aux | grep code | code -')"
    },
    {
      "names": [
        "-d",
        "--diff"
      ],
      "description": "Compare two files with each other",
      "args": [
        {
          "name": "file",
          "template": "filepaths"
        },
        {
          "name": "file",
          "template": "filepaths"
        }
      ]
    },
    {
      "names": [
        "-m",
        "--merge"
      ],
      "description": "Perform a three-way merge by providing paths for two modified versions of a file, the common origin of both modified versions and the output file to save merge results",
      "args": [
        {
          "name": "path1",
          "template": "filepaths"
        },
        {
          "name": "path2",
          "template": "filepaths"
        },
        {
          "name": "base",
          "template": "filepaths"
        },
        {
          "name": "result",
          "template": "filepaths"
        }
      ]
    },
    {
      "names": [
        "-a",
        "--add"
      ],
      "description": "Add folder(s) to the last active window",
      "args": [
        {
          "name": "folder",
          "isVariadic": true,
          "template": "folders"
        }
      ]
    },
    {
      "names": [
        "-g",
        "--goto"
      ],
      "description": "Open a file at the path on the specified line and character position",
      "args": [
        {
          "name": "file:line[:character]",
          "template": "filepaths"
        }
      ]
    },
    {
      "names": [
        "-n",
        "--new-window"
      ],
      "description": "Force to open a new window"
    },
    {
      "names": [
        "-r",
        "--reuse-window"
      ],
      "description": "Force to open a file or folder in an already opened window"
    },
    {
      "names": [
        "-w",
        "--wait"
      ],
      "description": "Wait for the files to be closed before returning"
    },
    {
      "names": [
        "--locale"
      ],
      "description": "The locale to use (e.g. en-US or zh-TW)",
      "args": [
        {
          "name": "locale",
          "suggestions": [
            "en",
            "zh-CN",
            "zh-TW",
            "fr",
            "de",
            "it",
            "es",
            "ja",
            "ko",
            "ru",
            "bg",
            "hu",
            "pt-br",
            "tr"
          ]
        }
      ]
    },
    {
      "names": [
        "--user-data-dir"
      ],
      "description": "Specifies the directory that user data is kept in. Can be used to open multiple distinct instances of Code",
      "args": [
        {
          "name": "dir",
          "template": "folders"
        }
      ]
    },
    {
      "names": [
        "--profile"
      ],
      "description": "Opens the provided folder or workspace with the given profile and associates the profile with the workspace. If the profile does not exist, a new empty one is created. A folder or workspace must be provided for the profile to take effect",
      "args": [
        {
          "name": "settingsProfileName"
        }
      ]
    },
    {
      "names": [
        "-h",
        "--help"
      ],
      "description": "Print usage"
    },
    {
      "names": [
        "--extensions-dir"
      ],
      "description": "Set the root path for extensions",
      "args": [
        {
          "name": "dir",
          "template": "folders"
        }
      ]
    },
    {
      "names": [
        "--list-extensions"
      ],
      "description": "List the installed extensions"
    },
    {
      "names": [
        "--show-versions"
      ],
      "description": "Show versions of installed extensions, when using --list-extensions"
    },
    {
      "names": [
        "--category"
      ],
      "description": "Filters installed extensions by provided category, when using --list-extensions",
      "args": [
        {
          "name": "category",
          "suggestions": [
            "azure",
            "data science",
            "debuggers",
            "extension packs",
            "education",
            "formatters",
            "keymaps",
            "language packs",
            "linters",
            "machine learning",
            "notebooks",
            "programming languages",
            "scm providers",
            "snippets",
            "testing",
            "themes",
            "visualization",
            "other"
          ]
        }
      ]
    },
    {
      "names": [
        "--install-extension"
      ],
      "description": "Installs or updates an extension. The argument is either an extension id or a path to a VSIX. The identifier of an extension is '${publisher}.${name}'. Use '--force' argument to update to latest version. To install a specific version provide '@${version}'. For example: 'vscode.csharp@1.2.3'",
      "args": [
        {
          "name": "extension-id[@version] | path-to-vsix"
        }
      ]
    },
    {
      "names": [
        "--pre-release"
      ],
      "description": "Installs the pre-release version of the extension, when using --install-extension"
    },
    {
      "names": [
        "--uninstall-extension"
      ],
      "description": "Uninstalls an extension",
      "args": [
        {
          "name": "extension-id"
        }
      ]
    },
    {
      "names": [
        "--enable-proposed-api"
      ],
      "description": "Enables proposed API features for extensions. Can receive one or more extension IDs to enable individually"
    },
    {
      "names": [
        "-v",
        "--version"
      ],
      "description": "Print version"
    },
    {
      "names": [
        "--verbose"
      ],
      "description": "Print verbose output (implies --wait)"
    },
    {
      "names": [
        "--log"
      ],
      "description": "Log level to use. Default is 'info' when unspecified",
      "args": [
        {
          "name": "level",
          "suggestions": [
            "critical",
            "error",
            "warn",
            "info",
            "debug",
            "trace",
            "off"
          ]
        }
      ]
    },
    {
      "names": [
        "-s",
        "--status"
      ],
      "description": "Print process usage and diagnostics information"
    },
    {
      "names": [
        "--prof-startup"
      ],
      "description": "Run CPU profiler during startup"
    },
    {
      "names": [
        "--disable-extensions"
      ],
      "description": "Disable all installed extensions"
    },
    {
      "names": [
        "--disable-extension"
      ],
      "description": "Disable an extension",
      "args": [
        {
          "name": "extension-id"
        }
      ]
    },
    {
      "names": [
        "--sync"
      ],
      "description": "Turn sync on or off",
      "args": [
        {
          "name": "sync",
          "description": "Whether to enable sync",
          "suggestions": [
            "on",
            "off"
          ]
        }
      ]
    },
    {
      "names": [
        "--inspect-extensions"
      ],
      "description": "Allow debugging and profiling of extensions. Check the developer tools for the connection URI",
      "args": [
        {
          "name": "port"
        }
      ]
    },
    {
      "names": [
        "--inspect-brk-extensions"
      ],
      "description": "Allow debugging and profiling of extensions with the extension host being paused after start. Check the developer tools for the connection URI",
      "args": [
        {
          "name": "port"
        }
      ]
    },
    {
      "names": [
        "--disable-gpu"
      ],
      "description": "Disable GPU hardware acceleration"
    },
    {
      "names": [
        "--max-memory"
      ],
      "description": "Max memory size for a window (in Mbytes)",
      "args": [
        {
          "name": "memory",
          "description": "Memory in megabytes"
        }
      ]
    },
    {
      "names": [
        "--telemetry"
      ],
      "description": "Shows all telemetry events which VS code collects"
    }
  ],
  "args": [
    {
      "isVariadic": true,
      "template": "filepaths"
    }
  ]
}
