const GitDiffView = require('./git-diff-view')
const DiffListView = require('./diff-list-view')

let diffListView = null

module.exports = {
  activate () {
    const watchedEditors = new WeakSet()

    atom.workspace.observeTextEditors(editor => {
      if (watchedEditors.has(editor)) return

      new GitDiffView(editor).start()
      atom.commands.add(atom.views.getView(editor), 'git-diff:toggle-diff-list', () => {
        if (diffListView == null) diffListView = new DiffListView()
        diffListView.toggle()
      })

      watchedEditors.add(editor)
      editor.onDidDestroy(() => watchedEditors.delete(editor))
    })
  },

  deactivate () {
    if (diffListView) diffListView.destroy()
    diffListView = null
  }
}
