     if isCompletingInheritedClass = @isCompletingInheritedClass({scopeDescriptor})
       completions = completions.concat(@getClassCompletions({prefix}))
 
-    else if isCompletingConstantOrClass = @isCompletingConstantOrClass({scopeDescriptor})
+    else if isCompletingConstant = @isCompletingConstant({scopeDescriptor})
       completions = completions.concat(@getClassCompletions({prefix}))
       completions = completions.concat(@getConstantCompletions({prefix}))
+      completions = completions.concat(@getFunctionCompletions({prefix}))
 
-    else if isCompletingMethod = @isCompletingMethod({scopeDescriptor})
-        completions = completions.concat(@getMethodCompletions({scopeDescriptor, prefix}))
+    # else if isCompletingMethod = @isCompletingMethod({scopeDescriptor})
+    #     completions = completions.concat(@getMethodCompletions({scopeDescriptor, prefix}))
 
     else
-      # Add methods, functions, and classes
+      # Add methods
       completions = completions.concat(@getMethodCompletions({scopeDescriptor, prefix}))
-      completions = completions.concat(@getFunctionCompletions({scopeDescriptor, prefix}))
-      # completions = completions.concat(@getClassCompletions({scopeDescriptor, prefix}))
 
     completions.sort()
     # @getConstructCompletions(request)

    for constant, type of @constants when stringContains(prefix, constant)
      completions.push(@buildConstantCompletion(prefix, constant))
    completions

  buildClassCompletion: (prefix, klass) ->
    type: 'class'

    scopes = scopeDescriptor.getScopesArray()
    return hasScope(scopes, 'meta.function.method')

  isCompletingConstant: ({scopeDescriptor}) ->
    scopes = scopeDescriptor.getScopesArray()
    return hasScope(scopes, 'support.class.ruby') || hasScope(scopes, 'variable.other.constant.ruby')

