diff options
author | Bibiko <bibiko@eva.mpg.de> | 2011-01-19 11:36:19 +0000 |
---|---|---|
committer | Bibiko <bibiko@eva.mpg.de> | 2011-01-19 11:36:19 +0000 |
commit | 3f813a65b0d41b4a1771349f27a2d0ccafb740f5 (patch) | |
tree | 0b13de4829c6709c4aa91954910b16f5523458a6 /SharedSupport/Default Bundles/Toggle JSON Format.spBundle | |
parent | f0453a887ea5e150c5083bb51c9e9a7e49691138 (diff) | |
download | sequelpro-3f813a65b0d41b4a1771349f27a2d0ccafb740f5.tar.gz sequelpro-3f813a65b0d41b4a1771349f27a2d0ccafb740f5.tar.bz2 sequelpro-3f813a65b0d41b4a1771349f27a2d0ccafb740f5.zip |
• improved replacing selection of Bundle commands - intersect ranges in beforehand for safety reasons
• removed Serialize/Prettify JSON Bundles by Toggle JSON Format which auto-detects the JSON format to decide whether to serialize or pretty print
Diffstat (limited to 'SharedSupport/Default Bundles/Toggle JSON Format.spBundle')
-rw-r--r-- | SharedSupport/Default Bundles/Toggle JSON Format.spBundle/command.plist | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/SharedSupport/Default Bundles/Toggle JSON Format.spBundle/command.plist b/SharedSupport/Default Bundles/Toggle JSON Format.spBundle/command.plist new file mode 100644 index 00000000..6476d86b --- /dev/null +++ b/SharedSupport/Default Bundles/Toggle JSON Format.spBundle/command.plist @@ -0,0 +1,68 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>author</key> + <string>Hans-Jörg Bibiko</string> + <key>category</key> + <string>Format</string> + <key>command</key> + <string>DATA=$(cat) + +FORMAT=$(echo "$DATA" | head -n 1 | perl -e '$l=<>;print "1" if($l=~m/^\s*\{\s*$/)') + +# if FORMAT == 1 then serialize JSON data otherwise pretty print them +if [ "$FORMAT" == 1 ]; then + + DATA=$(echo "$DATA" | php -r ' + $jsonData = ""; + $inputStream = fopen("php://stdin", "r"); + while($d = fgets($inputStream)) { $jsonData .= $d; } + print json_encode(json_decode($jsonData)); + ') + +else + + DATA=$(echo "$DATA" | python -mjson.tool) + +fi + +# if there's a need to preserve Unicode characters remove the first to characters of the following line +# DATA=$(echo "$DATA" | perl -Xpe 'binmode STDIN,":utf8";binmode STDOUT,":utf8";s/\\u([0-9A-F]{4})/chr(hex($1))/ieg') + +echo "$DATA"</string> + <key>contact</key> + <string>znvy@ovovxb.qr</string> + <key>description</key> + <string>If the first line of the selection or the entire content of the current text input field only contains a "{" then serialize the JSON data otherwise the JSON data will be pretty printed. If there's a need to preserve the Unicode characters you can uncomment the line 22. + +Version 1.0</string> + <key>input</key> + <string>selectedtext</string> + <key>input_fallback</key> + <string>entirecontent</string> + <key>internalKeyEquivalent</key> + <dict> + <key>characters</key> + <string>J</string> + <key>keyCode</key> + <integer>38</integer> + <key>modifierFlags</key> + <integer>1572864</integer> + </dict> + <key>keyEquivalent</key> + <string>~@j</string> + <key>name</key> + <string>Toggle JSON Format</string> + <key>output</key> + <string>replaceselection</string> + <key>scope</key> + <string>inputfield</string> + <key>tooltip</key> + <string>Serialize or pretty print JSON data</string> + <key>uuid</key> + <string>87FD8A4F-90AA-4020-9E0B-8CDD05764D08</string> + <key>isDefaultBundle</key> + <true/> +</dict> +</plist> |