code: def handle_string_response(self, call_id, payload):
          
          self.log.debug('handle_string_response: in [typehint: %s, call ID: %s]',
                         payload['typehint'], call_id)
  
          # :EnDocBrowse or :EnDocUri
          url = payload['text']
          if not url.startswith('http'):
              port = self.ensime.http_port()
              url = gconfig['localhost'].format(port, url)
  
          options = self.call_options.get(call_id)
          if options and options.get('browse'):
              self._browse_doc(url)
              del self.call_options[call_id]
          else:
              # TODO: make this return value of a Vim function synchronously, how?
              self.log.debug('EnDocUri %s', url)
              return url
docs: Handler for response `StringResponse`.
  
          This is the response for the following requests:
            1. `DocUriAtPointReq` or `DocUriForSymbolReq`
            2. `DebugToStringReq`