exaSpec top-level property
Completion spec for exa CLI
Implementation
final FigSpec exaSpec = FigSpec(
name: 'exa',
description: 'A modern replacement for ls',
args: [
Arg(
isVariadic: true,
name: 'files...',
template: 'filepaths'
)
],
options: [
Option(
description: 'Show list of command-line options',
name: ['-?', '--help']
),
Option(
description: 'Show version of exa',
name: ['-v', '--version']
),
Option(
description: 'Display one entry per line',
name: ['-1', '--oneline']
),
Option(
description: 'Display extended file metadata as a table',
name: ['-l', '--long']
),
Option(
description: 'Display entries as a grid (default)',
name: ['-G', '--grid']
),
Option(
description: 'Sort the grid across, rather than downwards',
name: ['-x', '--across']
),
Option(
description: 'Recurse into directories',
name: ['-R', '--recurse']
),
Option(
description: 'Recurse into directories as a tree',
name: ['-T', '--tree']
),
Option(
description: 'Display type indicator by file names',
name: ['-F', '--classify']
),
Option(
description: 'When to use terminal colours (always, auto, never)',
name: ['--colour', '--color'],
args: [
Arg(
name: 'when',
suggestions: [
FigSuggestion(
name: 'always'
),
FigSuggestion(
name: 'auto'
),
FigSuggestion(
name: 'never'
)
]
)
]
),
Option(
description: 'Highlight levels of file sizes distinctly',
name: ['--colour-scale', '--color-scale']
),
Option(
description: 'Show hidden and \'dot\' files',
name: ['-a', '--all']
),
Option(
description: 'List directories like regular files',
name: ['-d', '--list-dirs']
),
Option(
description: 'Limit the depth of recursion',
name: ['-L', '--level'],
args: [
Arg(
name: 'DEPTH'
)
]
),
Option(
description: 'Reverse the sort order',
name: ['-r', '--reverse']
),
Option(
description: 'Which field to sort by',
name: ['-s', '--sort'],
args: [
Arg(
name: 'sort field',
suggestions: [
FigSuggestion(
name: 'name'
),
FigSuggestion(
name: 'Name'
),
FigSuggestion(
name: 'extension'
),
FigSuggestion(
name: 'Extension'
),
FigSuggestion(
name: 'size'
),
FigSuggestion(
name: 'type'
),
FigSuggestion(
name: 'modified'
),
FigSuggestion(
name: 'accessed'
),
FigSuggestion(
name: 'created'
),
FigSuggestion(
name: 'inode'
),
FigSuggestion(
name: 'none'
),
FigSuggestion(
name: 'date'
),
FigSuggestion(
name: 'time'
),
FigSuggestion(
name: 'old'
),
FigSuggestion(
name: 'new'
)
]
)
]
),
Option(
description: 'List directories before other files',
name: '--group-directories-first'
),
Option(
description: 'List only directories',
name: ['-D', '--only-dirs']
),
Option(
description: 'Glob patterns (pipe-separated) of files to ignore',
name: ['-I', '--ignore-glob'],
args: [
Arg(
name: 'GLOB'
)
]
),
Option(
description: 'Ignore files mentioned in \'.gitignore\'',
name: '--git-ignore'
),
Option(
description: 'List file sizes with binary prefixes',
name: ['-b', '--binary']
),
Option(
description: 'List file sizes in bytes, without any prefixes',
name: ['-B', '--bytes']
),
Option(
description: 'List each file\'s group',
name: ['-g', '--group']
),
Option(
description: 'Add a header row to each column',
name: ['-h', '--header']
),
Option(
description: 'List each file\'s number of hard links',
name: ['-H', '--links']
),
Option(
description: 'List each file\'s inode number',
name: ['-i', '--inode']
),
Option(
description: 'Use the modified timestamp field',
name: ['-m', '--modified']
),
Option(
description: 'Show number of file system blocks',
name: ['-S', '--blocks']
),
Option(
description: 'Which timestamp field to list (modified, accessed, created)',
name: ['-t', '--time'],
args: [
Arg(
name: 'FIELD',
suggestions: [
FigSuggestion(
name: 'modified'
),
FigSuggestion(
name: 'accessed'
),
FigSuggestion(
name: 'created'
)
]
)
]
),
Option(
description: 'Use the accessed timestamp field',
name: ['-u', '--accessed']
),
Option(
description: 'Use the created timestamp field',
name: ['-U', '--created']
),
Option(
description: 'How to format timestamps (default, iso, long-iso, full-iso)',
name: '--time-style',
args: [
Arg(
name: 'style',
suggestions: [
FigSuggestion(
name: 'default'
),
FigSuggestion(
name: 'iso'
),
FigSuggestion(
name: 'long-iso'
),
FigSuggestion(
name: 'full-iso'
)
]
)
]
),
Option(
description: 'List each file\'s Git status, if tracked or ignored',
name: '--git'
),
Option(
description: 'List each file\'s extended attributes and sizes',
name: ['-@', '--extended']
),
Option(
description: 'Shows icons before each folder or file',
name: '--icons',
exclusiveOn: ['--no-icons']
),
Option(
description: 'Does not display icons',
exclusiveOn: ['--icons'],
name: '--no-icons'
),
Option(
description: 'Displays when a file or folder got changed instead of modified in the header',
name: '--changed'
)
]
);