code: def _signature_index(self, iexec):
          
          #Find out where in the signature the cursor is at the moment.
          call_index = self.context.call_arg_index
          if call_index is not None:
              #We found the index of the parameter whose docstring we want
              #to return.
              param = iexec.get_parameter(call_index)
              paramlist = [ p.name for p in iexec.ordered_parameters ]
              paramlist[call_index] = "*{}*".format(paramlist[call_index])
  
              if not isinstance(param, list) and param is not None:
                  #Write a nice description that includes the parameter type and
                  #intent as well as dimension.
                  summary = "{} | {}".format(str(param), param.summary)
                  #We also want to determine if this parameter has its value changed
                  #by the function we are completing on.
                  changedby = iexec.changed(param.name)
                  if changedby is not None:
                      summary += " *MODIFIED*"
              elif isinstance(param, list) and len(param) > 0:
                  act_type = []
                  for iparam in param:
                      if iparam is not None and iparam.strtype not in act_type:
                          act_type.append(iparam.strtype)
  
                  act_text = ', '.join(act_type)
                  summary = "SUMMARY: {} | ACCEPTS: {}".format(param[0].summary, act_text)
  
                  if iexec.changed(param[0].name):
                      summary += " | *MODIFIED*"
              else:
                  summary = "No matching variable definition."
  
              #Add the name of the module who owns the executable.
              summary += " | MODULE: {}".format(iexec.module.name)
  
              return dict(
                  params=paramlist,
                  index=call_index,
                  call_name=self.context.el_name,
                  description=summary,
              )
          else:
              return result
docs: Determines where in the call signature the cursor is to decide which
          parameter needs to have its information returned for the intellisense.