Merge pull request #554 from chrisallenlane/master

v3.9.0
This commit is contained in:
Chris Allen Lane 2020-04-07 18:59:18 -04:00 committed by GitHub
commit c4dd3b52fd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 100 additions and 14 deletions

17
.github/workflows/homebrew.yml vendored Normal file
View File

@ -0,0 +1,17 @@
name: homebrew
on:
push:
tags: '*'
jobs:
homebrew:
name: Bump Homebrew formula
runs-on: ubuntu-latest
steps:
- uses: mislav/bump-homebrew-formula-action@v1
with:
# A PR will be sent to github.com/Homebrew/homebrew-core to update this formula:
formula-name: cheat
env:
COMMITTER_TOKEN: ${{ secrets.COMMITTER_TOKEN }}

View File

@ -196,14 +196,13 @@ cheat -p personal -t networking --regex -s '(?:[0-9]{1,3}\.){3}[0-9]{1,3}'
Advanced Usage Advanced Usage
-------------- --------------
Shell autocompletion is currently available for the `bash` and `fish` shells. Shell autocompletion is currently available for `bash`, `fish`, and `zsh`. Copy
Copy the relevant [completion script][completions] into the appropriate the relevant [completion script][completions] into the appropriate directory on
directory on your filesystem to enable autocompletion. (This directory will your filesystem to enable autocompletion. (This directory will vary depending
vary depending on operating system and shell specifics.) on operating system and shell specifics.)
Additionally, `cheat` supports enhanced autocompletion via integration with Additionally, `cheat` supports enhanced autocompletion via integration with
[fzf][]. (This feature is currently available on bash only.) To enable `fzf` [fzf][]. To enable `fzf` integration:
integration:
1. Ensure that `fzf` is available on your `$PATH` 1. Ensure that `fzf` is available on your `$PATH`
2. Set an envvar: `export CHEAT_USE_FZF=true` 2. Set an envvar: `export CHEAT_USE_FZF=true`

View File

