<div dir="ltr"><font face="Tahoma" size="2" color="black"><span style="font-size:10pt" dir="ltr"><font face="Times New Roman" size="2"><span style="font-size:16px"><div>
<div><font face="Tahoma" size="2"><span style="font-size:10pt"><font face="Helvetica">Hello, </font>
<div><font face="Helvetica"><br>

</font></div>
<font face="Helvetica">I am working on autocompletion in the context of cling (</font><a href="https://mmm.cern.ch/owa/redir.aspx?C=uJ-aTnQK4Uuu63K_-62ZB9lhrt-KMNMISzgTuVv6J_9YwDFhO3ofuTkvJrVPSJOIGwZuUCspl3I.&URL=https%3a%2f%2froot.cern.ch%2fcling" target="_blank"><font face="Helvetica">https://root.cern.ch/cling</font></a><font face="Helvetica">). </font><font face="Helvetica">
</font>
<div><font face="Helvetica">I am trying to use clang’s autocompletion on identifiers. </font><font face="Helvetica"><br>

</font></div>
<div>
<pre style="margin-top:14pt;margin-bottom:14pt"><font face="Helvetica">The file that I am using as a test case is the following:
testTabComp.cxx
class MyClass {
private:
     //data members
  int anInteger;
       double aDouble;

   //function members
public:
     MyClass(int i, double d) { 
             anInteger = i;
            aDouble = d;
     }     
      int getInt() { return anInteger; }
       double getDouble() { return aDouble; }
    void setInt(int value) { anInteger = value; }
      void setDouble(double value) { aDouble = value; }
};

int main() {

  MyClass* objectMyClass = new MyClass(5, 1.0);
        objectMyClass->set\r
     return 0;
}

I am invoing clang with: 
../Debug+Asserts/bin/clang -cc1 -code-completion-at=testTabComp.cxx:32:23 testTabComp.cxx

If I omit the "set" token then it autocompletes correctly:</font><font face="Helvetica">
COMPLETION: aDouble : [#double#]aDouble</font><font face="Helvetica">
COMPLETION: anInteger : [#int#]anInteger</font><font face="Helvetica">
COMPLETION: getDouble : [#double#]getDouble()</font><font face="Helvetica">
COMPLETION: getInt : [#int#]getInt()</font><font face="Helvetica">
COMPLETION: MyClass : MyClass::</font><font face="Helvetica">
COMPLETION: operator= : [#MyClass &#]operator=(<#const MyClass &#>)</font><font face="Helvetica">
COMPLETION: setDouble : [#void#]setDouble(<#double value#>)</font><font face="Helvetica">
COMPLETION: setInt : [#void#]setInt(<#int value#>)</font><font face="Helvetica">
COMPLETION: ~MyClass : [#void#]~MyClass()</font><font face="Helvetica">
</font><font face="Helvetica">
But if I don't then I get the whole world:
testTabComp.cxx:32:17: error: no member named 'set' in 'MyClass'
        objectMyClass->set
        ~~~~~~~~~~~~~  ^
COMPLETION: __FUNCTION__
COMPLETION: __PRETTY_FUNCTION__
COMPLETION: bool
COMPLETION: char
COMPLETION: class
COMPLETION: int
COMPLETION: long
COMPLETION: main : [#int#]main()
COMPLETION: MyClass : MyClass
COMPLETION: MyClass : MyClass(<#int i#>, <#double d#>)
COMPLETION: MyClass : MyClass(<#const MyClass &#>)
....

Is that the intended behaviour for code completion of member functions when the completion point is not immediatly after the "->"? 

If there is another way to do this I would appreciate any help! 
PS: I tried libclang as well, but I got the same behaviour.

Thank you! </font></pre>
</div>
<div> </div>
<font face="Helvetica">Cheers,</font><font face="Helvetica"><br>

Cristina Cristescu</font></span></font></div>
</div></span></font></span></font></div>