         suggestions:
             stream: [
                 {
-                    suggestion: 'get('
+                    suggestion: 'get()'
                     description: 'get( id )'
-                }
-                {
-                    suggestion: 'filter('
+                    has_argument: true
+                }
+                {
+                    suggestion: 'filter()'
                     description: 'filter( predicate )'
+                    has_argument: true
                 }
                 {
                     suggestion: 'length()'
                     description: 'length()'
-                }
-                {
-                    suggestion: 'map('
+                    has_argument: false
+                }
+                {
+                    suggestion: 'map()'
                     description: 'map( attribute )'
-                }
-                {
-                    suggestion: 'slice'
+                    has_argument: true
+                }
+                {
+                    suggestion: 'slice()'
                     description: 'slice( start, end )'
-                }
-                {
-                    suggestion: 'orderby('
+                    has_argument: true
+                }
+                {
+                    suggestion: 'orderby()'
                     description: 'orderby( expression )'
-                }
-                {
-                    suggestion: 'distinct'
+                    has_argument: true
+                }
+                {
+                    suggestion: 'distinct()'
                     description: 'distinct( expression )'
-                }
-                {
-                    suggestion: 'reduce('
+                    has_argument: true
+                }
+                {
+                    suggestion: 'reduce()'
                     description: 'reduce( expression )'
-                }
-                {
-                    suggestion: 'pluck('
+                    has_argument: true
+                }
+                {
+                    suggestion: 'pluck()'
                     description: 'pluck( expression )'
-                }
-                {
-                    suggestion: 'extend('
+                    has_argument: true
+                }
+                {
+                    suggestion: 'extend()'
                     description: 'extend( expression )'
+                    has_argument: true
                 }
             ]
             view:[
                 {
-                    suggestion: 'pluck('
+                    suggestion: 'pluck()'
                     description: 'pluck( expression )'
+                    has_argument: true
                 }
             ]
             db:[
                 {
-                    suggestion: 'table('
+                    suggestion: 'table()'
                     description: 'table( table_name )'
+                    has_argument: true
                 }
                 {
                     suggestion: 'list()'
                     description: 'list()'
-                }
-                {
-                    suggestion: 'create'
+                    has_argument: false
+                }
+                {
+                    suggestion: 'create()'
                     description: 'create( database_name, primary_datacenter_id )'
+                    has_argument: true
                 }
                 {
                     suggestion: 'drop()'
                     description: 'drop()'
+                    has_argument: false
                 }
             ]
             table:[
                 {
-                    suggestion: 'insert('
+                    suggestion: 'insert()'
                     description: 'insert( document )'
+                    has_argument: true
                 }
                 
             ]
             r:[
                 {
-                    suggestion: 'dbCreate('
+                    suggestion: 'dbCreate()'
                     description: 'dbCreate( database_name, primary_datacenter )'
-                }
-                {
-                    suggestion: 'dbDrop('
+                    has_argument: true
+                }
+                {
+                    suggestion: 'dbDrop()'
                     description: 'dbDrop( database_name )'
+                    has_argument: true
                 }
                 {
                     suggestion: 'dbList()'
                     description: 'dbList()'
-                }
-                {
-                    suggestion: 'expr('
+                    has_argument: false
+                }
+                {
+                    suggestion: 'expr()'
                     description:'expr( expression )'
-                }
-                {
-                    suggestion: 'fn('
+                    has_argument: true
+                }
+                {
+                    suggestion: 'fn()'
                     description: 'fn( argument..., body )'
-                }
-                {
-                    suggestion: 'ifThenElse('
+                    has_argument: true
+                }
+                {
+                    suggestion: 'ifThenElse()'
                     description: 'ifThenElse( expression, callback_true, callback_false)'
-                }
-                {
-                    suggestion: 'let('
+                    has_argument: true
+                }
+                {
+                    suggestion: 'let()'
                     description: 'let( arguments..., body)'
+                    has_argument: true
                 }
 
             ]

                start_line_index = 0
            else
                start_line_index += 1

            @cursor =
                line: saved_cursor.line
                ch: (@query_first_part + @current_completed_query + suggestion_to_write).length - start_line_index

            setTimeout @position_cursor_after_click, 1 # Ugliest hack ever.


            query = query_before_cursor.slice slice_index
            
            @query_first_part = query_before_cursor.slice 0, slice_index
            # We might want to use tab to move faster (like w in vim)
            @query_last_part = query_after_cursor #.slice slice_position

            last_function = @extract_last_function(query)
