code: def on_request_split(self):
          
          if (self.lasso.count < 3 or
                  not len(self.cluster_ids)):  # pragma: no cover
              return np.array([], dtype=np.int64)
          assert len(self.channel_ids)
  
          # Get the dimensions of the lassoed subplot.
          i, j = self.lasso.box
          dim = self.grid_dim[i][j]
          dim_x, dim_y = dim.split(',')
  
          # Get all points from all clusters.
          pos = []
          spike_ids = []
  
          for cluster_id in self.cluster_ids:
              # Load all spikes.
              bunch = self.features(cluster_id,
                                    channel_ids=self.channel_ids,
                                    load_all=True)
              px = self._get_axis_data(bunch, dim_x, cluster_id=cluster_id,
                                       load_all=True)
              py = self._get_axis_data(bunch, dim_y, cluster_id=cluster_id,
                                       load_all=True)
              points = np.c_[px.data, py.data]
  
              # Normalize the points.
              xmin, xmax = self._get_axis_bounds(dim_x, px)
              ymin, ymax = self._get_axis_bounds(dim_y, py)
              r = Range((xmin, ymin, xmax, ymax))
              points = r.apply(points)
  
              pos.append(points)
              spike_ids.append(bunch.spike_ids)
          pos = np.vstack(pos)
          spike_ids = np.concatenate(spike_ids)
  
          # Find lassoed spikes.
          ind = self.lasso.in_polygon(pos)
          self.lasso.clear()
          return np.unique(spike_ids[ind])
docs: Return the spikes enclosed by the lasso.