         if @filePathMatchesPlatform(filePath)
           @loadKeymap(filePath, checkIfDirectory: false)
     else
-      @add(bindingsPath, @readKeymap(bindingsPath, options?.suppressErrors))
-      @watchKeymap(bindingsPath) if options?.watch
+      @add(bindingsPath, @readKeymap(bindingsPath, options?.suppressErrors), options?.priority)
+      @watchKeymap(bindingsPath, options) if options?.watch
 
     undefined
 


  # Called by the path watcher callback to reload a file at the given path. If
  # we can't read the file cleanly, we don't proceed with the reload.
  reloadKeymap: (filePath) ->
    if fs.isFileSync(filePath)
      bindings = @readKeymap(filePath, true)

      if typeof bindings isnt "undefined"
        @removeBindingsFromSource(filePath)
        @add(filePath, bindings)
        @emitter.emit 'did-reload-keymap', {path: filePath}
    else
      @removeBindingsFromSource(filePath)

  #
  # * `path` A {String} containing a path to a file or a directory. If the path is
  #   a directory, all files inside it will be loaded.
  watchKeymap: (filePath, options) ->
    if not @watchSubscriptions[filePath]? or @watchSubscriptions[filePath].disposed
      file = new File(filePath)
      reloadKeymap = => @reloadKeymap(filePath, options)
      @watchSubscriptions[filePath] = new CompositeDisposable(
        file.onDidChange(reloadKeymap)
        file.onDidRename(reloadKeymap)
