From 3686a5b0bac33f0fe6975ce651b40e698221ef47 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 13 Aug 2013 09:43:14 -0700 Subject: [PATCH] Pull out git-diff package into a separate repo --- package.json | 1 + .../git-diff/lib/git-diff-view.coffee | 76 ------------------- src/packages/git-diff/lib/git-diff.coffee | 8 -- src/packages/git-diff/package.cson | 2 - .../git-diff/spec/git-diff-spec.coffee | 62 --------------- .../git-diff/stylesheets/git-diff.less | 11 --- 6 files changed, 1 insertion(+), 159 deletions(-) delete mode 100644 src/packages/git-diff/lib/git-diff-view.coffee delete mode 100644 src/packages/git-diff/lib/git-diff.coffee delete mode 100644 src/packages/git-diff/package.cson delete mode 100644 src/packages/git-diff/spec/git-diff-spec.coffee delete mode 100644 src/packages/git-diff/stylesheets/git-diff.less diff --git a/package.json b/package.json index 9490623dc..2f450c893 100644 --- a/package.json +++ b/package.json @@ -71,6 +71,7 @@ "autoflow": "0.1.0", "command-logger": "0.1.0", "gfm": "0.1.0", + "git-diff": "0.1.0", "gists": "0.1.0", "image-view": "0.1.0", "spell-check": "0.1.0", diff --git a/src/packages/git-diff/lib/git-diff-view.coffee b/src/packages/git-diff/lib/git-diff-view.coffee deleted file mode 100644 index f4fe50089..000000000 --- a/src/packages/git-diff/lib/git-diff-view.coffee +++ /dev/null @@ -1,76 +0,0 @@ -_ = require 'underscore' -Subscriber = require 'subscriber' - -module.exports = -class GitDiffView - diffs: null - editor: null - - constructor: (@editor) -> - @gutter = @editor.gutter - @diffs = {} - - @subscribe @editor, 'editor:path-changed', @subscribeToBuffer - @subscribe @editor, 'editor:display-updated', @renderDiffs - @subscribe git, 'statuses-changed', => - @diffs = {} - @scheduleUpdate() - @subscribe git, 'status-changed', (path) => - delete @diffs[path] - @scheduleUpdate() if path is @editor.getPath() - - @subscribeToBuffer() - - beforeRemove: -> - @unsubscribe() - @unsubscribeFromBuffer() - - unsubscribeFromBuffer: -> - if @buffer? - @removeDiffs() - delete @diffs[@buffer.getPath()] if @buffer.destroyed - @buffer.off 'contents-modified', @updateDiffs - @buffer = null - - subscribeToBuffer: => - @unsubscribeFromBuffer() - - if @buffer = @editor.getBuffer() - @scheduleUpdate() unless @diffs[@buffer.getPath()]? - @buffer.on 'contents-modified', @updateDiffs - - scheduleUpdate: -> - _.nextTick(@updateDiffs) - - updateDiffs: => - @generateDiffs() - @renderDiffs() - - generateDiffs: -> - if path = @buffer.getPath() - @diffs[path] = git?.getLineDiffs(path, @buffer.getText()) - - removeDiffs: => - if @gutter.hasGitLineDiffs - @gutter.find('.line-number').removeClass('git-line-added git-line-modified git-line-removed') - @gutter.hasGitLineDiffs = false - - renderDiffs: => - return unless @gutter.isVisible() - - @removeDiffs() - - hunks = @diffs[@editor.getPath()] ? [] - linesHighlighted = 0 - for {oldStart, newStart, oldLines, newLines} in hunks - if oldLines is 0 and newLines > 0 - for row in [newStart...newStart + newLines] - linesHighlighted += @gutter.find(".line-number[lineNumber=#{row - 1}]").addClass('git-line-added').length - else if newLines is 0 and oldLines > 0 - linesHighlighted += @gutter.find(".line-number[lineNumber=#{newStart - 1}]").addClass('git-line-removed').length - else - for row in [newStart...newStart + newLines] - linesHighlighted += @gutter.find(".line-number[lineNumber=#{row - 1}]").addClass('git-line-modified').length - @gutter.hasGitLineDiffs = linesHighlighted > 0 - -_.extend GitDiffView.prototype, Subscriber diff --git a/src/packages/git-diff/lib/git-diff.coffee b/src/packages/git-diff/lib/git-diff.coffee deleted file mode 100644 index ce1372a46..000000000 --- a/src/packages/git-diff/lib/git-diff.coffee +++ /dev/null @@ -1,8 +0,0 @@ -GitDiffView = require './git-diff-view' - -module.exports = - activate: -> - return unless git? - - rootView.eachEditor (editor) => - new GitDiffView(editor) if git? and editor.attached and editor.getPane()? diff --git a/src/packages/git-diff/package.cson b/src/packages/git-diff/package.cson deleted file mode 100644 index f83f0bc4e..000000000 --- a/src/packages/git-diff/package.cson +++ /dev/null @@ -1,2 +0,0 @@ -'main': './lib/git-diff' -'description': 'Add decorations to the editor gutter for lines added, edited, and deleted since the last commit.' diff --git a/src/packages/git-diff/spec/git-diff-spec.coffee b/src/packages/git-diff/spec/git-diff-spec.coffee deleted file mode 100644 index 59ff4d01a..000000000 --- a/src/packages/git-diff/spec/git-diff-spec.coffee +++ /dev/null @@ -1,62 +0,0 @@ -RootView = require 'root-view' -_ = require 'underscore' - -describe "GitDiff package", -> - editor = null - - beforeEach -> - window.rootView = new RootView - rootView.attachToDom() - rootView.open('sample.js') - atom.activatePackage('git-diff') - editor = rootView.getActiveView() - - describe "when the editor has modified lines", -> - it "highlights the modified lines", -> - expect(editor.find('.git-line-modified').length).toBe 0 - editor.insertText('a') - advanceClock(editor.getBuffer().stoppedChangingDelay) - expect(editor.find('.git-line-modified').length).toBe 1 - expect(editor.find('.git-line-modified').attr('lineNumber')).toBe '0' - - describe "when the editor has added lines", -> - it "highlights the added lines", -> - expect(editor.find('.git-line-added').length).toBe 0 - editor.moveCursorToEndOfLine() - editor.insertNewline() - editor.insertText('a') - advanceClock(editor.getBuffer().stoppedChangingDelay) - expect(editor.find('.git-line-added').length).toBe 1 - expect(editor.find('.git-line-added').attr('lineNumber')).toBe '1' - - describe "when the editor has removed lines", -> - it "highlights the line preceeding the deleted lines", -> - expect(editor.find('.git-line-added').length).toBe 0 - editor.setCursorBufferPosition([5]) - editor.deleteLine() - advanceClock(editor.getBuffer().stoppedChangingDelay) - expect(editor.find('.git-line-removed').length).toBe 1 - expect(editor.find('.git-line-removed').attr('lineNumber')).toBe '4' - - describe "when a modified line is restored to the HEAD version contents", -> - it "removes the diff highlight", -> - expect(editor.find('.git-line-modified').length).toBe 0 - editor.insertText('a') - advanceClock(editor.getBuffer().stoppedChangingDelay) - expect(editor.find('.git-line-modified').length).toBe 1 - editor.backspace() - advanceClock(editor.getBuffer().stoppedChangingDelay) - expect(editor.find('.git-line-modified').length).toBe 0 - - describe "when a modified file is opened", -> - it "highlights the changed lines", -> - path = project.resolve('sample.txt') - buffer = project.buildBuffer(path) - buffer.setText("Some different text.") - rootView.open('sample.txt') - nextTick = false - _.nextTick -> nextTick = true - waitsFor -> nextTick - runs -> - expect(editor.find('.git-line-modified').length).toBe 1 - expect(editor.find('.git-line-modified').attr('lineNumber')).toBe '0' diff --git a/src/packages/git-diff/stylesheets/git-diff.less b/src/packages/git-diff/stylesheets/git-diff.less deleted file mode 100644 index a04bed75d..000000000 --- a/src/packages/git-diff/stylesheets/git-diff.less +++ /dev/null @@ -1,11 +0,0 @@ -.git-line-modified { - color: #f78a46; -} - -.git-line-added { - color: #5293d8; -} - -.git-line-removed { - color: #c41e3a; -}