complete -c xsv -n '__fish_is_first_token' -xa cat         -d 'Concatenate by row or column'
complete -c xsv -n '__fish_is_first_token' -xa count       -d 'Count records'
complete -c xsv -n '__fish_is_first_token' -xa fixlengths  -d 'Makes all records have same length'
complete -c xsv -n '__fish_is_first_token' -xa flatten     -d 'Show one field per line'
complete -c xsv -n '__fish_is_first_token' -xa fmt         -d 'Format CSV output (change field delimiter)'
complete -c xsv -n '__fish_is_first_token' -xa frequency   -d 'Show frequency tables'
complete -c xsv -n '__fish_is_first_token' -xa headers     -d 'Show header names'
complete -c xsv -n '__fish_is_first_token' -xa help        -d 'Show this usage message.'
complete -c xsv -n '__fish_is_first_token' -xa index       -d 'Create CSV index for faster access'
complete -c xsv -n '__fish_is_first_token' -xa input       -d 'Read CSV data with special quoting rules'
complete -c xsv -n '__fish_is_first_token' -xa join        -d 'Join CSV files'
complete -c xsv -n '__fish_is_first_token' -xa sample      -d 'Randomly sample CSV data'
complete -c xsv -n '__fish_is_first_token' -xa search      -d 'Search CSV data with regexes'
complete -c xsv -n '__fish_is_first_token' -xa select      -d 'Select columns from CSV'
complete -c xsv -n '__fish_is_first_token' -xa slice       -d 'Slice records from CSV'
complete -c xsv -n '__fish_is_first_token' -xa sort        -d 'Sort CSV data'
complete -c xsv -n '__fish_is_first_token' -xa split       -d 'Split CSV data into many files'
complete -c xsv -n '__fish_is_first_token' -xa stats       -d 'Compute basic statistics'
complete -c xsv -n '__fish_is_first_token' -xa table       -d 'Align CSV data into columns'

# with a subcommand
complete -c xsv -n 'not __fish_is_first_token' -xa '(__fish_complete_suffix .csv)'
complete -c xsv -n 'not __fish_is_first_token' -s h -l help -d 'Display help for this xsv command'

# without a subcommand
complete -c xsv -s h -l help -d 'Display xsv help'
complete -c xsv -l version -d 'Display xsv version info'
complete -c xsv -l list -d 'List all xsv commands'