///|
/// Parsed CLI options (mirrors tokei's surface).
pub(all) struct Opts {
paths : Array[String]
mut format : @output.Format
types : Array[String] // --type include filter (language keys)
types_not : Array[String] // --type-not exclude filter
excludes : Array[String]
mut sort_key : String
mut num_format : String
mut num_format_explicit : Bool
mut columns : Int32
mut columns_explicit : Bool
mut compact : Bool
mut reverse : Bool
mut hidden : Bool
mut no_ignore : Bool
mut no_ignore_dot : Bool
mut no_ignore_vcs : Bool
mut list_files : Bool // --files
mut out_file : String? // --output-file extension; upstream -o selects format
mut input_file : String? // --input reads an earlier JSON report
mut list_langs : Bool // -l
mut show_version : Bool
mut show_help : Bool
}
///|
const VERSION = "0.1.0"
///|
fn usage() -> String {
(
$|TokeiMBT \{VERSION} — count code, comments and blanks across 300+ languages.
$|A pure-MoonBit port of tokei (https://github.com/XAMPPRocky/tokei).
$|
$|USAGE:
$| tokei [FLAGS] [OPTIONS] [path]...
$|
$|ARGS:
$| ... Files or directories to count (default: current directory)
$|
$|FLAGS:
$| -h, --help Print this help message
$| -V, --version Print version information
$| -l, --languages Print supported languages and their extensions
$| -f, --files Print individual file statistics
$| -C, --compact Hide embedded-language details in the table
$| --hidden Count hidden files
$| --no-ignore Do not respect ignore files
$| --no-ignore-dot Do not respect .ignore or .tokeignore
$| --no-ignore-vcs Do not respect .gitignore
$| --no-progress Compatibility flag (accepted, ignored)
$|
$|OPTIONS:
$| -o, --output Output format: table, json, csv, yaml (default: table)
$| --output-file Write output to FILE instead of stdout
$| -i, --input Merge a previous JSON report (file path)
$| -t, --type Only count the given languages (comma separated)
$| -T, --type-not Count everything except the given languages
$| -e, --exclude Ignore files/directories matching PATTERN (repeatable)
$| -n, --num-format