       lineScopes = @getLineScopes(editor, bufferPosition)
       cursorScope = @getClassScope(editor, bufferPosition, lineScopes)
       if cursorScope?
-        return @addChildren(cursorScope, completions, prefixLower, [])
+        suggestions = @addChildren(cursorScope, suggestions, prefixLower, [])
+        return @buildCompletionList(suggestions)
       if prefix.length < @minPrefix and not activatedManually
         return completions
       for key in @globalObjInd when (@projectObjList[key]['name'].startsWith(prefixLower))
         if @projectObjList[key]['type'] == 'module'
           continue
-        completions.push(@buildCompletion(@projectObjList[key]))
+        suggestions.push(key)
       #
       usedMod = { }
       for lineScope in lineScopes
-        completions = @addChildren(lineScope, completions, prefixLower, [])
+        suggestions = @addChildren(lineScope, suggestions, prefixLower, [])
         usedMod = @getUseSearches(lineScope, usedMod, [])
       for useMod of usedMod
-        completions = @addPublicChildren(useMod, completions, prefixLower, usedMod[useMod])
+        suggestions = @addPublicChildren(useMod, suggestions, prefixLower, usedMod[useMod])
     else
       line = editor.getTextInRange([[bufferPosition.row, 0], bufferPosition])
       unless line.endsWith('%')

    FQN = scope + '::' + name
    if FQN of @projectObjList
      return scope
    # Check inherited
    if 'in_mem' of @projectObjList[scope]
      for childKey in @projectObjList[scope]['in_mem']
        childScopes = childKey.split('::')
        childName = childScopes.pop()
        if childName == name

      return null

  addPublicChildren: (scope, completions, prefix, onlyList) ->
    scopeObj = @projectObjList[scope]
    unless scopeObj?
      return completions
    children = scopeObj['mem']
    unless children?
      return
    currVis = 1
    if 'vis' of scopeObj
      currVis = parseInt(scopeObj['vis'])
    for child in children
      if prefix?
        unless child.startsWith(prefix)
