     return unless @items?
 
     filterQuery = @getFilterQuery()
-    if filterQuery.length
-      filteredItems = @filter(filterQuery)
-      #filteredItems = fuzzyFilter(@items, filterQuery, key: @getFilterKey())
-    else
-      filteredItems = @items
+    filteredItems = @filter(filterQuery)
+    selectedItem = @selectItem(filterQuery)
 
     @list.empty()
     if filteredItems.length

        itemView.data('select-list-item', item)
        @list.append(itemView)

      @selectItemView(@list.find('li:first'))
    else
      @setError(@getEmptyMessage(@items.length, filteredItems.length))

    @addClass('notational-velocity from-top overlay')
    @loadData()

  selectItem: (filterQuery) ->
    if filterQuery.length == 0
      return null

    titleQuery = filterQuery.toLowerCase()
    titleItems = @items
      .filter (x) -> x.title.toLowerCase()[...titleQuery.length] is titleQuery
      .sort (x, y) -> x.modified > y.modified
    titleItem = if titleItems.length > 0 then titleItems[0] else null
    return titleItem

  filter: (filterQuery) ->
    if filterQuery.length == 0
      return @items

    queries = filterQuery.split(' ')
      .filter (x) -> x.length > 0
      .map (x) -> new RegExp(x, 'gi')
    contentItems = @items
      .filter (x) ->
        queries
          .map (q) -> q.test(x.filetext) || q.test(x.test)
          .reduce (x, y) -> x && y
    return contentItems

  loadData: ->
    @data = []
