     xpc_dictionary_set_uint64(openRequest, "key.request", sourcekitd_uid_get_from_cstr("source.request.editor.open"))
     xpc_dictionary_set_string(openRequest, "key.name", "")
 
-    var xmlDocs = [String]()
+    // Construct a SourceKit request for getting cursor info for current cursor position
+    let cursorInfoRequest = xpc_dictionary_create(nil, nil, 0)
+    xpc_dictionary_set_uint64(cursorInfoRequest, "key.request", sourcekitd_uid_get_from_cstr("source.request.cursorinfo"))
+    xpc_dictionary_set_value(cursorInfoRequest, "key.compilerargs", xpcArguments)
 
     // Print docs for each Swift file
     for file in swiftFiles {
         xpc_dictionary_set_string(openRequest, "key.sourcefile", file)
-
-        var declarationOffsets = [Int64, String]()
-
-        let openResponse: XPCDictionary = fromXPC(sourcekitd_send_request_sync(openRequest))
-        replaceUIDsWithStringsInDictionary(openResponse, declarationOffsets: &declarationOffsets)
+        xpc_dictionary_set_string(cursorInfoRequest, "key.sourcefile", file)
+
+        var openResponse: XPCDictionary = fromXPC(sourcekitd_send_request_sync(openRequest))
+        openResponse.removeValueForKey("key.syntaxmap")
+        replaceUIDsWithStringsInDictionary(&openResponse, cursorInfoRequest)
         println(toJSON(openResponse))
-
-        // Construct a SourceKit request for getting cursor info for current cursor position
-        let cursorInfoRequest = xpc_dictionary_create(nil, nil, 0)
-        xpc_dictionary_set_uint64(cursorInfoRequest, "key.request", sourcekitd_uid_get_from_cstr("source.request.cursorinfo"))
-        xpc_dictionary_set_value(cursorInfoRequest, "key.compilerargs", xpcArguments)
-        xpc_dictionary_set_string(cursorInfoRequest, "key.sourcefile", file)
-
-        // Send "cursorinfo" SourceKit request for each cursor position in the current file.
-        //
-        // This is the same request triggered by Option-clicking a token in Xcode,
-        // so we are also generating documentation for code that is external to the current project,
-        // which is why we filter out docs from outside this file.
-        for cursor in declarationOffsets {
-            xpc_dictionary_set_int64(cursorInfoRequest, "key.offset", cursor.0)
-
-            // Send request and wait for response
-            if let response = fromXPC(sourcekitd_send_request_sync(cursorInfoRequest)) as XPCDictionary? {
-                if contains(response.keys, "key.doc.full_as_xml") {
-                    let xml = response["key.doc.full_as_xml"]! as String
-                    xmlDocs.append(xml.stringByReplacingOccurrencesOfString("</Name><USR>", withString: "</Name><Kind>\(cursor.1)</Kind><USR>"))
-                } else if let usr = response["key.usr"] {
-                    let name = response["key.name"]!
-                    let decl = response["key.annotated_decl"]!
-                    xmlDocs.append("<Other file=\"\(file)\"><Name>\(name)</Name><Kind>\(cursor.1)</Kind><USR>\(usr)</USR>\(decl)</Other>")
-                }
-            }
-        }
-    }
-
-    var docsString = "<jazzy>\n"
-    for xml in xmlDocs {
-        docsString += "\(xml)\n"
-    }
-    docsString += "</jazzy>"
-    return docsString
+    }
 }
 
 /**

    return array.filter {
        $0.rangeOfString(".swift", options: (.BackwardsSearch | .AnchoredSearch)) != nil
    }
}

// MARK: Main Program


:param: arguments compiler arguments to pass to SourceKit
:param: swiftFiles array of Swift file names to document
*/
func docs_for_swift_compiler_args(arguments: [String], swiftFiles: [String]) {
    sourcekitd_initialize()

    // Create the XPC array of compiler arguments once, to be reused for each request
