{
  "name": "micro",
  "description": "A modern and intuitive terminal-based text editor",
  "options": [
    {
      "names": [
        "--clean"
      ],
      "description": "Cleans the configuration directory"
    },
    {
      "names": [
        "--config-dir"
      ],
      "description": "Specify a custom location for the configuration directory",
      "args": [
        {
          "name": "dir"
        }
      ]
    },
    {
      "names": [
        "--options"
      ],
      "description": "Show all option help"
    },
    {
      "names": [
        "--debug"
      ],
      "description": "Enable debug mode"
    },
    {
      "names": [
        "--version"
      ],
      "description": "Show the version number and information"
    },
    {
      "names": [
        "--autoindent"
      ],
      "description": "When creating a new line, use the same indentation as the previous line",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--autosave"
      ],
      "description": "Automatically save the buffer every <n> seconds. If set to 0, no autosaving is performed",
      "args": [
        {
          "name": "n",
          "description": "Seconds",
          "suggestions": [
            "0",
            "60",
            "120",
            "300",
            "600",
            "1800"
          ]
        }
      ]
    },
    {
      "names": [
        "--autosu"
      ],
      "description": "Automatically attempt to use super user privileges to save without asking",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--backup"
      ],
      "description": "Automatically keep backups of all open buffers",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--backupdir"
      ],
      "description": "The directory to place backups in",
      "args": [
        {
          "name": "dir",
          "template": "folders",
          "suggestions": [
            "~/.config/micro.backups"
          ]
        }
      ]
    },
    {
      "names": [
        "--basename"
      ],
      "description": "In the infobar and tabbar, show only the basename of the file being edited rather than the full path",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--clipboard"
      ],
      "description": "Apecifies how the system clipboard should be accessed",
      "args": [
        {
          "name": "type",
          "suggestions": [
            "external",
            "terminal",
            "internal"
          ]
        }
      ]
    },
    {
      "names": [
        "--colorcolumn"
      ],
      "description": "Display a color at the specified column if not set to 0",
      "args": [
        {
          "name": "value",
          "suggestions": [
            "0",
            "1"
          ]
        }
      ]
    },
    {
      "names": [
        "--colorscheme"
      ],
      "description": "Loads the colorscheme stored in $(configDir)/colorschemes/<scheme>.micro",
      "args": [
        {
          "name": "scheme",
          "suggestions": [
            "default"
          ]
        }
      ]
    },
    {
      "names": [
        "--cursorline"
      ],
      "description": "Highlight the line that the cursor is on in a different color",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--diffgutter"
      ],
      "description": "Display diff indicators before lines",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--divchars"
      ],
      "description": "Specifies the divider characters used for the dividing line between vertical/horizontal splits (the first character is for vertical dividers, and the second is for horizontal dividers)",
      "args": [
        {
          "name": "chars",
          "suggestions": [
            "|-"
          ]
        }
      ]
    },
    {
      "names": [
        "--divreverse"
      ],
      "description": "Reverse colors specified by the colorscheme",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--encoding"
      ],
      "description": "The encoding to open and save files with",
      "args": [
        {
          "name": "encoding",
          "suggestions": [
            "utf-8"
          ]
        }
      ]
    },
    {
      "names": [
        "--eofnewline"
      ],
      "description": "Automatically add a newline to the end of the file if one does not exist",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--fastdirty"
      ],
      "description": "Use 'fast dirty' algorithm to determine if a buffer is modified or not",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--fileformat"
      ],
      "description": "Type of line endings to be used for the file",
      "args": [
        {
          "name": "format",
          "suggestions": [
            "unix",
            "dos"
          ]
        }
      ]
    },
    {
      "names": [
        "--filetype"
      ],
      "description": "File type for the current buffer",
      "args": [
        {
          "name": "type",
          "suggestions": [
            "unknown",
            "off"
          ]
        }
      ]
    },
    {
      "names": [
        "--ignorecase"
      ],
      "description": "Perform case-insensitive searches",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--incsearch"
      ],
      "description": "Enable incremental search in \"Find\" prompt",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--indentchar"
      ],
      "description": "Sets the indentation character",
      "args": [
        {
          "name": "character",
          "suggestions": [
            " ",
            "\\t"
          ]
        }
      ]
    },
    {
      "names": [
        "--infobar"
      ],
      "description": "Enables the line at the bottom of the editor where messages are printed",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--keepautoindent"
      ],
      "description": "Remove trailing whitespace from a line with no insertions when moving to the next line",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--keymenu"
      ],
      "description": "Display the nano-style key menu at the bottom of the screen",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--matchbrace"
      ],
      "description": "Underline matching braces for '()', '{}', '[]' when the cursor is on a brace character",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--mkparents"
      ],
      "description": "Allow parent directories to be created automatically when opening a file on a path that doesn't exist",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--mouse"
      ],
      "description": "Enable mouse support",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--paste"
      ],
      "description": "Treat characters sent from the terminal in a single chunk as a paste event rather than a series of manual key presses",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--parsecursor"
      ],
      "description": "Parse filenames such as file.txt:10:5 as requesting to open file.txt with the cursor at line 10 and column 5",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--permbackup"
      ],
      "description": "Cause backups to be permanently saved",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--pluginchannels"
      ],
      "description": "List of URLs pointing to plugin channels for downloading and installing plugins",
      "args": [
        {
          "name": "url",
          "isVariadic": true,
          "suggestions": [
            "https://raw.githubusercontent.com/micro-editor/plugin-channel/master/channel.json"
          ]
        }
      ]
    },
    {
      "names": [
        "--pluginrepos"
      ],
      "description": "A list of links to plugin repositories",
      "args": [
        {
          "name": "link",
          "isVariadic": true
        }
      ]
    },
    {
      "names": [
        "--readonly"
      ],
      "description": "Disallow edits to the buffer",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--relativeruler"
      ],
      "description": "Make line numbers display relatively",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--rmtrailingws"
      ],
      "description": "Automatically trim trailing whitespaces at ends of lines",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--ruler"
      ],
      "description": "Display line numbers",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--savecursor"
      ],
      "description": "Remember where the cursor was last time the file was opened and put it there when re-opened",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--savehistory"
      ],
      "description": "Remember command history between closing and re-opening micro",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--saveundo"
      ],
      "description": "Remember undo state between closing and re-opening a file",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--scrollbar"
      ],
      "description": "Display a scroll bar",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--scrollmargin"
      ],
      "description": "Margin at which the view starts scrolling when the cursor approaches the edge of the view",
      "args": [
        {
          "name": "margin",
          "suggestions": [
            "0",
            "1",
            "2",
            "3",
            "5",
            "10"
          ]
        }
      ]
    },
    {
      "names": [
        "--scrollspeed"
      ],
      "description": "Number of lines to scroll for one scroll event",
      "args": [
        {
          "name": "number",
          "suggestions": [
            "1",
            "2",
            "3",
            "4",
            "5"
          ]
        }
      ]
    },
    {
      "names": [
        "--smartpaste"
      ],
      "description": "Add leading whitespace when pasting multiple lines",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--softwrap"
      ],
      "description": "Wrap lines that are too long to fit on the screen",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--splitbottom"
      ],
      "description": "When a horizontal split is created, create it below the current split",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--splitright"
      ],
      "description": "When a vertical split is created, create it to the right of the current split",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--statusformatl"
      ],
      "description": "Format string definition for the left-justified part of the statusline",
      "args": [
        {
          "name": "format"
        }
      ]
    },
    {
      "names": [
        "--statusformatr"
      ],
      "description": "Format string definition for the right-justified part of the statusline",
      "args": [
        {
          "name": "format"
        }
      ]
    },
    {
      "names": [
        "--statusline"
      ],
      "description": "Display the status line at the bottom of the screen",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--sucmd"
      ],
      "description": "The super user command",
      "args": [
        {
          "name": "command",
          "suggestions": [
            "sudo",
            "doas"
          ]
        }
      ]
    },
    {
      "names": [
        "--syntax"
      ],
      "description": "Enables syntax highlighting",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--tabmovement"
      ],
      "description": "Navigate spaces at the beginning of lines as if they are tabs",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--tabsize"
      ],
      "description": "The size in spaces that a tab character should be displayed with",
      "args": [
        {
          "name": "size",
          "suggestions": [
            "2",
            "4",
            "8",
            "16"
          ]
        }
      ]
    },
    {
      "names": [
        "--tabstospaces"
      ],
      "description": "Use spaces instead of tabs",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--useprimary"
      ],
      "description": "Use the primary clipboard to copy selections in the background",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--wordwrap"
      ],
      "description": "Wrap long lines by words",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--xterm"
      ],
      "description": "Assume that the terminal conforms to xterm-256color regardless of what the $TERM variable actually contains",
      "args": [
        {
          "name": "bool",
          "description": "True/false",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    }
  ],
  "args": [
    {
      "name": "file",
      "isOptional": true,
      "template": "filepaths"
    }
  ],
  "subcommands": [
    {
      "name": "--plugin",
      "description": "Manage plugins",
      "options": [
        {
          "names": [
            "remove"
          ],
          "description": "Remove plugin(s)",
          "args": [
            {
              "name": "plugin",
              "isVariadic": true
            }
          ]
        },
        {
          "names": [
            "update"
          ],
          "description": "Update plugin(s) (if no argument is given, updates all plugins)",
          "args": [
            {
              "name": "plugin",
              "isVariadic": true
            }
          ]
        },
        {
          "names": [
            "search"
          ],
          "description": "Search for a plugin",
          "args": [
            {
              "name": "plugin"
            }
          ]
        },
        {
          "names": [
            "list"
          ],
          "description": "List installed plugins"
        },
        {
          "names": [
            "available"
          ],
          "description": "List available plugins"
        }
      ]
    }
  ]
}
