(ZSH)SQLite3用compdef

sqlite3のデータベースファイルは個人的に *.sq3 にしている。 Tabを押したときにそれ以外がたっぷり当たって不快。 うちで使ってるzshにはsqlite3のデフォルト補完がない。 最新版見ても古いsqlite3のオプションしか対応してないな。 じゃあこれ。

#compdef sqlite3

_sqlite3 () {
 _arguments : \
  '-help[Show HELP]' \
  '-init[Read/Process named file]:File:_files' \
  '-echo[print commands before execution]' \
  '(-noheader)-header[With header]' \
  '(-header)-noheader[Without header]' \
  '-bail[Stop after hitting an error]' \
  '-interactive[Force interactive I/O]' \
  '-batch[orce batch I/O]' \
  '-cmd[Run command before reading stdin]:Sqlite3Cmd: ' \
  '-column[COLUMN output mode]' \
  '-csv[CSV output mode]' \
  '-html[HTML output mode]' \
  '-line[LINE output mode]' \
  '-list[LIST output mode]' \
  '-mmap[Set default mmap size]:mmap Size: ' \
  '-separator[Set separator]:Separator: ' \
  '-stats[Print memory stats before each finalize]' \
  '-nullvalue[Set text string for NULL values]:NullVal:*' \
  '-version[Show SQLite version]' \
  '-vfs[Use NAME as the default VFS]:VFS: ' \
  '1:DB File:_files -g "*.(db|sq*) *(-/)"' \
  '2:SQL Sentence: '
}

第2引数をreadlineヒストリから取れるようにするといいかもね、 なんてなことは若い人々に任せよう。