mirror of
				https://github.com/cheat/cheat.git
				synced 2025-11-03 23:35:27 +01:00 
			
		
		
		
	chore: bumps version to 3.5.0
Squashed commit of the following: commit8b74d50f1fAuthor: Chris Lane <chris@chris-allen-lane.com> Date: Sun Feb 2 14:40:23 2020 -0500 chore: updates README Edits the `README` to provid updated information regarding the shell autocompletion scripts and `fzf` integration. commit9868ba2d68Author: Chris Lane <chris@chris-allen-lane.com> Date: Sun Feb 2 14:39:04 2020 -0500 chore: modifies envvar check Modifies the `CHEAT_USE_FZF` envvar check within the bash autocompletion script for clarity. commitac1012f743Author: Chris Lane <chris@chris-allen-lane.com> Date: Sun Feb 2 14:25:34 2020 -0500 chore: renames autocompletion scripts Renames autocompletion scripts to conform with the conventions established in `scop/bash-completion`. commitc8747bd91dAuthor: Chris Lane <chris@chris-allen-lane.com> Date: Sun Feb 2 14:23:03 2020 -0500 feat: improved bash autocompletions - Dramatically improves quality of bash autocompletions - Provides optional integration with `fzf` commit825bd0139dAuthor: Chris Lane <chris@chris-allen-lane.com> Date: Sun Feb 2 09:19:46 2020 -0500 chore: deletes `fzf.bash` Deletes `fzf.bash`, which was always intended to be a temporary placeholder anticipating future improvements.
This commit is contained in:
		
							
								
								
									
										12
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								README.md
									
									
									
									
									
								
							@@ -193,9 +193,17 @@ cheat -p personal -t networking --regex -s '(?:[0-9]{1,3}\.){3}[0-9]{1,3}'
 | 
			
		||||
 | 
			
		||||
Advanced Usage
 | 
			
		||||
--------------
 | 
			
		||||
`cheat` may be integrated with [fzf][]. See [fzf.bash][bash] for instructions.
 | 
			
		||||
(Support for other shells will be added in future releases.)
 | 
			
		||||
Shell autocompletion is currently available for the `bash` and `fish` shells.
 | 
			
		||||
Copy the relevant [completion script][completion-scripts] into the appropriate
 | 
			
		||||
directory on your filesystem to enable autocompletion. (This directory will
 | 
			
		||||
vary depending on operating system and shell specifics.)
 | 
			
		||||
 | 
			
		||||
Additionally, `cheat` supports enhanced autocompletion via integration with
 | 
			
		||||
[fzf][]. (This feature is currently available on bash only.) To enable `fzf`
 | 
			
		||||
integration:
 | 
			
		||||
 | 
			
		||||
1. Ensure that `fzf` is available on your `$PATH`
 | 
			
		||||
2. Set an envvar: `export CHEAT_USE_FZF=true`
 | 
			
		||||
 | 
			
		||||
[Releases]:    https://github.com/cheat/cheat/releases
 | 
			
		||||
