aboutsummaryrefslogtreecommitdiff
path: root/base/.zsh/tipz.zsh
diff options
context:
space:
mode:
Diffstat (limited to 'base/.zsh/tipz.zsh')
-rw-r--r--base/.zsh/tipz.zsh84
1 files changed, 0 insertions, 84 deletions
diff --git a/base/.zsh/tipz.zsh b/base/.zsh/tipz.zsh
deleted file mode 100644
index bb1e224..0000000
--- a/base/.zsh/tipz.zsh
+++ /dev/null
@@ -1,84 +0,0 @@
-###
-# Search the defined aliases for a match
-###
-function _tipz_find_match() {
- local bits alias command result=""
- local -a aliases args; args="$@"
-
- # Load the current aliases into an array
- local oldIFS=$IFS
- IFS=$'\n' aliases=($(alias))
- IFS=$oldIFS
-
- # Loop through each of the aliases
- for line in "${aliases[@]}"; do
- # Split the line on '=' to separate the command
- # and its alias
- bits=("${(s/=/)line}")
- alias=$bits[1]
- command=$bits[2]
-
- # Create a regex that finds an exact match for
- # the current argument string
- args="${(@)args[@]}"
- local pattern=$'^[\'\"]?'${args//([\{\}\(\)\[\]\*\?\:\\\.\|])/\\\$1}$'[\'\"]?$'
-
- # Check if the command matches the regex
- if [[ "$command" =~ $pattern ]]; then
- # Ensure that the longest matching command is stored
- if [[ ${#command} > ${#result} ]]; then
- result=$alias
- fi
- fi
- done
-
- # If a result has been found, output it
- if [[ -n $result ]]; then
- echo $result
- return 0
- fi
-
- return 1
-}
-
-###
-# Search for alias tips for the currently executing command
-###
-function _tipz_process {
- local -a cmd; cmd=($@)
- integer i=$(( ${#cmd} + 1 ))
-
- # Loop for the length of the argument list, knocking
- # an argument from the end of the list each time, and
- # then using the remaining arguments to search for aliases
- while [[ $i > 0 ]]; do
- # Check the current string for a match
- result=$(_tipz_find_match "${(@)cmd:0:$i}")
-
- # If the search exited successfully,
- # output the tip to the user
- if [[ $? -eq 0 ]]; then
- print -P "%B%F{8}Alias tip: %b$result ${(@)cmd:$i}%f"
- return 0
- fi
-
- # Decrement the counter
- i=$(( i - 1 ))
- done
-
- return 1
-}
-
-###
-# A small function to filter out strange arguments
-# sent from the add-zsh-hook preexec hook
-###
-function _tipz_prexec() {
- _tipz_process $(echo $1)
-}
-
-###
-# Register the preexec hook
-###
-autoload -Uz add-zsh-hook
-add-zsh-hook preexec _tipz_prexec