anchor.diff:    //
     fTempLines.LoadFromStream(fClient.Output);
     if fTempLines.Count = 0 then exit;
  -  //
  -  asComp := fTempLines.Strings[0] = 'identifiers';
  -  asTips := fTempLines.Strings[0] = 'calltips';
  -  if asTips then exit;
  -  //
  -  if asComp then j := 1 else j := 0;
  +  if not (fTempLines.Strings[0] = 'calltips') then exit;
  +  //
  +  fTempLines.Delete(0);
  +  tips := fTempLines.Text;
  +  tips := tips[1..length(tips)-2];
  +end;
  +
  +procedure TCEDcdWrapper.getComplAtCursor(aList: TStrings);
  +var
  +  i: Integer;
  +  kind: Char;
  +  item: string;
  +begin
  +  if not fAvailable then exit;
  +  if fDoc = nil then exit;
  +  //
  +  fTempLines.Assign(fDoc.Lines);
  +  fTempLines.SaveToFile(fDoc.tempFilename);
  +  //
  +  terminateClient;
  +  fClient.Parameters.Clear;
  +  fClient.Parameters.Add('-c');
  +  fClient.Parameters.Add(intToStr(fDoc.SelStart - 1));
  +  fClient.Parameters.Add(fDoc.tempFilename);
  +  fClient.Execute;
  +  //
  +  fTempLines.LoadFromStream(fClient.Output);
  +  if fTempLines.Count = 0 then exit;
  +  if not (fTempLines.Strings[0] = 'identifiers') then exit;
  +  //
     aList.Clear;
  -  for i := j to fTempLines.Count-1 do
  +  for i := 1 to fTempLines.Count-1 do
     begin
       item := fTempLines.Strings[i];
       kind := item[length(item)];
  
positive.code:     procedure restartServer;
      procedure addImportFolder(const aFolder: string);
      procedure getComplAtCursor(aList: TStrings);
      procedure getDdocFromCursor(out aComment: string);
      procedure getDeclFromCursor(out aFilename: string; out aPosition: Integer);
      //
  
negative.code:   fClient.Execute;
  end;
  
  procedure TCEDcdWrapper.getCallTip(out tips: string);
  begin
    if not fAvailable then exit;
    if fDoc = nil then exit;
  