[bash]:        https://github.com/cheat/cheat/blob/master/scripts/fzf.bash
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@ import (
 | 
			
		||||
	"github.com/cheat/cheat/internal/config"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const version = "3.4.1"
 | 
			
		||||
const version = "3.5.0"
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +0,0 @@
 | 
			
		||||
function _cheat_autocomplete {
 | 
			
		||||
    sheets=$(cheat -l | sed -n '2,$p'|cut -d' ' -f1)
 | 
			
		||||
    COMPREPLY=()
 | 
			
		||||
    if [ $COMP_CWORD = 1 ]; then
 | 
			
		||||
	COMPREPLY=(`compgen -W "$sheets" -- $2`)
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
complete -F _cheat_autocomplete cheat
 | 
			
		||||
							
								
								
									
										74
									
								
								scripts/cheat.bash
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										74
									
								
								scripts/cheat.bash
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,74 @@
 | 
			
		||||
# cheat(1) completion                                      -*- shell-script -*-
 | 
			
		||||
 | 
			
		||||
# generate cheatsheet completions, optionally using `fzf`
 | 
			
		||||
_cheat_complete_cheatsheets()
 | 
			
		||||
{
 | 
			
		||||
  if [[ "$CHEAT_USE_FZF" = true ]]; then
 | 
			
		||||
    FZF_COMPLETION_TRIGGER='' _fzf_complete "--no-multi" "$@" < <(
 | 
			
		||||
      cheat -l | tail -n +2 | cut -d' ' -f1
 | 
			
		||||
    )
 | 
			
		||||
  else
 | 
			
		||||
    COMPREPLY=( $(compgen -W "$(cheat -l | tail -n +2 | cut -d' ' -f1)" -- "$cur") )
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# generate tag completions, optionally using `fzf`
 | 
			
		||||
_cheat_complete_tags()
 | 
			
		||||
{
 | 
			
		||||
  if [ "$CHEAT_USE_FZF" = true ]; then
 | 
			
		||||
    FZF_COMPLETION_TRIGGER='' _fzf_complete "--no-multi" "$@" < <(cheat -T)
 | 
			
		||||
  else
 | 
			
		||||
    COMPREPLY=( $(compgen -W "$(cheat -T)" -- "$cur") )
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# implement the `cheat` autocompletions
 | 
			
		||||
_cheat()
 | 
			
		||||
{
 | 
			
		||||
  local cur prev words cword split
 | 
			
		||||
  _init_completion -s || return
 | 
			
		||||
 | 
			
		||||
  # complete options that are currently being typed: `--col` => `--colorize`
 | 
			
		||||
  if [[ $cur == -* ]]; then
 | 
			
		||||
    COMPREPLY=( $(compgen -W '$(_parse_help "$1" | sed "s/=//g")' -- "$cur") )
 | 
			
		||||
    [[ $COMPREPLY == *= ]] && compopt -o nospace
 | 
			
		||||
    return
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  # implement completions
 | 
			
		||||
  case $prev in
 | 
			
		||||
    --colorize|-c|\
 | 
			
		||||
    --directories|-d|\
 | 
			
		||||
    --init|\
 | 
			
		||||
    --regex|-r|\
 | 
			
		||||
    --search|-s|\
 | 
			
		||||
    --tags|-T|\
 | 
			
		||||
    --version|-v)
 | 
			
		||||
      # noop the above, which should implement no completions
 | 
			
		||||
      ;;
 | 
			
		||||
    --edit|-e)
 | 
			
		||||
      _cheat_complete_cheatsheets
 | 
			
		||||
      ;;
 | 
			
		||||
    --list|-l)
 | 
			
		||||
      _cheat_complete_cheatsheets
 | 
			
		||||
      ;;
 | 
			
		||||
    --path|-p)
 | 
			
		||||
      COMPREPLY=( $(compgen -W "$(cheat -d | cut -d':' -f1)" -- "$cur") )  
 | 
			
		||||
      ;;
 | 
			
		||||
    --rm)
 | 
			
		||||
      _cheat_complete_cheatsheets
 | 
			
		||||
      ;;
 | 
			
		||||
    --tag|-t)
 | 
			
		||||
      _cheat_complete_tags
 | 
			
		||||
      ;;
 | 
			
		||||
    *)
 | 
			
		||||
      _cheat_complete_cheatsheets
 | 
			
		||||
      ;;
 | 
			
		||||
  esac
 | 
			
		||||
 | 
			
		||||
  $split && return
 | 
			
		||||
 | 
			
		||||
} &&
 | 
			
		||||
complete -F _cheat cheat
 | 
			
		||||
 | 
			
		||||
# ex: filetype=sh
 | 
			
		||||
@@ -1,11 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
# This function enables you to choose a cheatsheet to view by selecting output
 | 
			
		||||
# from `cheat -l`. `source` it in your shell to enable it. (Consider renaming
 | 
			
		||||
# or aliasing it to something convenient.)
 | 
			
		||||
 | 
			
		||||
# Arguments passed to this function (like --color) will be passed to the second
 | 
			
		||||
# invokation of `cheat`.
 | 
			
		||||
function cheat-fzf {
 | 
			
		||||
  eval `cheat -l | tail -n +2 | fzf | awk -v vars="$*" '{ print "cheat " $1 " -t " $3, vars }'`
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user