       'vim-mode-plus-user:narrow:atom-scan': => @narrow('atom-scan', query: confirmSearch())
       'vim-mode-plus-user:narrow:search-current-project': =>  @narrow('search', query: confirmSearch(), currentProject: true)
 
+  registerProvider: (name, klassOrFilePath) ->
+    ProviderBase.registerProvider(name, klassOrFilePath)
+
   provideNarrow: ->
     ProviderBase: ProviderBase
-    registerProvider: (args...) -> ProviderBase.registerProvider(args...)
+    registerProvider: @registerProvider.bind(this)
     narrow: @narrow.bind(this)

      'narrow:atom-scan': => @narrow('atom-scan')
      'narrow:atom-scan-by-current-word': => @narrow('atom-scan', queryCurrentWord: true)

      'narrow:toggle-search-start-by-double-click': -> settings.toggle('search.startByDoubleClick')

  observeStopChangingActivePaneItem: ->
    atom.workspace.onDidStopChangingActivePaneItem (item) =>

    return unless event.detail is 2 # handle double click only

    if not Ui.getSize()
      if settings.get('Search.startByDoubleClick')
        @narrow('search', queryCurrentWord: true, focus: false)
        suppressEvent(event)
    else
