Snapshot of commit 329607d9ebcedf2bb0ad81265354366db7dc3f9c

from branch master of git://git.jetbrains.org/idea/community.git

Change-Id: I3b27d82897504da1b66169b67c7771e0f551c973
diff --git a/build/scripts/utils.gant b/build/scripts/utils.gant
index cc8bb29..7789982 100644
--- a/build/scripts/utils.gant
+++ b/build/scripts/utils.gant
@@ -327,6 +327,29 @@
 
   String classPath = classPathLibs.collect {"\$APP_PACKAGE/lib/${it}" }.join(":")
 
+  String urlSchemes = ""
+  if (args.urlSchemes != null) {
+    urlSchemes += """
+      <key>CFBundleURLTypes</key>
+      <array>
+        <dict>
+          <key>CFBundleTypeRole</key>
+          <string>Editor</string>
+          <key>CFBundleURLName</key>
+          <string>Stacktrace</string>
+          <key>CFBundleURLSchemes</key>
+          <array>
+"""
+    args.urlSchemes.each { scheme ->
+      urlSchemes += "            <string>${scheme}</string>"
+    }
+    urlSchemes += """
+          </array>
+        </dict>
+      </array>
+"""
+  }
+
   ant.replace(file: "$path/Contents/Info.plist") {
     replacefilter(token: "@@build@@", value: args.buildNumber)
     replacefilter(token: "@@doc_types@@", value: ifNull(args.doc_types, ""))
@@ -340,6 +363,7 @@
     replacefilter(token: "@@idea_properties@@", value: coreProperties)
     replacefilter(token: "@@class_path@@", value: classPath)
     replacefilter(token: "@@help_id@@", value: helpId)
+    replacefilter(token: "@@url_schemes@@", value: urlSchemes)
   }
 
   if (executable != "idea") {