@ -17,7 +17,7 @@ import (
"github.com/cheat/cheat/internal/installer" "github.com/cheat/cheat/internal/installer"
) )
const version = "3.8.0" const version = "3.9.0"
func main() { func main() {

View File

@ -175,15 +175,17 @@ For detailed instructions on how to configure cheatpaths, please refer
to the comments in conf.yml. to the comments in conf.yml.
.SS Autocompletion .SS Autocompletion
.PP .PP
Autocompletion scripts for \f[B]bash\f[]/\f[B]zsh\f[] and \f[B]fish\f[] Autocompletion scripts for \f[B]bash\f[], \f[B]zsh\f[], and
are available for download: \f[B]fish\f[] are available for download:
.IP \[bu] 2 .IP \[bu] 2
<https://github.com/cheat/cheat/blob/master/scripts/cheat.bash> <https://github.com/cheat/cheat/blob/master/scripts/cheat.bash>
.IP \[bu] 2 .IP \[bu] 2
<https://github.com/cheat/cheat/blob/master/scripts/cheat.fish> <https://github.com/cheat/cheat/blob/master/scripts/cheat.fish>
.IP \[bu] 2
<https://github.com/cheat/cheat/blob/master/scripts/cheat.zsh>
.PP .PP
The \f[B]bash\f[]/\f[B]zsh\f[] scripts provide optional integration with The \f[B]bash\f[] and \f[B]zsh\f[] scripts provide optional integration
\f[B]fzf\f[], if the latter is available on your \f[B]PATH\f[]. with \f[B]fzf\f[], if the latter is available on your \f[B]PATH\f[].
.PP .PP
The installation process will vary per system and shell configuration, The installation process will vary per system and shell configuration,
and thus will not be discussed here. and thus will not be discussed here.
@ -195,6 +197,12 @@ If \f[B]CHEAT_CONFIG_PATH\f[] is set, all other config paths will be
ignored. ignored.
.RS .RS
.RE .RE
.TP
.B \f[B]CHEAT_USE_FZF\f[]
If set, autocompletion scripts will attempt to integrate with
\f[B]fzf\f[].
.RS
.RE
.SH BUGS .SH BUGS
.PP .PP
See GitHub issues: <https://github.com/cheat/cheat/issues> See GitHub issues: <https://github.com/cheat/cheat/issues>

View File

@ -137,14 +137,15 @@ comments in conf.yml.
Autocompletion Autocompletion
-------------- --------------
Autocompletion scripts for **bash**/**zsh** and **fish** are available for Autocompletion scripts for **bash**, **zsh**, and **fish** are available for
download: download:
- <https://github.com/cheat/cheat/blob/master/scripts/cheat.bash> - <https://github.com/cheat/cheat/blob/master/scripts/cheat.bash>
- <https://github.com/cheat/cheat/blob/master/scripts/cheat.fish> - <https://github.com/cheat/cheat/blob/master/scripts/cheat.fish>
- <https://github.com/cheat/cheat/blob/master/scripts/cheat.zsh>
The **bash**/**zsh** scripts provide optional integration with **fzf**, if the The **bash** and **zsh** scripts provide optional integration with **fzf**, if
latter is available on your **PATH**. the latter is available on your **PATH**.
The installation process will vary per system and shell configuration, and thus The installation process will vary per system and shell configuration, and thus
will not be discussed here. will not be discussed here.
@ -158,6 +159,10 @@ ENVIRONMENT
: The path at which the config file is available. If **CHEAT_CONFIG_PATH** is : The path at which the config file is available. If **CHEAT_CONFIG_PATH** is
set, all other config paths will be ignored. set, all other config paths will be ignored.
**CHEAT_USE_FZF**
: If set, autocompletion scripts will attempt to integrate with **fzf**.
BUGS BUGS
==== ====

57
scripts/cheat.zsh Executable file
View File

@ -0,0 +1,57 @@
#compdef cheat
local cheats taglist pathlist
_cheat_complete_cheatsheets()
{
cheats=("${(f)$(cheat -l -t personal | tail -n +2 | cut -d' ' -f1)}")
_describe -t cheats 'cheats' cheats
}
_cheat_complete_tags()
{
taglist=("${(f)$(cheat -T)}")
_describe -t taglist 'taglist' taglist
}
_cheat_complete_paths()
{
pathlist=("${(f)$(cheat -d | cut -d':' -f1)}")
_describe -t pathlist 'pathlist' pathlist
}
_cheat() {
_arguments -C \
'(--init)--init[Write a default config file to stdout]: :->none' \
'(-c --colorize)'{-c,--colorize}'[Colorize output]: :->none' \
'(-d --directories)'{-d,--directories}'[List cheatsheet directories]: :->none' \
'(-e --edit)'{-e,--edit}'[Edit <sheet>]: :->full' \
'(-l --list)'{-l,--list}'[List cheatsheets]: :->full' \
'(-p --path)'{-p,--path}'[Return only sheets found on path <name>]: :->pathlist' \
'(-r --regex)'{-r,--regex}'[Treat search <phrase> as a regex]: :->none' \
'(-s --search)'{-s,--search}'[Search cheatsheets for <phrase>]: :->none' \
'(-t --tag)'{-t,--tag}'[Return only sheets matching <tag>]: :->taglist' \
'(-T --tags)'{-T,--tags}'[List all tags in use]: :->none' \
'(-v --version)'{-v,--version}'[Print the version number]: :->none' \
'(--rm)--rm[Remove (delete) <sheet>]: :->full' \
case $state in
(none)
;;
(full)
_cheat_complete_cheatsheets
;;
(taglist)
_cheat_complete_tags
;;
(pathlist)
_cheat_complete_paths
;;
(*)
_cheat_complete_cheatsheets
;;
esac
}
_cheat