code: def get_param_indexes(self, data):
          
          # TODO: new method to extract an element's name so will be available for @param and @types and other styles (:param, \param)
          start, end = -1, -1
          stl_param = self.opt['param'][self.style['in']]['name']
          if self.style['in'] in self.tagstyles + ['unknown']:
              idx_p = self.get_key_index(data, 'param')
              if idx_p >= 0:
                  idx_p += len(stl_param)
                  m = re.match(r'^([\w]+)', data[idx_p:].strip())
                  if m:
                      param = m.group(1)
                      start = idx_p + data[idx_p:].find(param)
                      end = start + len(param)
  
          if self.style['in'] in ['groups', 'unknown'] and (start, end) == (-1, -1):
              # search = '\s*(%s)' % '|'.join(self.groups['param'])
              # m = re.match(search, data.lower())
              # if m:
              #    key_param = m.group(1)
              pass
  
          if self.style['in'] in ['params', 'groups', 'unknown'] and (start, end) == (-1, -1):
              if self.params is None:
                  return -2, -2
              idx = -1
              param = None
              for p in self.params:
                  if type(p) is tuple:
                      p = p[0]
                  i = data.find('\n' + p)
                  if i >= 0:
                      if idx == -1 or i < idx:
                          idx = i
                          param = p
              if idx != -1:
                  start, end = idx, idx + len(param)
          return start, end
docs: Get from a docstring the next parameter name indexes.
          In javadoc style it is after @param.
  
          :param data: string to parse
          :returns: start and end indexes of found element else (-1, -1)
            or else (-2, -2) if try to use params style but no parameters were provided.
            Note: the end index is the index after the last name character
          :rtype: tuple