Merge pull request #1039 from johannes87/master

Add completion script for chatblade
This commit is contained in:
Shohei YOSHIDA 2023-09-18 00:04:08 +09:00 committed by GitHub
commit bed209ca64
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 63 additions and 0 deletions

63
src/_chatblade Normal file
View File

@ -0,0 +1,63 @@
#compdef chatblade
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for chatblade (https://github.com/npiv/chatblade)
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Johannes Bittner (https://github.com/johannes87)
#
# ------------------------------------------------------------------------------
_chatblade() {
local -a args
local context state state_descr line
typeset -A opt_args
args+=(
'(- *)'{-h,--help}'[show this help message and exit]'
'--openai-api-key[the OpenAI API key can also be set as env variable OPENAI_API_KEY]:key'
'--temperature[temperature (openai setting)]:temperature'
'(-c --chat-gpt)'{-c,--chat-gpt}'[chat GPT model 3.5/4 shorthand or full qualified model name, can also be set via env variable OPENAI_API_MODEL]:chat GPT model:(3.5 4)'
'(-i --interactive)'{-i,--interactive}'[start an interactive chat session. This will implicitly continue the conversation]'
'(-s --stream)'{-s,--stream}'[Stream the incoming text to the terminal]'
'(-t --tokens)'{-t,--tokens}'[display what *would* be sent, how many tokens, and estimated costs]'
'(-p --prompt-file)'{-p,--prompt-file}'[prompt name - will load the prompt with that name at ~/.config/chatblade/name or a path to a file]:prompt file:_files'
'(-e --extract)'{-e,--extract}'[extract content from response if possible (either json or code block)]'
'(-r --raw)'{-r,--raw}'[print session as pure text, dont pretty print or format]'
'(-n --no-format)'{-n,--no-format}'[do not add pretty print formatting to output]'
'(-o --only)'{-o,--only}'[Only display the response, omit query]'
'--theme[Set the theme for syntax highlighting see https://pygments.org/styles/, can also be set with CHATBLADE_THEME]:theme:_values "theme" default emacs friendly manni monokai'
'(-l --last)'{-l,--last}'[alias for -S last, the default session if none is specified]'
'(-S --session)'{-S,--session}'[initiate or continue named session]:session:->sessions'
'--session-list[list sessions]'
'--session-path[show path to session file]'
'--session-dump[dump session to stdout]'
'--session-delete[delete session]'
'--session-rename[rename session]:new session:->sessions'
)
_arguments -s $args
case $state in
(sessions)
local -a sessions
sessions=("${(@f)$(chatblade --session-list)}")
_describe 'session' sessions
;;
esac
}
_chatblade
# Local Variables:
# mode: Shell-Script
# sh-indentation: 2
# indent-tabs-mode: nil
# sh-basic-offset: 2
# End:
# vim: ft=zsh sw=2 ts=2 et