Browse Source

Use "=>" as key/value seperator

It's less likely to occur in script names and break the script regex
pull/6/head
Luke Childs 8 years ago
parent
commit
eb41c6655e
  1. 10
      zsh-better-npm-completion.plugin.zsh

10
zsh-better-npm-completion.plugin.zsh

@ -30,21 +30,21 @@ _zbnc_get_package_json_property_object() {
cat "$package_json" | cat "$package_json" |
sed -nE "/^ \"$property\": \{$/,/^ \},?$/p" | # Grab scripts object sed -nE "/^ \"$property\": \{$/,/^ \},?$/p" | # Grab scripts object
sed '1d;$d' | # Remove first/last lines sed '1d;$d' | # Remove first/last lines
sed -E 's/ "([^"]+)": "(.+)",?/\1:\2/' # Parse into key:value sed -E 's/ "([^"]+)": "(.+)",?/\1=>\2/' # Parse into key=>value
} }
_zbnc_get_package_json_property_object_keys() { _zbnc_get_package_json_property_object_keys() {
local package_json="$1" local package_json="$1"
local property="$2" local property="$2"
_zbnc_get_package_json_property_object "$package_json" "$property" | cut -f 1 -d ":" _zbnc_get_package_json_property_object "$package_json" "$property" | cut -f 1 -d "="
} }
_zbnc_parse_package_json_for_script_suggestions() { _zbnc_parse_package_json_for_script_suggestions() {
local package_json="$1" local package_json="$1"
_zbnc_get_package_json_property_object "$package_json" scripts | _zbnc_get_package_json_property_object "$package_json" scripts |
sed -E 's/([^:]+):(.+)/\1:$ \2/' | # Parse commands into suggestions sed -E 's/(.+)=>(.+)/\1:$ \2/' | # Parse commands into suggestions
sed 's/\(:\)[^$]/\\&/g' | # Escape ":" in commands sed 's/\(:\)[^$]/\\&/g' | # Escape ":" in commands
sed 's/\(:\)$[^ ]/\\&/g' # Escape ":$" without a space in commands sed 's/\(:\)$[^ ]/\\&/g' # Escape ":$" without a space in commands
} }
_zbnc_parse_package_json_for_deps() { _zbnc_parse_package_json_for_deps() {

Loading…
Cancel
Save