diff --git a/lib/helpers.coffee b/lib/helpers.coffee index 842bcc2..85f5af3 100644 --- a/lib/helpers.coffee +++ b/lib/helpers.coffee @@ -1,9 +1,8 @@ -fs = require "fs-plus" -path = require "path" +{Directory} = require "atom" module.exports = repositoryForPath: (goalPath) -> - for directory, i in atom.project.getDirectories() - if goalPath is directory.getPath() or directory.contains(goalPath) - return atom.project.getRepositories()[i] - null + if goalPath + directory = new Directory goalPath + return atom.project.repositoryForDirectory directory + Promise.resolve(null) diff --git a/lib/minimap-git-diff-binding.coffee b/lib/minimap-git-diff-binding.coffee index f4cd18e..85bb0ab 100644 --- a/lib/minimap-git-diff-binding.coffee +++ b/lib/minimap-git-diff-binding.coffee @@ -18,16 +18,18 @@ class MinimapGitDiffBinding @subscriptions.add @minimap.onDidDestroy @destroy - if repository = @getRepo() - @subscriptions.add @editor.getBuffer().onDidStopChanging @updateDiffs - @subscriptions.add repository.onDidChangeStatuses => - @scheduleUpdate() - @subscriptions.add repository.onDidChangeStatus (changedPath) => - @scheduleUpdate() if changedPath is @editor.getPath() - @subscriptions.add repository.onDidDestroy => - @destroy() - @subscriptions.add atom.config.observe 'minimap-git-diff.useGutterDecoration', (@useGutterDecoration) => - @scheduleUpdate() + @getRepo().then (repo) => + @repository = repo + if repo + @subscriptions.add @editor.getBuffer().onDidStopChanging @updateDiffs + @subscriptions.add @repository.onDidChangeStatuses => + @scheduleUpdate() + @subscriptions.add @repository.onDidChangeStatus (changedPath) => + @scheduleUpdate() if changedPath is @editor.getPath() + @subscriptions.add @repository.onDidDestroy => + @destroy() + @subscriptions.add atom.config.observe 'minimap-git-diff.useGutterDecoration', (@useGutterDecoration) => + @scheduleUpdate() @scheduleUpdate() @@ -75,12 +77,10 @@ class MinimapGitDiffBinding getPath: -> @editor.getBuffer()?.getPath() - getRepositories: -> atom.project.getRepositories().filter (repo) -> repo? - - getRepo: -> @repository ?= repositoryForPath(@editor.getPath()) + getRepo: -> repositoryForPath(@editor.getPath()) getDiffs: -> try - return @getRepo()?.getLineDiffs(@getPath(), @editor.getBuffer().getText()) + return @repository?.getLineDiffs(@getPath(), @editor.getBuffer()?.getText()) catch e return null diff --git a/lib/minimap-git-diff.coffee b/lib/minimap-git-diff.coffee index 0fbc278..eac150b 100644 --- a/lib/minimap-git-diff.coffee +++ b/lib/minimap-git-diff.coffee @@ -30,10 +30,10 @@ class MinimapGitDiff return if @pluginActive try - @activateBinding() + @createBindings() @pluginActive = true - @subscriptions.add @minimap.onDidActivate @activateBinding + @subscriptions.add @minimap.onDidActivate @createBindings @subscriptions.add @minimap.onDidDeactivate @destroyBindings catch e console.log e @@ -45,16 +45,6 @@ class MinimapGitDiff @subscriptions.dispose() @destroyBindings() - activateBinding: => - @createBindings() if @getRepositories().length > 0 - - @subscriptions.add atom.project.onDidChangePaths => - - if @getRepositories().length > 0 - @createBindings() - else - @destroyBindings() - createBindings: => MinimapGitDiffBinding ||= require './minimap-git-diff-binding' @@ -67,8 +57,6 @@ class MinimapGitDiff binding = new MinimapGitDiffBinding minimap @bindings.set(minimap, binding) - getRepositories: -> atom.project.getRepositories().filter (repo) -> repo? - destroyBindings: => return unless @minimap? and @minimap.editorsMinimaps? @minimap.editorsMinimaps.forEach (minimap) => diff --git a/package.json b/package.json index 61873de..630c5fc 100644 --- a/package.json +++ b/package.json @@ -15,9 +15,5 @@ "1.0.0": "consumeMinimapServiceV1" } } - }, - "dependencies": { - "mixto": "1.x", - "fs-plus": "^2.0.0" } }