code: def setup(self, quiet=False, bootstrap_server=False):
          
          def lazy_initialize_ensime():
              if not self.ensime:
                  called_by = inspect.stack()[4][3]
                  self.log.debug(str(inspect.stack()))
                  self.log.debug('setup(quiet=%s, bootstrap_server=%s) called by %s()',
                                 quiet, bootstrap_server, called_by)
  
                  installed = self.launcher.strategy.isinstalled()
                  if not installed and not bootstrap_server:
                      if not quiet:
                          scala = self.launcher.config.get('scala-version')
                          msg = feedback["prompt_server_install"].format(scala_version=scala)
                          self.editor.raw_message(msg)
                      return False
  
                  try:
                      self.ensime = self.launcher.launch()
                  except InvalidJavaPathError:
                      self.editor.message('invalid_java')  # TODO: also disable plugin
  
              return bool(self.ensime)
  
          def ready_to_connect():
              if not self.ws and self.ensime.is_ready():
                  self.connect_ensime_server()
              return True
  
          # True if ensime is up and connection is ok, otherwise False
          return self.running and lazy_initialize_ensime() and ready_to_connect()
docs: Check the classpath and connect to the server if necessary.