<p>Scope completion doesn't seem to like not being called at the root scope or on a scoped type:</p>

<div class="highlight highlight-source-c++"><pre><span class="pl-k">namespace</span> <span class="pl-en">ns</span> {
    <span class="pl-k">class</span> <span class="pl-en">C</span> {
    <span class="pl-k">public:</span>
        <span class="pl-k">void</span> <span class="pl-en">func</span>() {}
        <span class="pl-k">int</span> memb;
    };

    C c;

    <span class="pl-k">void</span> <span class="pl-en">dummy</span>() {
        c.<span class="pl-c1">func</span>(); <span class="pl-c">// no autoc on c.</span>
    }
};

ns::C c2;

<span class="pl-k">int</span> <span class="pl-en">main</span> (<span class="pl-k">void</span>) {
    <span class="pl-k">return</span> c2.<span class="pl-smi">memb</span>; <span class="pl-c">// neither on c2.</span>
}</pre></div>

<p>(Same if trying to autoc outside a func).<br>
Any reason?  it's not limited to namespaces, same happens with e.g. a class.</p>

<hr>

<p>However, I must say this is beautiful:</p>

<div class="highlight highlight-source-c++"><pre><span class="pl-k">class</span> <span class="pl-en">C</span>;

<span class="pl-k">class</span> <span class="pl-en">A</span> {
<span class="pl-k">public:</span>
    C *bar;
};

<span class="pl-k">class</span> <span class="pl-en">B</span> {
<span class="pl-k">public:</span>
    A foo;
};

<span class="pl-k">class</span> <span class="pl-en">C</span> {
<span class="pl-k">public:</span>
    B *<span class="pl-en">func</span>() {
        <span class="pl-k">return</span> &b;
    }
    <span class="pl-k">int</span> memb;
    B b;
};

C c;

<span class="pl-k">int</span> <span class="pl-en">main</span> (<span class="pl-k">void</span>) {
    <span class="pl-c">// scope completion all the way, with only sensible stuff :)</span>
    <span class="pl-k">return</span> c.<span class="pl-smi">b</span>.<span class="pl-smi">foo</span>.<span class="pl-smi">bar</span>->b.<span class="pl-smi">foo</span>.<span class="pl-smi">bar</span>->b.<span class="pl-smi">foo</span>.<span class="pl-smi">bar</span>-><span class="pl-c1">func</span>()->foo.<span class="pl-smi">bar</span>->memb;
}</pre></div>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br>Reply to this email directly or <a href="https://github.com/geany/geany/pull/862#issuecomment-172661976">view it on GitHub</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/ABDrJxIeWK5g-PWH5nzshlo_9z1c8Ql-ks5pbVP1gaJpZM4HB6zU.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
  <link itemprop="url" href="https://github.com/geany/geany/pull/862#issuecomment-172661976"></link>
  <meta itemprop="name" content="View Pull Request"></meta>
</div>
<meta itemprop="description" content="View this Pull Request on GitHub"></meta>
</div>