diff --git a/plugins/coffee/coffee.plugin.zsh b/plugins/coffee/coffee.plugin.zsh index 6d1ce5ce4..a6661df94 100644 --- a/plugins/coffee/coffee.plugin.zsh +++ b/plugins/coffee/coffee.plugin.zsh @@ -1,16 +1,58 @@ #!/bin/zsh -# compile a string of coffeescript and print to output -cf () { - coffee -peb "$1" -} -# compile & copy to clipboard -cfc () { - cf "$1" | clipcopy +# Check if coffee is installed +if ! command -v coffee >/dev/null 2>&1; then + echo "Error: CoffeeScript compiler not found. Please install it with 'npm install -g coffee-script'" >&2 + return 1 +fi + +# Compile a string of CoffeeScript and print to output +cf() { + if [[ -z "$1" ]]; then + echo "Error: No input provided" >&2 + echo "Usage: cf 'CoffeeScript code'" >&2 + return 1 + fi + coffee -peb -- "$1" 2>/dev/null || { + echo "Error: Failed to compile CoffeeScript" >&2 + return 1 + } } -# compile from clipboard & print -alias cfp='cf "$(clippaste)"' +# Compile & copy to clipboard +cfc() { + if [[ -z "$1" ]]; then + echo "Error: No input provided" >&2 + echo "Usage: cfc 'CoffeeScript code'" >&2 + return 1 + fi + local result + result=$(cf "$1") || return 1 + echo "$result" | clipcopy && echo "Compiled code copied to clipboard" +} -# compile from clipboard and copy to clipboard -alias cfpc='cfp | clipcopy' +# Compile from clipboard & print +cfp() { + local input + input=$(clippaste) + if [[ -z "$input" ]]; then + echo "Error: Clipboard is empty" >&2 + return 1 + fi + cf "$input" +} + +# Compile from clipboard and copy back to clipboard +cfpc() { + local input result + input=$(clippaste) + if [[ -z "$input" ]]; then + echo "Error: Clipboard is empty" >&2 + return 1 + fi + result=$(cf "$input") || return 1 + echo "$result" | clipcopy && echo "Compiled code copied to clipboard" +} + +# Export the functions +export -f cf cfc cfp cfpc